#+title: indent-bars - Changelog
#+author: J.D. Smith
#+language: en

* DEVELOPMENT

- Implement /bar-skipping/ in multiply-nested list contexts (with ~indent-bars-no-descend-lists~ set to ~skip~).
- Breaking change: ~indent-bars-no-descend-lists~ can no longer be set to a list of list opening characters.  If you need this functionality, set the local variable ~indent-bars-ppss-syntax-table~.
- Work correctly with ~whitespace-mode~ and other modes which change the character display tables to prevent display spaces on blank lines from showing.
- New mode support:
  + ~yaml-pro-ts-mode~
  + ~r-ts-mode~
  + ~ess-mode~
  + modes which derive from ~typescript-ts-base-mode~ (like ~typescript-tsx-mode~)

* v0.9.2 (2025-07-19)

- Support ~haml-mode~.
- Fix bug with variable width detection in terminal.

* v0.9.1 (2025-06-30)

- Guard against invalid font ~space-width~.

* v0.9 (2025-06-29)

- Add compatibility for variable pitch fonts, per window.

* v0.8.5 (2025-06-24)
- Allow ~indent-bars~ to work in modes where ~font-lock~ keywords are not set (e.g. fundamental/text).
- Additional support for java, scala and rust TS modes, as well as TCL mode.

* v0.8.4 (2025-05-08)
- =BUGFIX= avoid ~args-out-of-range~ errors in TS modes.

* v0.8.3 (2025-04-09)

- Improve bar highlight logic when using ~indent-bars-starting-column=0~ (see #100).
- Perform depth calculation current depth for highlight just in time (see #101).  
  
* v0.8.2 (2024-11-07)

- Support ~makefile-mode~.
- =BUGFIX= Prevent infloop and correctly display all appropriate bars when ~indent-tabs-mode=t~ and ~tab-width~ is small (see #86).
- =BUGFIX= When blank line display is enabled, prevent the ~display~ property on blank newlines from temporarily leaking into newly inserted text (e.g. certain re-indentation modes, #82).

* v0.8.1 (2024-10-19)

- Guard against unspecified ~default~ (backup) face foreground/background colors, as on TTY with ~tty-color-mode=no~.
- Improve compatibility with other packages that directly call ~font-lock-flush~.
- Ensure ~indent-bars--ts-mode~ is disabled when toggling off ~indent-bars-treesit-support~ in a buffer.

* v0.8 (2024-10-09)

- New configuration setting ~indent-bars-display-on-blank-lines=least~ which specifies using the /minimum/ bar depth of adjacent non-blank lines for blank line bar display (by default, when enabled, the /maximum/ is used).
- =BUGFIX= Guard against custom-set errors when tree-sitter is enabled, but no scope stanza is present for the buffer's language.
- Make ~indent-bars-no-descend-lists=nil~ by default (to avoid confusion in brace and paren languages).
- Allow ~indent-bars-no-descend-string=all~ to inhibit /all/ bars inside multi-line strings.
- =BUGFIX= Use correct offset guess when derived from ~python-base-mode~.
- Be more careful when replacing/restoring ~font-lock-fontify-region-function~. 
- Ensure ~indent-bars--ts-mode~ is fully disabled when ~indent-bars~ is disabled.

* v0.7.6 (2024-09-28)

- Improve speed of disabling indent-bars.
- =BUGFIX= Eliminated introduced bug leading to args-out-of-range error.
- =BUGFIX= Correctly enable font-lock inhibit.

* v0.7.5 (2024-09-26)

- Allow configuring ~indent-bars-no-descend-lists~ with a list of list-open chars to consider (e.g. in c-modes, where {})
- Protect against frame unavailability in daemon server mode.
- Handle empty stipple ~:pattern~ strings.
- Cancel current depth timer on tear-down.
- =BUGFIX= Ensure ~indent-bars--ts-mode~ is fully removed when indent-bars is disabled.
- =BUGFIX= Fix issue where bar faces would be unspecified on new frames after resetting or customizing.

* v0.7.4 (2024-09-18)

- Include NEWS and badge for ELPA

* *v0.7.3* (2024-09-17)

- Released on ELPA

* *v0.7.1* (2024-09-14)

- Added ADA, GPR, and ~typescript-ts~ support.
- Avoid issues when mixing TS and non-TS modes.
- Ensure colors work with themes that do not specify background or foreground of specified bar faces.

* *v0.7* (2024-07-24)

- New optimized jit-lock approach for treesit scope.
- Slightly streamlined default styling.

* *v0.6.1*  (2024-05-30)

- Live feedback when updating settings in the Customize interface.
- Simplify tree-sitter scope drawing. 
- New option ~indent-bars-ts-styling-scope~ to swap the roles of in-scope and out-of-scope style.

* v0.5.2 (2024-04-21)

- Ensure all old tree-sitter scopes regions are correctly invalidated when the scope is updated.

* v0.5.1 (2024-04-16)

- Correctly handle tree-sitter scope highlight when multiple windows show the same buffer.

* *v0.5* (2024-04-08)

A major new release with many added features and improvements.

- Stipple-based bars are now free from artifacts when the same buffer appears in multiple windows.
- Position-aware tree-sitter /scope focus/ with fully configurable in-scope/out-of-scope styling.
- Theme-awareness: bar styling gets updated on theme change (e.g. for depth-based colors).
- Two new highlight selection "methods" including a new default ("context").
- Inhibit string and list bar descent without tree-sitter, using Emacs' syntax capabilities.

* *v0.2.2* (2024-01-02)

- Rate-limit updates of the current highlight depth; see ~indent-bars-depth-update-delay~. 

* v0.2 (2023-09-08)

 - ability to configure the starting column (including col 0)
 - Support for tab-based indent modes
 - optional character-based indent bars (automatic in terminal)
 - tree-sitter context-aware bar depth
 - additional mode support: `go-mode`, `go-ts-mode`, `cobol-mode`
 - other minor improvements

* v0.1

- Initial stipple-based indentation.
