···
13
-
inherit name command args config helix-only;
12
+
inherit name command args config;
# Helper function to create formatter definitions
···
32
+
zed-only-language-servers ? [],
33
+
helix-only-language-servers ? [],
code-actions-on-format ? {},
37
-
inherit name full-name auto-format file-types language-servers formatter helix-formatter code-actions-on-format;
38
+
inherit name full-name auto-format file-types language-servers zed-only-language-servers helix-only-language-servers formatter helix-formatter code-actions-on-format;
options.mySnippets.editor = lib.mkOption {
···
echo = "${pkgs.uutils-coreutils-noprefix}/bin/echo";
bun = lib.getExe pkgs.bun;
twls = lib.getExe pkgs.tailwindcss-language-server;
63
+
printf = "${pkgs.uutils-coreutils-noprefix}/bin/printf";
pkgs.writeScript "tailwindcss-language-server-bun" ''
#!${lib.getExe pkgs.bash} -e
if ! ${fd} -H -I -E "node_modules" "package\\.json$" . | \
${xargs} ${grep} -q '"tailwindcss"'; then
68
-
${echo} "No tailwindcss found in project; skipping tailwindcss-language-server." >&2
69
-
exec tail -f /dev/null
70
+
${echo} "No tailwindcss found in project; faking clean LSP exit." >&2
72
+
# Send a fake LSP shutdown + exit sequence to stdout.
73
+
${printf} 'Content-Length: 47\r\n\r\n{"jsonrpc":"2.0","id":1,"method":"shutdown"}'
74
+
${printf} 'Content-Length: 41\r\n\r\n{"jsonrpc":"2.0","method":"exit"}'
76
+
# Exit with success so the client treats this as a normal termination.
config = {provideFormatter = false;};
vscode-html-language-server = mkLspServer "vscode-html-language-server" {
···
args = ["${pkgs.vscode-json-languageserver}/lib/node_modules/vscode-json-languageserver/bin/vscode-json-languageserver" "--stdio"];
99
-
typescript-language-server = mkLspServer "typescript-language-server" {
106
+
vtsls = mkLspServer "vtsls" {
command = lib.getExe pkgs.bun;
101
-
args = ["${pkgs.nodePackages.typescript-language-server}/lib/node_modules/typescript-language-server/lib/cli.mjs" "--stdio"];
108
+
args = ["${pkgs.vtsls}/bin/vtsls" "--stdio"];
svelte-language-server = mkLspServer "svelte-language-server" {
···
html = mkLanguage "html" {
231
-
language-servers = ["vscode-html-language-server" "superhtml" "biome"];
238
+
language-servers = ["vscode-html-language-server" "biome"];
239
+
zed-only-language-servers = ["!eslint" "..."];
240
+
helix-only-language-servers = ["tailwindcss-language-server"];
helix-formatter = "biomeHtml";
code-actions-on-format = {
···
language-servers = ["css-language-server" "biome"];
252
+
zed-only-language-servers = ["..."];
253
+
helix-only-language-servers = ["tailwindcss-language-server"];
code-actions-on-format = {
"source.fixAll.biome" = true;
···
javascript = mkLanguage "javascript" {
full-name = "JavaScript";
252
-
language-servers = ["typescript-language-server" "biome"];
263
+
language-servers = ["vtsls" "biome"];
264
+
zed-only-language-servers = ["!eslint" "!typescript-language-server" "..."];
265
+
helix-only-language-servers = ["tailwindcss-language-server"];
code-actions-on-format = {
"source.fixAll.biome" = true;
···
typescript = mkLanguage "typescript" {
full-name = "TypeScript";
262
-
language-servers = ["typescript-language-server" "biome"];
275
+
language-servers = ["vtsls" "biome"];
276
+
zed-only-language-servers = ["!eslint" "!typescript-language-server" "..."];
277
+
helix-only-language-servers = ["tailwindcss-language-server"];
code-actions-on-format = {
"source.fixAll.biome" = true;
···
272
-
language-servers = ["typescript-language-server" "biome"];
287
+
language-servers = ["vtsls" "biome"];
288
+
zed-only-language-servers = ["!eslint" "!typescript-language-server" "..."];
289
+
helix-only-language-servers = ["tailwindcss-language-server"];
code-actions-on-format = {
"source.fixAll.biome" = true;
···
282
-
language-servers = ["typescript-language-server" "biome"];
299
+
language-servers = ["vtsls" "biome"];
300
+
zed-only-language-servers = ["!eslint" "!typescript-language-server" "..."];
301
+
helix-only-language-servers = ["tailwindcss-language-server"];
code-actions-on-format = {
"source.fixAll.biome" = true;
···
svelte = mkLanguage "svelte" {
292
-
language-servers = ["svelte-language-server" "typescript-language-server" "biome"];
311
+
language-servers = ["svelte-language-server" "vtsls" "biome"];
312
+
zed-only-language-servers = ["!eslint" "!typescript-language-server" "..."];
313
+
helix-only-language-servers = ["tailwindcss-language-server"];
code-actions-on-format = {
"source.fixAll.biome" = true;
···
language-servers = ["vue-language-server" "biome"];
324
+
zed-only-language-servers = ["!eslint" "!typescript-language-server" "..."];
325
+
helix-only-language-servers = ["tailwindcss-language-server"];
code-actions-on-format = {
"source.fixAll.biome" = true;
···
bash = mkLanguage "bash" {
330
-
full-name = "Bash";
353
+
full-name = "Shell Script";
file-types = ["sh" "bash" "dash" "ksh" "mksh"];
language-servers = ["bash-language-server"];