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

74 lines
1.8 KiB
Lua

return {
"nvim-lualine/lualine.nvim",
dependencies = "nvim-tree/nvim-web-devicons",
opts = function()
local icons = require("fschauen.util.icons")
local window = require("fschauen.window")
local autoformat = require("fschauen.util.autoformat").lualine()
local component = require("lualine.fschauen.component")
local diagnostics = component.colored_if_focused("diagnostics")
local filetype = component.colored_if_focused("filetype")
local status = component.colored_if_focused("fschauen.status")
local whitespace = component.colored_if_focused("fschauen.whitespace")
local spell = {
function() return "󰓆" end,
cond = function() return vim.o.spell end,
}
local wrap = {
function() return "󰖶" end,
cond = function() return vim.o.wrap end,
}
local sections = {
lualine_a = {
"fschauen.mode",
},
lualine_b = {
{ "branch", icon = icons.git.Branch, cond = window.is_medium },
},
lualine_c = {
"fschauen.filename",
status,
},
lualine_x = {
diagnostics,
"fschauen.searchcount",
{ filetype, cond = window.is_medium },
},
lualine_y = {
spell,
wrap,
autoformat,
{ "fileformat", cond = window.is_medium },
"progress",
},
lualine_z = {
"location",
whitespace,
},
}
return {
options = {
icons_enabled = true,
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
},
sections = sections,
inactive_sections = sections,
extensions = {
"fugitive",
"quickfix",
"nvim-tree",
"lazy",
"man",
"trouble",
},
}
end,
}