Giter VIP home page Giter VIP logo

heirline.nvim's Introduction

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

heirline.nvim's People

Contributors

anuvyklack avatar mathjiajia avatar max397574 avatar oncomouse avatar pluffie avatar ramojus avatar rebelot avatar zootedb0t avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.