{# Customisable status line #} {{ add_source('famiu/feline.nvim') -}} set noshowmode set laststatus=2 lua << EOF local base16_colors = require('base16-colorscheme').colors local vi_mode_utils = require('feline.providers.vi_mode') local lsp = require('feline.providers.lsp') require('feline').setup({ default_bg = 'base01', default_fg = 'base04', colors = { base00 = base16_colors.base00, base01 = base16_colors.base01, base02 = base16_colors.base02, base03 = base16_colors.base03, base04 = base16_colors.base04, base05 = base16_colors.base05, base06 = base16_colors.base06, base07 = base16_colors.base07, base08 = base16_colors.base08, base09 = base16_colors.base09, base0A = base16_colors.base0A, base0B = base16_colors.base0B, base0C = base16_colors.base0C, base0D = base16_colors.base0D, base0E = base16_colors.base0E, base0F = base16_colors.base0F, }, components = { left = { active = { { provider = function() return string.format(' %d ', vim.fn.line('$')) end, -- If you can, make it depend on the actual bar size left_sep = { {str = 'block', fg = 'base05'} }, hl = { fg = 'base01', bg = 'base04', }, }, { provider = 'vi_mode', hl = function() return { name = vi_mode_utils.get_mode_highlight_name(), bg = vi_mode_utils.get_mode_color(), fg = 'white', style = 'bold', } end, left_sep = {'█'}, right_sep = {'█'}, }, { provider='', hl = function() return { bg = vi_mode_utils.get_mode_color(), fg = (vim.bo.modified and 'base09') or 'base0D', } end, }, { provider = 'file_info', type = 'relative', hl = function() return { fg = 'base06', bg = (vim.bo.modified and 'base09') or 'base0D', style = 'bold', } end, left_sep = {'█'}, right_sep = {'█'}, }, { provider='', hl = function() return { bg = 'base02', fg = (vim.bo.modified and 'base09') or 'base0D', } end, }, { provider = 'position', hl = { fg = 'base05', bg = 'base02' }, right_sep = {'█'}, }, -- If it miraculously became easy to do, add LSP position here { provider='', hl = { bg = 'base01', fg = 'base02' }, }, } }, right = { active = { { provider='', hl = { bg = 'base03', fg = 'base01', }, }, { provider='z', enabled = function() return next(vim.lsp.buf_get_clients()) == nil end, hl = { bg = 'base03', fg = 'base01', }, left_sep = '█', }, { provider = 'diagnostic_errors', enabled = function() return lsp.diagnostics_exist('Error') end, hl = { fg = 'red', bg = 'base03', }, left_sep = '█', }, { provider = 'diagnostic_warnings', enabled = function() return lsp.diagnostics_exist('Warning') end, hl = { fg = 'yellow', bg = 'base03', }, left_sep = '█', }, { provider = 'diagnostic_hints', enabled = function() return lsp.diagnostics_exist('Hint') end, hl = { fg = 'cyan', bg = 'base03', }, left_sep = '█', }, { provider = 'diagnostic_info', enabled = function() return lsp.diagnostics_exist('Information') end, hl = { fg = 'skyblue', bg = 'base03', }, left_sep = '█', }, { provider='█', hl = { bg = 'base02', fg = 'base03', }, }, { provider = 'git_diff_added', hl = { fg = 'green', bg = 'base02', }, left_sep = '█', enabled = function() return vim.b.gitsigns_status_dict end, }, { provider = 'git_diff_changed', hl = { fg = 'orange', bg = 'base02', }, left_sep = '█', enabled = function() return vim.b.gitsigns_status_dict end, }, { provider = 'git_diff_removed', hl = { fg = 'red', bg = 'base02', }, left_sep = '█', enabled = function() return vim.b.gitsigns_status_dict end, }, { provider = 'git_branch', hl = { fg = 'base05', bg = 'base02', style = 'bold', }, right_sep = '█', left_sep = '█', enabled = function() return vim.b.gitsigns_status_dict end, }, } }, } }) EOF