nixos-config/home-manager/modules/nvf/languages.nix
gwg313 099d82f56c
update neovim and syncthing
Signed-off-by: gwg313 <gwg313@pm.me>
2025-09-28 10:34:11 -04:00

128 lines
3 KiB
Nix

{
lib,
pkgs,
...
}:
{
programs.nvf.settings.vim = {
diagnostics = {
enable = true;
config = {
signs = {
text = {
"vim.diagnostic.severity.Error" = " ";
"vim.diagnostic.severity.Warn" = " ";
"vim.diagnostic.severity.Hint" = " ";
"vim.diagnostic.severity.Info" = " ";
};
};
underline = true;
update_in_insert = true;
virtual_text = {
format =
lib.generators.mkLuaInline
# lua
''
function(diagnostic)
return string.format("%s", diagnostic.message)
--return string.format("%s (%s)", diagnostic.message, diagnostic.source)
end
'';
};
};
nvim-lint = {
enable = true;
};
};
syntaxHighlighting = true;
treesitter = {
enable = true;
autotagHtml = true;
context.enable = true;
highlight = {
enable = true;
additionalVimRegexHighlighting = true;
};
};
lsp = {
enable = true;
trouble.enable = true;
lspSignature.enable = true;
lspconfig.enable = true;
formatOnSave = true;
inlayHints.enable = true;
null-ls.enable = true;
servers.nixd.settings.nil.nix.autoArchive = true;
otter-nvim = {
enable = true;
setupOpts = {
buffers.set_filetype = true;
lsp = {
diagnostic_update_event = [
"BufWritePost"
"InsertLeave"
];
};
};
};
lspkind.enable = true;
lspsaga = {
enable = true;
setupOpts = {
ui = {
code_action = "";
};
lightbulb = {
sign = false;
virtual_text = true;
};
breadcrumbs.enable = false;
};
};
};
languages = {
enableDAP = true;
enableExtraDiagnostics = true;
enableFormat = true;
enableTreesitter = true;
astro.enable = true;
python.enable = true;
java.enable = true;
clang.enable = true;
go.enable = true;
markdown = {
enable = true;
format.type = "prettierd";
extensions = {
markview-nvim = {
enable = true;
};
};
extraDiagnostics.enable = true;
};
ts.enable = true;
ts.extensions.ts-error-translator.enable = true;
css.enable = true;
svelte.enable = true;
haskell.enable = true;
haskell.lsp.enable = true;
html.enable = true;
bash.enable = true;
nix.enable = true;
tailwind.enable = true;
typst = {
enable = true;
lsp.enable = true;
lsp.server = "tinymist";
format.enable = true;
treesitter.enable = true;
};
};
formatter = {
conform-nvim = {
enable = true;
};
};
};
}