|
77 | 77 | context |
78 | 78 | skills |
79 | 79 | ; |
| 80 | + |
| 81 | + lspServers = { |
| 82 | + nixd = { |
| 83 | + command = lib.getExe pkgs.nixd; |
| 84 | + fileExtensions = { |
| 85 | + ".nix" = "nix"; |
| 86 | + }; |
| 87 | + initializationOptions = { |
| 88 | + formatting.command = [ (lib.getExe pkgs.nixfmt) ]; |
| 89 | + }; |
| 90 | + }; |
| 91 | + |
| 92 | + emmylua-ls = { |
| 93 | + command = lib.getExe pkgs.emmylua-ls; |
| 94 | + fileExtensions = { |
| 95 | + ".lua" = "lua"; |
| 96 | + }; |
| 97 | + initializationOptions.Lua = { |
| 98 | + diagnostics.globals = [ |
| 99 | + "vim" |
| 100 | + "Sbar" |
| 101 | + "spoon" |
| 102 | + ]; |
| 103 | + workspace.library = [ |
| 104 | + "/nix/store/*/share/lua/5.1" |
| 105 | + "/etc/profiles/per-user/${config.khanelinix.user.name}/share/lua/5.1" |
| 106 | + ]; |
| 107 | + }; |
| 108 | + }; |
| 109 | + |
| 110 | + basedpyright = { |
| 111 | + command = lib.getExe' pkgs.basedpyright "basedpyright-langserver"; |
| 112 | + args = [ "--stdio" ]; |
| 113 | + fileExtensions = { |
| 114 | + ".py" = "python"; |
| 115 | + ".pyi" = "python"; |
| 116 | + ".pyw" = "python"; |
| 117 | + }; |
| 118 | + }; |
| 119 | + |
| 120 | + ruff = { |
| 121 | + command = lib.getExe pkgs.ruff; |
| 122 | + args = [ "server" ]; |
| 123 | + fileExtensions = { |
| 124 | + ".py" = "python"; |
| 125 | + ".pyi" = "python"; |
| 126 | + ".pyw" = "python"; |
| 127 | + }; |
| 128 | + }; |
| 129 | + |
| 130 | + bashls = { |
| 131 | + command = lib.getExe pkgs.bash-language-server; |
| 132 | + args = [ "start" ]; |
| 133 | + fileExtensions = { |
| 134 | + ".bash" = "shellscript"; |
| 135 | + ".sh" = "shellscript"; |
| 136 | + }; |
| 137 | + }; |
| 138 | + |
| 139 | + clangd = { |
| 140 | + command = lib.getExe' pkgs.clang-tools "clangd"; |
| 141 | + args = [ |
| 142 | + "--background-index" |
| 143 | + "--clang-tidy" |
| 144 | + "--header-insertion=iwyu" |
| 145 | + "--completion-style=detailed" |
| 146 | + "--function-arg-placeholders" |
| 147 | + "--fallback-style=llvm" |
| 148 | + ]; |
| 149 | + fileExtensions = { |
| 150 | + ".c" = "c"; |
| 151 | + ".c++" = "cpp"; |
| 152 | + ".cc" = "cpp"; |
| 153 | + ".cpp" = "cpp"; |
| 154 | + ".cxx" = "cpp"; |
| 155 | + ".h" = "c"; |
| 156 | + ".h++" = "cpp"; |
| 157 | + ".hh" = "cpp"; |
| 158 | + ".hpp" = "cpp"; |
| 159 | + ".hxx" = "cpp"; |
| 160 | + }; |
| 161 | + }; |
| 162 | + |
| 163 | + fish-lsp = { |
| 164 | + command = lib.getExe pkgs.fish-lsp; |
| 165 | + fileExtensions = { |
| 166 | + ".fish" = "fish"; |
| 167 | + }; |
| 168 | + }; |
| 169 | + |
| 170 | + typescript = { |
| 171 | + command = lib.getExe pkgs.typescript-language-server; |
| 172 | + args = [ "--stdio" ]; |
| 173 | + fileExtensions = { |
| 174 | + ".cjs" = "javascript"; |
| 175 | + ".cts" = "typescript"; |
| 176 | + ".js" = "javascript"; |
| 177 | + ".jsx" = "javascriptreact"; |
| 178 | + ".mjs" = "javascript"; |
| 179 | + ".mts" = "typescript"; |
| 180 | + ".ts" = "typescript"; |
| 181 | + ".tsx" = "typescriptreact"; |
| 182 | + }; |
| 183 | + }; |
| 184 | + |
| 185 | + gopls = { |
| 186 | + command = lib.getExe pkgs.gopls; |
| 187 | + fileExtensions = { |
| 188 | + ".go" = "go"; |
| 189 | + ".mod" = "go"; |
| 190 | + ".sum" = "go"; |
| 191 | + }; |
| 192 | + }; |
| 193 | + |
| 194 | + rust-analyzer = { |
| 195 | + command = lib.getExe pkgs.rust-analyzer; |
| 196 | + fileExtensions = { |
| 197 | + ".rs" = "rust"; |
| 198 | + }; |
| 199 | + }; |
| 200 | + |
| 201 | + csharp = { |
| 202 | + command = lib.getExe pkgs.roslyn-ls; |
| 203 | + fileExtensions = { |
| 204 | + ".cs" = "csharp"; |
| 205 | + ".csx" = "csharp"; |
| 206 | + ".cake" = "csharp"; |
| 207 | + }; |
| 208 | + }; |
| 209 | + |
| 210 | + marksman = { |
| 211 | + command = lib.getExe pkgs.marksman; |
| 212 | + fileExtensions = { |
| 213 | + ".md" = "markdown"; |
| 214 | + ".mdx" = "mdx"; |
| 215 | + }; |
| 216 | + }; |
| 217 | + |
| 218 | + yamlls = { |
| 219 | + command = lib.getExe pkgs.yaml-language-server; |
| 220 | + args = [ "--stdio" ]; |
| 221 | + fileExtensions = { |
| 222 | + ".yaml" = "yaml"; |
| 223 | + ".yml" = "yaml"; |
| 224 | + }; |
| 225 | + }; |
| 226 | + |
| 227 | + jsonls = { |
| 228 | + command = lib.getExe' pkgs.vscode-langservers-extracted "vscode-json-language-server"; |
| 229 | + args = [ "--stdio" ]; |
| 230 | + fileExtensions = { |
| 231 | + ".json" = "json"; |
| 232 | + ".jsonc" = "jsonc"; |
| 233 | + }; |
| 234 | + }; |
| 235 | + |
| 236 | + taplo = { |
| 237 | + command = lib.getExe pkgs.taplo; |
| 238 | + args = [ |
| 239 | + "lsp" |
| 240 | + "stdio" |
| 241 | + ]; |
| 242 | + fileExtensions = { |
| 243 | + ".toml" = "toml"; |
| 244 | + }; |
| 245 | + }; |
| 246 | + }; |
80 | 247 | }; |
81 | 248 |
|
82 | 249 | programs.bash.initExtra = posixTokenExports; |
|
0 commit comments