{...}: { vim = { lsp.enable = true; languages = { enableFormat = true; enableTreesitter = true; enableExtraDiagnostics = true; python = { enable = true; lsp = { enable = true; servers = ["ty"]; }; format = { enable = true; type = ["black"]; }; }; lua = { enable = true; lsp.enable = true; format.enable = true; }; rust = { enable = true; lsp.enable = true; extensions.crates-nvim.enable = true; format.enable = true; }; nix = { enable = true; lsp = { enable = true; servers = ["nil"]; }; format = { enable = true; type = ["alejandra"]; }; }; clang = { enable = true; lsp.enable = true; }; }; keymaps = [ {key = "ls"; mode = ["n"]; lua = true; action = "function() Snacks.picker.lsp_symbols() end"; desc = "Document Symbols";} {key = "lS"; mode = ["n"]; lua = true; action = "function() Snacks.picker.lsp_workspace_symbols() end"; desc = "Workspace Symbols";} {key = "lR"; mode = ["n"]; action = "LspRestart"; desc = "Restart LSP";} ]; }; }