Heirline.nvim Versions Save

Heirline.nvim is a no-nonsense Neovim Statusline plugin designed around recursive inheritance to be exceptionally fast and versatile.

v1.0.3

3 months ago

1.0.3 (2024-02-12)

Bug Fixes

  • cookbook: migrate from nvim_buf_get_option to nvim_get_option_value (512ff09)

v1.0.2

4 months ago

1.0.2 (2023-11-29)

Bug Fixes

  • winbar: don't modify winbar for disabled buffers (7ee3553)

v1.0.1

8 months ago

1.0.1 (2023-09-03)

Bug Fixes

  • cookbook: avoid resetting showtabline if already at default value (daf91db)

v1.0.0

10 months ago

1.0.0 (2023-07-05)

⚠ BREAKING CHANGES

  • winbar: better way to disable per-window winbar. Add docs. Fix #114
  • statuscolumn:
  • flexible_components: promote flexible components to "builtin"
  • tabline: do not set showtabline. Fix #73
  • fallthrough: add fallthrough to control evaluation of components with conditions and deprecate utils.pick_child_on_condition.
  • tabline: add is_visible field to buflist and remove hardcoded %=, remove min_tab and close button from make_tablist
  • statusline: various improvements:
  • on_click: add minwid field and document how to pass window handler; remove winid from callback arguments.
  • utils: prepend '_' to private attributes
  • highlights: utils.get_highlight() return value is compliant with highlight api
  • highlights: improve highlight normalization; privatize highlight functions; add module-level get_highlights() function
  • cookbook: add documentation for new functionality + minor upgrades.
  • statusline: remove stop_when in favor of the more versatile pick_child.
  • flexible_components:
  • elastic_components: allow make_elastic_components accept
  • statusline: stop_at_first -> stop_when(self, child_out)

Features

  • add tabpage handle to tablist components (d000fc1)
  • autcmd_update: improve cache handling; this improves coordination between updatable_components and components which require special post-processing (08b7998)
  • buflist utilities: allow disabling of buflist cache (cb41496)
  • buflist: allow creation of multiple buflists; allow passing custom function to retrieve bufnr handlers (33706b4)
  • colors: color aliases can be a function. Add config.opts.colors field (5bce468)
  • conditions: add is_not_active condition (7ee0572)
  • conditions: buffer_matches accepts bufnr argument (b5bbb8b)
  • cookbook, dap: add debugger clickable buttons example (f1ad9d7)
  • cookbook, navic: add 'CursorMoved' update (19cab76)
  • cookbook, navic: improve navic component with multi-window support and clickable elements (a9b1d88)
  • cookbook, navic: improve navic component: add on_click; add highlights to basic version (a35f1c2)
  • cookbook: add SearchCount and MacroRec (673226c)
  • cookbook: add ShowCmd snippet (e08e2c0)
  • cookbook: add TablinePicker (a94390e)
  • cookbook: only show buflist if more than 1 buffer; fix #122 (c109ac0)
  • elastic components: add factory for elastic components: take1 (c5582f2)
  • elastic_components: allow make_elastic_components accept (31339a4)
  • events: add before and after callbacks at evaluation time (1f06385)
  • events: pass last output to before (1f7cada)
  • fallthrough: add fallthrough to control evaluation of components with conditions and deprecate utils.pick_child_on_condition. (9941236)
  • flexible_components: feat(flexible_components): (a726746)
  • flexible_components: promote flexible components to "builtin" (7bd7190)
  • highlights: support cterm 8-bit colors; fix #36 (60d92a6)
  • highlights: use api nvim_set_hl: (1720ff5)
  • highlights: use api nvim_set_hl: (2f60696)
  • highlights: utils.get_highlight() return value is compliant with highlight api (f44d8dd)
  • hl: add force kw (269b316)
  • let callback function use all available parameters (480badd)
  • load_colors: add load_colors() to create color name aliases. (76fea23)
  • make_buflist: allow passing reference to custom cache table (d340f95)
  • on_click: add minwid field and document how to pass window handler; remove winid from callback arguments. (8ad1050)
  • on_click: allow callback to be a string. (14779d6)
  • on_click: allow name to be a function (1f307df)
  • on_click: support binding lua callbacks to mouse clicks (0271f3a)
  • on_colorscheme: add on_colorscheme utility function (c01c0f1)
  • statuscolumn: provide initial support for statuscolumn option (7b57b27)
  • StatusLine: add nonlocal base method (2a3a76f)
  • statusline: add pick_child list to allow control on which (71e43d4)
  • statusline: add some utility methods (cef435a)
  • statusline: give components an id; get component by id (99b51ba)
  • statusline: make component ids when loading (c305391)
  • statusline: stop_at_first -> stop_when(self, child_out) (8bbe790)
  • statusline: various improvements: (09bf058)
  • surround: color in utils.surround can now be a function (61507a7)
  • tabline: add is_visible field to buflist and remove hardcoded %=, remove min_tab and close button from make_tablist (d07b07f)
  • tabline: do not set showtabline. Fix #73 (f46554a)
  • tabline: experimental infrastructure for setting up tabline (part of it was leaked in previous commit) (81d7a71)
  • timeit: improve timeit function. Try it out to see how fast heirline is! (496b86b)
  • update/after: add update and after fields. (3188e22)
  • update: add autocommand callback (a954dd2)
  • update: add pattern to update field; callback receieves autocmd args as second argument. (d2767b3)
  • utils: add count_chars function (4cfbcc2)
  • utils: add insert() utility function (d45256e)
  • winbar: add User HeirlineInitWinbar autocmd (c5505f6)
  • winbar: allow hooking into winbar init autocmd via config.opts.winbar_blacklist_cb(autcmd_args) -> bool (WIP) (3677262)
  • winbar: better way to disable per-window winbar. Add docs. Fix #114 (5fa803c)
  • winbar: set up window-local winbar and document how to disable it on certain buffers (be8d39c)
  • winbar: width_percent_below is_winbar parameter (164ef83)

