GNU ELPA - indent-bars

indent-bars Atom Feed

Description
Highlight indentation with bars
Latest
indent-bars-0.8.tar (.sig), 2024-Oct-10, 140 KiB
Maintainer
J.D. Smith <jdtsmith+elpa@gmail.com>
Website
https://github.com/jdtsmith/indent-bars
Browse ELPA's repository
CGit or Gitweb
Badge

To install this package from Emacs, use package-install or list-packages.

Full description

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:

 1. Collect all the style related information (color, stipple
    pattern, etc.) into a single struct, operating on one such
    "current" style struct at a time.

 2. Provide convenience functions for duplicate "alternative"
    custom style variables the user can configure; see
    `indent-bars--style'.  These variables can "inherit" nil or
    omitted plist variables from their parent var.

Note the shorthand substitution for style related slots;
see file-local-variables at the end:

   ibs/  => indent-bars-style-

Old versions

indent-bars-0.7.6.tar.lz2024-Sep-2835.3 KiB
indent-bars-0.7.5.tar.lz2024-Sep-2735.2 KiB
indent-bars-0.7.4.tar.lz2024-Sep-1833.6 KiB
indent-bars-0.7.3.tar.lz2024-Sep-1833.4 KiB

News

1. 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.

2. 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.

3. 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.

4. v0.7.4 (2024-09-18)

  • Include NEWS and badge for ELPA

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

  • Released on ELPA

6. 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.

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

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

8. 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.

9. v0.5.2 (2024-04-21)

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

10. v0.5.1 (2024-04-16)

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

11. 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.

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

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

13. 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

14. v0.1

  • Initial stipple-based indentation.