tamton-aquib / staline.nvim

A modern lightweight statusline and bufferline plugin for neovim in lua.
MIT License
380 stars 17 forks source link
bufferline lua neovim neovim-plugin statusline

staline.nvim

TLDR;
staline(statusline): A simple statusline for neovim written in lua.
stabline(s-tabline): A simple bufferline for neovim written in lua. (sry didnt get a better name.)

Requirements

Installation

use 'tamton-aquib/staline.nvim'

Note Doing this will install both staline and stabline.
But separate setup() is required for each to load up.

Statusline

Screenshots

normal insert command visual

Configuration

require('staline').setup()
Click to see default configuration ```lua require('staline').setup { defaults = { expand_null_ls = false, -- This expands out all the null-ls sources to be shown left_separator = "", right_separator = "", full_path = false, line_column = "[%l/%L] :%c 並%p%% ", -- `:h stl` to see all flags. fg = "#000000", -- Foreground text color. bg = "none", -- Default background is transparent. inactive_color = "#303030", inactive_bgcolor = "none", true_colors = false, -- true lsp colors. font_active = "none", -- "bold", "italic", "bold,italic", etc mod_symbol = "  ", lsp_client_symbol = " ", lsp_client_character_length = 12, -- Shorten LSP client names. branch_symbol = " ", cool_symbol = " ", -- Change this to override default OS icon. null_ls_symbol = "", -- A symbol to indicate that a source is coming from null-ls }, mode_colors = { n = "#2bbb4f", i = "#986fec", c = "#e27d60", v = "#4799eb", -- etc.. }, mode_icons = { n = " ", i = " ", c = " ", v = " ", -- etc.. }, sections = { left = { '- ', '-mode', 'left_sep_double', ' ', 'branch' }, mid = { 'file_name' }, right = { 'cool_symbol','right_sep_double', '-line_column' }, }, inactive_sections = { left = { 'branch' }, mid = { 'file_name' }, right = { 'line_column' } }, special_table = { NvimTree = { 'NvimTree', ' ' }, packer = { 'Packer',' ' }, -- etc }, lsp_symbols = { Error=" ", Info=" ", Warn=" ", Hint="", }, } ```
Sections | section | use | |---------|-----| | mode | shows the mode | | branch | shows git branch | | file_name | shows filename | | file_size | shows file size | | cool_symbol | an icon according to the OS type (cutomizable) | | lsp | lsp diagnostics (number of errors, warnings, etc) | | lsp_name | lsp client name | | line_column | shows line, column, percentage, etc | | left_sep | single left separator | | right_sep | single right separator | | left_sep_double | Double left separator with a shade of gray | | right_sep_double | Double right separator with a shade of gray | | cwd | Current working directory |

To know more about colors and highlights, check highlights wiki

A section (left, right or mid) can take:

lsp, lsp_name, file_size sections are not included in the default settings.

Showcase

Check out wiki to see some premade configs and tips.

Bufferline

Screenshots

bar mode

slant mode

arrow mode

bubble mode

The Default configuration looks something like ```lua require('stabline').setup { style = "bar", -- others: arrow, slant, bubble stab_left = "┃", stab_right = " ", -- fg = Default is fg of "Normal". -- bg = Default is bg of "Normal". inactive_bg = "#1e2127", inactive_fg = "#aaaaaa", -- stab_bg = Default is darker version of bg., font_active = "bold", exclude_fts = { 'NvimTree', 'dashboard', 'lir' }, stab_start = "", -- The starting of stabline stab_end = "", numbers = function(bufn, n) return '*'..n..' ' end } ```
My personal config as of editing this file ![my stabline config](https://i.imgur.com/cmBdfzx.png) ```lua require('stabline').setup { style = "slant", bg = "#986fec", fg = "black", stab_right = "", } ```

Features

Cons


Inspiration and credits:

TODO