nixvim/plugins/lsp/default.nix
Lander Van den Bulcke 61feed4086
refactor: complete overhaul
Complete overhaul of repo structure based on nvix.

See https://github.com/niksingh710/nvix

Signed-off-by: Lander Van den Bulcke <landervandenbulcke@gmail.com>
2025-10-19 18:25:15 +02:00

108 lines
1.9 KiB
Nix

{ config, lib, ... }:
let
inherit (config.myvim.mkKey) mkKeymap;
in
{
opts = {
foldcolumn = "1";
foldlevel = 99;
foldlevelstart = -1;
foldenable = true;
};
diagnostic.settings = {
virtual_text = false;
underline = true;
signs = true;
severity_sort = true;
float = {
border = config.myvim.border;
source = "always";
focusable = false;
};
};
plugins = {
lsp = {
enable = true;
keymaps.extra = [
(mkKeymap "n" "<leader>lO" "<cmd>lua require('otter').activate()<cr>" "Force Otter")
];
inlayHints = true;
servers = {
typos_lsp = {
enable = true;
extraOptions.init_options.diagnosticSeverity = "Hint";
};
};
keymaps = {
silent = true;
diagnostic = {
"<leader>lj" = "goto_next";
"<leader>lk" = "goto_prev";
};
};
};
lspsaga = {
enable = true;
settings = {
lightbulb = {
enable = false;
virtualText = false;
};
outline.keys.jump = "<cr>";
ui.bortder = config.myvim.border;
scrollPreview = {
scrollDown = "<c-d>";
scrollUp = "<c-u>";
};
};
};
nvim-ufo = {
enable = true;
settings = {
provider_selector = # lua
''
function()
return { "lsp", "indent" }
end
'';
preview.mappings = {
close = "q";
switch = "K";
};
};
};
otter = {
enable = true;
settings.buffers = {
set_filetype = true;
};
};
tiny-inline-diagnostic.enable = true;
trouble.enable = true;
};
imports =
with builtins;
with lib;
map (fn: ./${fn}) (
filter (fn: (fn != "default.nix" && !hasSuffix ".md" "${fn}")) (attrNames (readDir ./.))
);
}