The ultimate Neovim Statusline for tinkerers
Heirline.nvim is a no-nonsense Neovim Statusline/Winbar plugin designed around recursive inheritance to be exceptionally fast and versatile.
Heirline does not provide any default statusline, in fact, heirline can be thought of as a statusline API.
Why another statusline plugin?
Heirline picks up from other popular customizable statusline plugins like galaxyline and feline but removes all the hard-coded guides and offers you thousands times more freedom. But freedom has a price: responsibility. I don't get to tell you what your statusline should do. You're in charge! With Heirline, you have a framework to easily implement whatever you can imagine, from simple to complex rules!
- Conditionals: Build custom active/inactive and buftype/filetype/bufname statuslines or single components.
- Highlight propagation: Seamlessly surround components within separators and/or set the (dynamic) coloring of a bunch of components at once.
- Modularity: Statusline components can be reutilized/rearranged and will behave according to their position in the genealogical tree.
- Update triggers: Re-evaluate components only when some condition is met or specific autocommand events are fired.
- Clickable: Write pure lua callbacks to be executed when clicking a component.
- Dynamic resizing: Specify how components should resize depending on available space.
- Full control: You have hooks to fully control the statusline evaluation cycle.
Heirline is not for everyone, heirline is for people who like tailoring their own tools (and also like lua):
- No default statusline is provided
- You must write your own statusline
But don't you worry! Along with the inheritance comes THE FEATUREFUL COOKBOOK ๐ of a distant relative. Your dream ๐ช statusline is a copypaste away!
Use your favorite plugin manager
use "rebelot/heirline.nvim"
No defaults, no options, no-nonsense. You choose.
local statusline = {...}
local winbar = {...}
require'heirline'.setup(statusline, winbar)
Calling setup
will load your statusline. To learn how to write a StatusLine, see the docs.
Buy me coffee and support my work ;)