bew / heirline.nvim

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

heirline.nvim

The ultimate Neovim Statusline for tinkerers

About

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!

Features:

  • 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!

Installation

Use your favorite plugin manager

use "rebelot/heirline.nvim"

Setup

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.

Donate

Buy me coffee and support my work ;)

Donate

About

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


Languages

Language:Lua 100.0%