{ pkgs, ... }: { plugins = { rustaceanvim = { enable = true; settings = { auto_attach = true; server = { standalone = false; default_settings = { rust-analyzer = { inlayHints = { lifetimeElisionHints = { enable = "always"; }; }; cargo.features = "all"; check = { command = "clippy"; }; cachePriming.enable = false; }; }; }; }; }; lsp = { enable = true; inlayHints = true; keymaps = { lspBuf = { K = "hover"; gD = "references"; gd = "definition"; gi = "implementation"; gt = "type_definition"; "rn" = "rename"; "g=" = "format"; }; diagnostic = { "j" = "goto_next"; "k" = "goto_prev"; }; }; servers = { cssls.enable = true; nil_ls.enable = true; # NixOS dockerls.enable = true; rust_analyzer = { enable = false; installCargo = false; installRustc = false; }; pyright.enable = true; pylsp = { enable = true; settings.plugins = { black = { enabled = true; cache_config = true; }; pycodestyle = { maxLineLength = 100; }; }; }; elixirls.enable = true; clangd.enable = true; yamlls.enable = true; lua_ls.enable = true; tinymist = { enable = true; rootMarkers = [ "main.typ" ]; onAttach.function = '' vim.keymap.set("n", "tp", function() client:exec_cmd({ title = "pin", command = "tinymist.pinMain", arguments = { vim.api.nvim_buf_get_name(0) }, }, { bufnr = bufnr }) end, { desc = "[T]inymist [P]in", noremap = true }) vim.keymap.set("n", "tu", function() client:exec_cmd({ title = "unpin", command = "tinymist.pinMain", arguments = { vim.v.null }, }, { bufnr = bufnr }) end, { desc = "[T]inymist [U]npin", noremap = true }) ''; settings = { formatterMode = "typstyle"; # or "typstfmt" }; }; }; }; trouble.enable = true; lspkind.enable = true; lspsaga = { enable = true; lightbulb.enable = false; }; nvim-lightbulb = { enable = true; settings = { autocmd.enabled = true; number.enabled = true; }; }; none-ls = { enable = true; sources = { formatting = { nixfmt = { enable = true; package = pkgs.nixfmt-rfc-style; }; }; }; }; }; }