Files
dotfiles/nvim/.config/nvim/lua/plugins/feline.lua

244 lines
4.5 KiB
Lua

local function feline_config(_, opts)
local feline = require('feline')
local dark_theme = {
bg = '#5a605f',
bg2 = '#2b3231',
black = '#403833',
skyblue = '#61abda',
cyan = '#65b8c1',
fg = '#9bafac',
green = '#8bae68',
oceanblue = '#6099c0',
magenta = '#cf86c1',
orange = '#d68c67',
red = '#e8838f',
violet = '#b279a7',
white = '#b4bdc3',
yellow = '#b77e64',
}
feline.add_theme('dark', dark_theme)
local light_theme = {
bg = '#dde4e3',
bg2 = '#b3cbc8',
black = '#c4b6af',
skyblue = '#1d5573',
cyan = '#2b747c',
fg = '#2c3131',
green = '#3f5a22',
oceanblue = '#286486',
magenta = '#7b3b70',
orange = '#803d1c',
red = '#94253e',
violet = '#88507d',
white = '#4f5e68',
yellow = '#944927',
}
feline.add_theme('light', light_theme)
local statusline = require('arrow.statusline')
local vimode = require('feline.providers.vi_mode')
local c = {
vi_mode = {
provider = 'vi_mode',
hl = function()
return {
name = vimode.get_mode_highlight_name(),
fg = vimode.get_mode_color(),
bg = 'bg2',
style = 'bold',
}
end,
left_sep = {
str = ' █',
always_visible = true,
hl = {
fg = 'bg2',
},
},
right_sep = {
str = '',
always_visible = true,
hl = {
fg = 'bg2',
},
}
},
file_info = {
provider = 'file_info',
hl = {
fg = 'fg',
},
left_sep = {
str = ' ',
},
right_sep = {
str = ' ',
},
},
arrow = {
provider = function() return statusline.text_for_statusline_with_icons() end,
hl = {
fg = 'red',
style = 'bold',
},
},
file_size = {
provider = 'file_size',
hl = {
fg = 'fg',
bg = 'bg2',
style = 'bold',
},
left_sep = {
str = ' █',
always_visible = true,
hl = {
fg = 'bg2',
},
},
},
line_percentage = {
provider = 'line_percentage',
hl = {
fg = 'fg',
bg = 'bg2',
style = 'bold',
},
left_sep = {
str = '',
hl = {
fg = 'fg',
bg = 'bg2',
},
},
right_sep = {
str = '',
hl = {
fg = 'fg',
bg = 'bg2',
},
},
},
position = {
provider = 'position',
hl = {
fg = 'fg',
bg = 'bg2',
style = 'bold',
},
right_sep = {
str = '█ ',
always_visible = true,
hl = {
fg = 'bg2',
},
}
},
diagnostic_errors = {
provider = 'diagnostic_errors',
hl = {
fg = 'red',
},
},
diagnostic_warnings = {
provider = 'diagnostic_warnings',
hl = {
fg = 'yellow',
},
},
diagnostic_hints = {
provider = 'diagnostic_hints',
hl = {
fg = 'cyan',
},
},
diagnostic_info = {
provider = 'diagnostic_info',
hl = {
fg = 'skyblue',
},
},
git_diff_added = {
provider = 'git_diff_added',
hl = {
fg = 'green',
},
},
git_diff_removed = {
provider = 'git_diff_removed',
hl = {
fg = 'red',
},
},
git_diff_changed = {
provider = 'git_diff_changed',
hl = {
fg = 'yellow',
},
},
git_branch = {
provider = 'git_branch',
hl = {
fg = 'fg',
bg = 'bg2',
style = 'bold',
},
left_sep = {
str = ' █',
hl = {
fg = 'bg2',
},
},
right_sep = {
str = '',
hl = {
fg = 'bg2',
},
}
},
}
local active = {
{
c.vi_mode,
c.file_info,
c.arrow,
c.file_size,
c.line_percentage,
c.position,
c.diagnostic_errors,
c.diagnostic_warnings,
c.diagnostic_info,
c.diagnostic_hints,
},
{
c.git_diff_added,
c.git_diff_removed,
c.git_diff_changed,
c.git_branch,
},
}
local inactive = {
{
c.file_info,
},
{},
}
opts.components = { active = active, inactive = inactive }
feline.setup(opts)
feline.use_theme(require('lupan.utils').terminalbg())
end
return {
-- Statusline
'freddiehaddad/feline.nvim',
opts = {},
config = feline_config,
}