77 lines
1.4 KiB
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",
|
|
},
|
|
},
|
|
})
|