GNU-devel ELPA - indent-bars

indent-bars Atom Feed

Description
Highlight indentation with bars
Latest
indent-bars-0.8.2.0.20241109.70253.tar (.sig), 2024-Nov-09, 150 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.8.2.0.20241108.212854.tar.lz2024-Nov-0937.6 KiB
indent-bars-0.8.2.0.20241107.71825.tar.lz2024-Nov-0737.1 KiB
indent-bars-0.8.1.0.20241106.145109.tar.lz2024-Nov-0637.1 KiB
indent-bars-0.8.1.0.20241019.170236.tar.lz2024-Oct-2037.5 KiB
indent-bars-0.8.0.20241018.130505.tar.lz2024-Oct-1837.5 KiB
indent-bars-0.7.6.0.20241008.83403.tar.lz2024-Oct-0837.0 KiB
indent-bars-0.7.5.0.20240927.164640.tar.lz2024-Sep-2835.3 KiB
indent-bars-0.7.4.0.20240925.134246.tar.lz2024-Sep-2535.1 KiB
indent-bars-0.7.3.0.20240917.220118.tar.lz2024-Sep-1833.6 KiB
indent-bars-0.7.2.0.20240916.184944.tar.lz2024-Sep-1733.3 KiB

News

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

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

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

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

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

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

  • Include NEWS and badge for ELPA

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

  • Released on ELPA

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

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

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

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

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

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

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

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

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

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

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

15. 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)

… …