dotfiles/config/nvim/lua/fschauen/plugins/lualine.lua

96 lines
2.2 KiB
Lua

return {
'nvim-lualine/lualine.nvim',
config = function()
local window = require 'fschauen.window'
local colored_if_focused = require('fschauen.lualine').colored_if_focused
-- custom components
local C = {
diagnostics = {
colored_if_focused('diagnostics'),
},
diff = {
colored_if_focused('diff'),
symbols = {
added = '',
modified = '',
removed = '',
},
},
branch = {
'branch',
icon = '󰘬',
cond = window.is_medium,
},
fileformat = {
'fileformat',
cond = window.is_medium,
},
filename = {
require('fschauen.lualine').filename,
padding = {
left = 1,
right = 0,
},
},
filetype = {
colored_if_focused('filetype'),
cond = window.is_medium,
},
mode = require('fschauen.lualine').mode,
paste = {
colored_if_focused(function(has_focus) return has_focus and '' or ' ' end),
color = {
bg = '#fe8019',
},
cond = function() return vim.o.paste end
},
status = {
colored_if_focused(function(_)
local status = ''
if vim.bo.modified then status = status .. '' end
if vim.bo.readonly or not vim.bo.modifiable then status = status .. 'RO' end
return status
end),
color = {
fg = '#f9f5d7',
},
},
}
local sections = {
lualine_a = { C.paste, C.mode },
lualine_b = { C.branch },
lualine_c = { C.filename, C.status },
lualine_x = { C.diagnostics, C.filetype },
lualine_y = { C.fileformat, 'progress' },
lualine_z = { 'location' },
}
require('lualine').setup {
options = {
icons_enabled = true,
component_separators = {
left = '',
right = ''
},
section_separators = {
left = '',
right = ''
},
theme = 'gruvbox',
},
sections = sections,
inactive_sections = sections,
extensions = {
'fugitive',
'quickfix',
'nvim-tree',
'lazy',
'man',
'trouble',
},
}
end
}