{pkgs, ...}: { plugins = { lsp = { enable = true; inlayHints = true; servers = { gopls.enable = true; html.enable = true; htmx.enable = true; nixd.enable = true; protols = { enable = true; package = pkgs.protols; }; basedpyright.enable = true; qmlls = { enable = true; cmd = ["qmlls" "-E"]; }; rust_analyzer = { enable = true; installCargo = false; installRustc = false; settings = { cargo.loadOutDirsFromCheck = true; check.command = "clippy"; completion.postfix.enable = false; inlayHints = { closureCaptureHints.enable = true; closureReturnTypeHints.enable = "always"; implicitDrops.enable = true; implicitSizedBoundHints.enable = true; }; }; }; taplo.enable = true; tailwindcss = { enable = true; filetypes = ["htmldjango" "html" "markdown" "rust" "templ"]; }; templ.enable = true; yamlls.enable = true; }; }; lsp-lines.enable = true; lsp-signature = { enable = true; settings = { doc_lines = 0; handler_opts.border = "none"; hint_enable = false; }; }; fidget.enable = true; }; extraConfigLua = '' -- disable inline diagnostic messages, -- but enable virtual lines for lsp-lines vim.diagnostic.config({ virtual_text = false, virtual_lines = true }) ''; keymaps = [ { action = "lua vim.lsp.inlay_hint.enable(not vim.lsp.inlay_hint.is_enabled())"; key = "ti"; options.desc = "toggle inlay hints"; } ]; }