Tip
This repository contains guides for both creating your own bars & lines plugin.
Other than that, this repository acts as a working example bars & lines plugin.
A highly customisable & toggle-able bars & lines plugin for Neovim.
- Ability to toggle various bars & lines either globally or on specific window.
- Component-style configuration to keep things clean & readable.
- Per window configuration, allowing users to change how things look on each window.
- Conditional rendering to disable certain components based on conditions.
- Enable or disable various bars via
:Bars.
More specific features are as follows,
- Built-in support for showing current
Git branch&diagnostics count - Customisable
ruler. - Custom
statuslinefor,- Help files
- Quickfix
- Filtering of
Signs. - Built-in support for mixed line numbers(
relativefor normal lines &absolutefor current line). - Fancy
virtual lines&wrapped linesindicators.
- Built-in support for Tree-sitter node hierarchy for the current node.
- File path segments from.project root.
- Buffer list(tab list similar to IDEs) support.
- Mouse-support.
Add this to your plugin list.
Plug "OXY2DEV/bars.nvim"Note
Lazy loading is NOT needed for this!
For plugins.lua users,
{
"OXY2DEV/bars.nvim",
},For plugins/bars.lua,
return {
"OXY2DEV/bars.nvim",
};local MiniDeps = require("mini.deps");
MiniDeps.add({
source = "OXY2DEV/bars.nvim"
});Warning
luarocks package may sometimes be a bit behind main.
:Rocks install bars.nvimTagged releases can be found in the release page.
Note
Github releases may sometimes be slightly behind main.
bars.nvim can be configured in 2 ways,
- Via the
setup()function.
require("bars").setup({
global = false
});- Via each module's setup function.
require("bars.statusline").setup({
ignore_filwtypes = { "help" }
});Check the wiki to learn about all the configuration options!
Configuration guides are available in the wiki.
bars.nvim provides a single command :Bars which has sub-commands that can be used to do different things.
The sub-commands are given below,
| Sub-command | Description |
|---|---|
| Disable | Used to disable statusline, statuscolumn etc. globally. |
| Enable | Used to enable statusline, statuscolumn etc. globally. |
| Start | Signals the module(s) to attach to new windows. |
| Stop | Stops the module(s) from attaching to nee windows. |
| Toggle | Used to toggle statusline, statuscolumn etc. globally. |
| clean | Cleans up cached values of deleted windows. |
| disable | Used to disable statusline, statuscolumn etc. of given window(s). |
| enable | Used to enable statusline, statuscolumn etc. of given window(s). |
| toggle | Used to toggle statusline, statuscolumn etc. of given window(s). |
| update | Updates the module's configuration ID of given window. |
All the sub-commands support modifier to specify which modules should be affected by the command.
Tip
If you want to run a sub-command on the current window then you can ignore the modifier.
" Toggles all bars & lines for the current window.
:Bars toggleModifiers are given below,
| Modifier | Description |
|---|---|
| ? | Prompt which module(s) to affect. |
| all | Affects all modules. |
| statuscolumn | Self-explanatory. |
| statusline | Self-explanatory. |
| tabline | Self-explanatory. |
| winbar | Self-explanatory. |
You can add any number of windows after the modifier to specify which windows to run the command on.
Tip
Cmdline completion are provided for all sub-commands/modifiers/windows!
Note
These are work in progress!






