Version 1.0.0 of package Indent-Bars has just been released in GNU ELPA. You can now find it in M-x list-packages RET.
Indent-Bars describes itself as: =============================== Highlight indentation with bars =============================== More at https://elpa.gnu.org/packages/indent-bars.html ## Summary: indent-bars highlights indentation with configurable vertical graphical bars, using stipples. The color and appearance (weight, pattern, position within the character, zigzag, etc.) are all configurable. Options include depth-varying colors and highlighting the indentation depth of the current line. Bars span blank lines, by default. indent-bars works in any mode using fixed tab or space-based indentation. In the terminal (or on request) it uses vertical bar characters instead of stipple patterns. Optional treesitter support is also available; see indent-bars-ts.el. For Developers: To efficiently accommodate simultaneous alternative bar styling, we do two things: ## Recent NEWS: ━━━━━━━━━━━━━━━━━━━━━━━━━ INDENT-BARS - CHANGELOG ━━━━━━━━━━━━━━━━━━━━━━━━━ 1 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') 2 v0.9.2 (2025-07-19) ═════════════════════ • Support `haml-mode'. • Fix bug with variable width detection in terminal. 3 v0.9.1 (2025-06-30) ═════════════════════ • Guard against invalid font `space-width'. 4 v0.9 (2025-06-29) ═══════════════════ • Add compatibility for variable pitch fonts, per window. 5 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. 6 v0.8.4 (2025-05-08) ═════════════════════ • `BUGFIX' avoid `args-out-of-range' errors in TS modes. 7 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). 8 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). 9 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. 10 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. 11 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. 12 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. 13 v0.7.4 (2024-09-18) ══════════════════════ • Include NEWS and badge for ELPA 14 *v0.7.3* (2024-09-17) ════════════════════════ • Released on ELPA 15 *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. 16 *v0.7* (2024-07-24) ══════════════════════ • New optimized jit-lock approach for treesit scope. … …
