{ 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; }; }; 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; ocaml.enable = true; haskell.enable = true; haskell.lsp.enable = true; haskell.treesitter.enable = true; haskell.dap.enable = false; 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; }; rust.enable = true; }; formatter = { conform-nvim = { enable = true; }; }; }; }