116 lines
2.7 KiB
Lua
116 lines
2.7 KiB
Lua
return {
|
|
"nvim-lualine/lualine.nvim",
|
|
event = "VeryLazy",
|
|
opts = function()
|
|
local colors = {
|
|
red = "#ca1243",
|
|
grey = "#a0a1a7",
|
|
black = "#383a42",
|
|
white = "#f3f3f3",
|
|
light_green = "#83a598",
|
|
orange = "#fe8019",
|
|
green = "#8ec07c",
|
|
}
|
|
|
|
-- Put proper separators and gaps between components in sections
|
|
local function process_sections(sections)
|
|
for name, section in pairs(sections) do
|
|
local left = name:sub(9, 10) < "x"
|
|
for pos = 1, name ~= "lualine_z" and #section or #section - 1 do
|
|
table.insert(section, pos * 2, { color = { fg = colors.white, bg = colors.white } })
|
|
end
|
|
for id, comp in ipairs(section) do
|
|
if type(comp) ~= "table" then
|
|
comp = { comp }
|
|
section[id] = comp
|
|
end
|
|
comp.separator = left and { right = "" } or { left = "" }
|
|
end
|
|
end
|
|
return sections
|
|
end
|
|
|
|
local function search_result()
|
|
if vim.v.hlsearch == 0 then
|
|
return ""
|
|
end
|
|
local last_search = vim.fn.getreg("/")
|
|
if not last_search or last_search == "" then
|
|
return ""
|
|
end
|
|
local searchcount = vim.fn.searchcount({ maxcount = 9999 })
|
|
return last_search .. "(" .. searchcount.current .. "/" .. searchcount.total .. ")"
|
|
end
|
|
|
|
local function modified()
|
|
if vim.bo.modified then
|
|
return "+"
|
|
elseif vim.bo.modifiable == false or vim.bo.readonly == true then
|
|
return "-"
|
|
end
|
|
return ""
|
|
end
|
|
|
|
return {
|
|
options = {
|
|
theme = "auto",
|
|
globalstatus = true,
|
|
disabled_filetypes = { statusline = { "dashboard", "lazy", "alpha" } },
|
|
},
|
|
sections = process_sections({
|
|
lualine_a = { "mode" },
|
|
lualine_b = {
|
|
"branch",
|
|
"diff",
|
|
{
|
|
"diagnostics",
|
|
source = { "nvim" },
|
|
sections = { "error" },
|
|
-- diagnostics_color = { error = { bg = colors.red, fg = colors.white } },
|
|
},
|
|
{
|
|
"diagnostics",
|
|
source = { "nvim" },
|
|
sections = { "warn" },
|
|
-- diagnostics_color = { warn = { bg = colors.orange, fg = colors.white } },
|
|
},
|
|
{ "filename", file_status = false, path = 1 },
|
|
{ modified, color = { bg = colors.red } },
|
|
{
|
|
"%w",
|
|
cond = function()
|
|
return vim.wo.previewwindow
|
|
end,
|
|
},
|
|
{
|
|
"%r",
|
|
cond = function()
|
|
return vim.bo.readonly
|
|
end,
|
|
},
|
|
{
|
|
"%q",
|
|
cond = function()
|
|
return vim.bo.buftype == "quickfix"
|
|
end,
|
|
},
|
|
},
|
|
lualine_c = {
|
|
{
|
|
function()
|
|
return require("nvim-navic").get_location()
|
|
end,
|
|
cond = function()
|
|
return package.loaded["nvim-navic"] and require("nvim-navic").is_available()
|
|
end,
|
|
},
|
|
},
|
|
lualine_x = {},
|
|
-- lualine_y = { search_result, "filetype" },
|
|
lualine_y = { "filetype " },
|
|
lualine_z = { "%l:%c", "%p%%/%L" },
|
|
}),
|
|
}
|
|
end,
|
|
}
|