A tidy statusline for neovim written in lua featuring
🔋 Batteries Included. No configuration needed.
🕴 Minimalist Mode Indicators
🔥 0.4ms Startup Time
👁 Git Status [Signify]
🌴 Git Branch
❗️ Diagnostics Status [Ale & Native Nvim LSP] --> Native LSP set as default
🔦 LSP Current Function [builtinlsp.current_function] --> Requires require('lsp-status').on_attach(client)
💡 LSP Code Action Indicator [textDocument/codeAction] --> Requires kosayoda/nvim-lightbulb/
💯 LSP Progress Messages ⠼ [vim.lsp.util.get_progress_messages]
❓ File Modified Status
👌 Clean Ruler
⚙️ File Icon Support [Nerd Font]
🙌 Snipped File Paths
😻 Tabline Support
🎨 Optional Colorscheme matching
📻 By default colours inspired by gruvbox
🚀 More to come!
return {
'beauwilliams/statusline.lua',
dependencies = {
'nvim-lua/lsp-status.nvim',
},
config = function()
require('statusline').setup({
match_colorscheme = false, -- Enable colorscheme inheritance (Default: false)
tabline = true, -- Enable the tabline (Default: true)
lsp_diagnostics = true, -- Enable Native LSP diagnostics (Default: true)
ale_diagnostics = false, -- Enable ALE diagnostics (Default: false)
})
end,
}
Plug 'beauwilliams/statusline.lua'
use 'beauwilliams/statusline.lua'
Deprecation Notice
The configuration format using statusline.tabline = false
(and similar settings) will be deprecated in the next major release.
We recommend using the new setup
configuration format for more flexibility and better handling of user-defined settings.
For now, you can still use both the old format and the new one, but we encourage transitioning to the new setup()
method for future compatibility.
Colorscheme Matching
-- Matches visual elements such as mode icon to your colorscheme
require('statusline').setup({
match_colorscheme = true, -- Enable colorscheme matching (Default: false)
})
Disable Tabline
require('statusline').setup({
tabline = false, -- Enable the tabline (Default: true)
})
Enable ALE Diagnostics Display
-- With ALE you can get errors displayed without explicitly needing an LSP server
require('statusline').setup({
lsp_diagnostics = false, -- Enable Native LSP diagnostics (Default: true)
ale_diagnostics = true, -- Enable ALE diagnostics (Default: false)
})
Enable Global Statusline (version 0.7+)
-- This setting will mean that you have one single statusline drawn accross the entire display
lua vim.o.laststatus=3
- Signify [Git Status]
- Ale [Diagnostics] --> nathunsmitty/nvim-ale-diagnostic
- Native LSP [Current Function] --> require('lsp-status').on_attach(client)
- Native LSP [Diagnostics] --> Must have a relevant language server to provide diagnostics
- Native LSP [Progress %] --> Must have a relevant language server to provide progress messages
- Native LSP [Code Actions] --> Requires kosayoda/nvim-lightbulb/
setup()
configurationContributing
Please before submitting a PR install stylua here
And run stylua .
from your shell in the root folder of focus.nvim
This will format the code according to the guidlines set in stylua.toml