Files
dotfiles/nvim/lua/tracer/plugins/lualine.lua

77 lines
1.4 KiB
Lua

local separator = {
"|",
color = "StatusLineNonText",
}
local non_text_hl = vim.api.nvim_get_hl(0, { name = "NonText" })
local statusline_hl = vim.api.nvim_get_hl(0, { name = "StatusLine" })
vim.api.nvim_set_hl(0, "StatusLineNonText", {
fg = non_text_hl.fg,
bg = statusline_hl.bg,
})
local function lsp_clients()
local clients = vim.lsp.get_clients({ bufnr = 0 })
if #clients == 0 then
return ""
end
local names = {}
for _, client in ipairs(clients) do
names[#names + 1] = client.name
end
return "LSP: " .. table.concat(names, ", ")
end
require("lualine").setup({
options = {
section_separators = '',
component_separators = "",
globalstatus = true,
theme = {
normal = {
a = "StatusLine",
b = "StatusLine",
c = "StatusLine",
},
},
},
sections = {
lualine_a = {
"mode",
separator,
},
lualine_b = {
"branch",
"diff",
separator,
lsp_clients,
{ "diagnostics", sources = { "nvim_diagnostic" } },
separator,
},
lualine_c = {
"filename",
},
lualine_x = {
"filetype",
"encoding",
"fileformat",
},
lualine_y = {
separator,
function()
return (vim.bo.expandtab and "s" or "t") .. "" .. vim.bo.shiftwidth
end,
separator,
},
lualine_z = {
"location",
"progress",
},
},
})