A lightweight statusline framework focused on component modularity. It provides the scaffolding, while you provide the logic.
status.nvim is a logic-less statusline engine for Neovim. It is designed following the minimalist philosophy (similar to manager.nvim), where the core engine only handles concatenation and error wrapping, leaving the actual content to external sources.
Using lazy.nvim:
{
"your-username/status.nvim",
config = function()
-- see Usage section
end
}To use status.nvim, load it and define your components in your configuration file:
local status = require("status.core")
status.setup({
components = {
left = {
function() return vim.api.nvim_get_mode().mode end,
"|",
function() return vim.bo.filetype end,
},
right = { "[%l:%c]" },
},
})
-- Register the render function to Neovim
vim.opt.statusline = "%!v:lua.require('status.core').render()"status.nvim is a logic-less engine. You can populate your statusline using raw strings, custom functions, or external component sources:
- status-std: Standard component sources (mode, file, etc.)
- status-git: Git-related component sources
- status-lsp: LSP-related component sources
status.setup({config})
Registers the statusline configuration.
{config}: A table containing components.left and components.right.- Each item can be a string (Vim statusline syntax) or a Lua function returning a string.
status.render()
The core engine that concatenates all components.
It safely calls each function and handles errors gracefully to prevent the statusline from breaking.