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",
},
use({
"MunifTanjim/nougat.nvim",
})
Plug 'MunifTanjim/nougat.nvim'
nougat.nvim is at your disposal to build exactly what you want.
local nougat = require("nougat")
set_statuslineSignature: (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_statuslineSignature: (force_all? boolean) -> nil
set_tablineSignature: (bar: NougatBar | nougat_bar_selector) -> nil
bar can be a NougatBar instance or a nougat_bar_selector function.
refresh_tablineSignature: () -> nil
set_winbarSignature: (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_winbarSignature: (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 NougatItems.
Check Detailed Documentation for nougat.separator
Check Detailed Documentation for nougat.cache
Check Detailed Documentation for nougat.store
Commonly used NougatItems 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.