57 lines
1.4 KiB
Nix
57 lines
1.4 KiB
Nix
{
|
|
lib,
|
|
config,
|
|
...
|
|
}: let
|
|
inherit (lib) mkEnableOption mkIf;
|
|
cfg = config.modules.devtools.nixvim.plugins.lualine;
|
|
in {
|
|
options = {
|
|
modules.devtools.nixvim.plugins.lualine.enable = mkEnableOption "Enables Lualine plugin for nixvim";
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
programs.nixvim.plugins.lualine = {
|
|
enable = true;
|
|
theme = "gruvbox-material";
|
|
globalstatus = true;
|
|
|
|
sections = {
|
|
lualine_a = ["mode"];
|
|
lualine_b = ["branch"];
|
|
lualine_c = ["filename" "diff"];
|
|
|
|
lualine_x = [
|
|
"diagnostics"
|
|
|
|
# Show active language server
|
|
{
|
|
name.__raw = ''
|
|
function()
|
|
local msg = ""
|
|
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
|
|
local clients = vim.lsp.get_active_clients()
|
|
if next(clients) == nil then
|
|
return msg
|
|
end
|
|
for _, client in ipairs(clients) do
|
|
local filetypes = client.config.filetypes
|
|
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
|
|
return client.name
|
|
end
|
|
end
|
|
return msg
|
|
end
|
|
'';
|
|
icon = "";
|
|
color.fg = "#ffffff";
|
|
}
|
|
"encoding"
|
|
"fileformat"
|
|
"filetype"
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|