Hyperextensible plugin for Neovim's 'statusline'
, 'tabline'
and 'winbar'
.
statusline
/ tabline
/ winbar
.statusline
/ winbar
.Install with your preferred plugin manager. For example:
With lazy.nvim
{
"MunifTanjim/nougat.nvim",
},
packer.nvim
vim-plug
nougat.nvim
is at your disposal to build exactly what you want.
local nougat = require("nougat")
set_statusline
Signature: (bar: NougatBar | nougat_bar_selector, opts?: { filetype?: string }) -> nil
bar
can be a NougatBar
instance:
local stl = Bar("statusline")
nougat.set_statusline(stl)
Or a nougat_bar_selector
function (ctx: nougat_core_expression_context) -> NougatBar
.
local stl = Bar("statusline")
local stl_inactive = Bar("statusline")
-- use separate statusline focused/unfocused window
nougat.set_statusline(function(ctx)
return ctx.is_focused and stl or stl_inactive
end)
opts
is a table
with the shape { filetype?: string }
.
If filetype
is given, the bar will only be used for that filetype.
local stl_fugitive = Bar("statusline")
local stl_help = Bar("statusline")
-- set filetype specific statusline
for ft, stl_ft in pairs({
fugitive = stl_fugitive,
help = stl_help,
}) do
nougat.set_statusline(stl_ft, { filetype = ft })
end
refresh_statusline
Signature: (force_all? boolean) -> nil
set_tabline
Signature: (bar: NougatBar | nougat_bar_selector) -> nil
bar
can be a NougatBar
instance or a nougat_bar_selector
function.
refresh_tabline
Signature: () -> nil
set_winbar
Signature: (bar: NougatBar | nougat_bar_selector, opts?: { filetype: string }|{ global?: boolean }|{ winid: integer }) -> nil
bar
can be a NougatBar
instance or a nougat_bar_selector
function.
opts
is a table
with one of the shapes { filetype: string }
/ { global?: boolean }
/ { winid: integer }
.
If filetype
is given, the bar will only be used for that filetype.
If global
is true
, the bar will be used for global 'winbar'
, otherwise the local 'winbar'
is set whenever a new window is created.
If winid
is present, the bar will be used for only that specific window.
refresh_winbar
Signature: (force_all?: boolean) -> nil
A handful of examples are available to get you started.
Source: bubbly.lua
Source: pointy.lua
Source: slanty.lua
Check Detailed Documentation for nougat.color
The sweet NougatBar
represents the statusline
/ tabline
/ winbar
.
Check Detailed Documentation for nougat.bar
Each NougatBar
is made of a bunch of NougatItem
.
Check Detailed Documentation for nougat.item
Separator that goes between two NougatItem
s.
Check Detailed Documentation for nougat.separator
Check Detailed Documentation for nougat.cache
Check Detailed Documentation for nougat.store
Commonly used NougatItem
s for your NougatBar
are available inside nougat.nut.*
module.
The built-in profiler can be used with the :Nougat profile
command.
Licensed under the MIT License. Check the LICENSE file for details.