Bug Fixes

  • add comma to COOKBOOK.md (a63de38)
  • autocmd: check win height before setting up winbar; fix #49 (203f6f9)
  • broadcast: correctly apply function to all nodes including the starting one (290159b)
  • buflist utilities: use buf_func with cache (90416e2)
  • buflist: check if buffer is valid outside of cache. buf_func does not need to check if buf is valid. (8a98c7d)
  • buflist: fix pagination logic (4867a7c)
  • conditions: fix has_diagnosticS (04a30f3)
  • conditions: lsp_attached (ed12e0f)
  • cookbook: added missing return statement in example (88555f3)
  • cookbook: don't use alias for autocmd (2c03277)
  • cookbook: file readonly flag not showed (e01a5d9)
  • cookbook: filename and workdir (e055e17)
  • cookbook: fix autocmd for conditional tabline when nbufs > 1 (9c6ac77)
  • cookbook: fix missing return in tblinefileflags(modified) (f4cfb5c)
  • cookbook: fix padding in Ruler (cd30484)
  • cookbook: fix provider signature (414ad38)
  • cookbook: fix redrawtabline on TablineCloseButton; fix #140 (2aed06a)
  • cookbook: fix typo (3ca917d)
  • cookbook: fix vim.api call in ScrollBar (26a7e30)
  • cookbook: link to statusline obj (5fb6252)
  • cookbook: modified condition in the TablineFileFlags (639e210)
  • cookbook: nvim-web-devicons link (b02bd6f)
  • cookbook: revert previous snippet; more work is needed. (2a57f80)
  • docs: FileName -> FileNameBlock; fix #121 (5494bdf)
  • docs: update ToC (1377058)
  • eval: fix regression with unified _eval, add winnr (6ad825c)
  • expandable_components: override priorities of nested expandables (bfcabb1)
  • expandables: allow nesting of expandable components (5828b3d)
  • expandables: make 'em work. (483c56a)
  • flexible_components: better checking of maximum available space (3ea10b6)
  • flexible_components: check for siblings in group flexible components, correct priorities and improve sorting (#80). (46d6939)
  • flexible_components: pass full_width to _eval (ad4ddf4)
  • get_bufs: also list unloaded buffer, use nvim_buf_get_option (faster) (440da6b)
  • get_highlight: use rawget [#22](https://github.com/rebelot/heirline.nvim/issues/22) (4451c0f)
  • highlight: fix typo in get_highlight; check for termguicolors dynamically (9202f4f)
  • highlights: fix(highlights): (f9e7b48)
  • highlights: always prioritize abbreviations (24c05f6)
  • highlights: do not fail on blank hlgroups; fix #110 (b2e69dc)
  • hl: do not resolve hlgroup name on instantiation, fix #78; Also improve hl logic (5630b0d)
  • hl: handle nil return of hl function (7a46e28)
  • name_hl: make inferring highlight style more robust. (e1cada8)
  • nvim-navic example (bc96864)
  • on_click: pass winid to on_click callback (c13b7d8)
  • on_click: place @ before provider (7b4aabc)
  • on_colorscheme: also update winbar and tabline on colorscheme changes; fix #127 (110ddc5)
  • pick_child: fix typo (2e76280)
  • priority: allow discontinuous priority values (0e7565e)
  • recreate tab components correctly when a tabpage is deleted (8009b77)
  • statusline: fix restrict behavior. (395a8a8)
  • statusline: fix restrict behavior. (93c75cb)
  • tabline: correct buffer filtering. (6cfce84)
  • tests: fix plenary path (lazy) (81ceb30)
  • timeit: ipairs -> pairs (aa21485)
  • traverse: guard _tree with rawget; #79 (b6044c8)
  • tree: move tree generation on top of _eval; check for missing _tree in traverse(); fix #53 (f7239b1)
  • typo in README (5e3bed2)
  • update: dont set _win_cache during component eval (#79) (db41ad4)
  • update: fix typo in update function, fix #63 (9179b71)
  • utils: add nvim_eval_statusline to count_chars (8a658f1)
  • win_attr: improve behavior of get_win_attr; add cleanup to set_win_attr (8278dc8)
  • winbar+terminal: exec disable_winbar_cb on TermOpen; fix #137 (d860874)
  • winbar: add VimEnter event to Heirline_init_winbar autocmd; fix #44 (bbd74de)
  • winbar: do not set up winbar if window height is <=1; #136 (f4b7ff8)
  • winbar: fix init autocmd when called from VimEnter/UIEnter events; remove floating check (waiting for issues...) (8fb1f07)
  • winbar: make efforts not to setup winbar if window is floating (7684d4b)
  • winbar: remove redrawstatus on BufWinEnter: window flicker tradeoff is not worth it (14d1971)

Performance Improvements

  • buflist: add cache to buf_func (ad52add)
  • clear_tree: simplify for loop (6ce8e76)
  • cookbook: document StatusLine base methods (c96f77b)
  • cookbook: ViMode (0b93d18)
  • flexible: optimize priority sorting in group_flexible_components. (e881103)
  • highlights: improve highlight normalization; privatize highlight functions; add module-level get_highlights() function (0c91862)
  • init: remove unnecessary global statusline handle initialization (1aba13f)
  • init: set statusline/winbar using vim.o; fix(timeit) (385df36)
  • navic: hardcode bitmask (9af77c2)
  • on_colorscheme: improve on_colorscheme (1f181fb)
  • remove unnecessary else (ff0e044)
  • timeit: improve timeit function (510950a)
  • utils: localize some api functions (60cb8e5)
  • various performance improvements (5b72a6a)

Documentation

  • cookbook: add documentation for new functionality + minor upgrades. (002eefd)

Code Refactoring

  • flexible_components: refactor(flexible_components)!: (b8f296e)
  • statusline: remove stop_when in favor of the more versatile pick_child. (7649842)
  • utils: prepend '_' to private attributes (1f3b296)