beauwilliams/statusline.lua

github github
bars-and-linesstatusline
stars 215
issues 2
subscribers 4
forks 14
CREATED

2021-01-31

UPDATED

4 days ago


GitHub stars Requires GitHub contributors GitHub issues GitHub issues-closed PRs Welcome

Statusline.lua

screenshot

Statusline

screencast

Tabline [BONUS]

screenshot

Light Theme Compatible

screenshot

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!

Installation

lazy

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,
}

vim-plug

Plug 'beauwilliams/statusline.lua'

packer.nvim

use 'beauwilliams/statusline.lua'

Configuration

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

Optional Dependencies

- 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/

Planned Improvements 😼

  • Completely move codebase to lua
  • Shed Fugitive
  • Shed Nvim-Webdev-Icons
  • Support Native LSP
  • Theme Support
  • Migrate to modern setup() configuration

Developers Only

Contributing

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

Credits

lualine galaxyline neoline