forked from aylac.top/nixcfg
this repo has no description

use bun for vscode/typescript lsps and prettier

aylac.top c253a447 1ad3056b

verified
Changed files
+83 -44
homes
modules
home
programs
helix
zed-editor
+2 -1
homes/ayla/default.nix
···
ffmpeg-full
love
luajit
-
nodejs
+
#nodejs
+
bun
typescript
# applications
+13 -4
modules/home/programs/helix/default.nix
···
};
vscode-css-languageserver = {
-
command = lib.getExe pkgs.vscode-css-languageserver;
+
command = pkgs.writeScript "vscode-css-languageserver-bun" ''
+
#! ${pkgs.bash}/bin/bash -e
+
exec ${lib.getExe pkgs.bun} ${pkgs.vscode-css-languageserver}/lib/node_modules/vscode-css-languageserver/out/node/cssServerMain.js "$@"
+
'';
args = ["--stdio"];
};
···
};
vscode-json-languageserver = {
-
command = lib.getExe pkgs.vscode-json-languageserver;
+
command = pkgs.writeScript "vscode-json-languageserver-bun" ''
+
#! ${pkgs.bash}/bin/bash -e
+
exec ${lib.getExe pkgs.bun} ${pkgs.vscode-json-languageserver}/lib/node_modules/vscode-json-languageserver/./bin/vscode-json-languageserver "$@"
+
'';
args = ["--stdio"];
};
typescript-language-server = with pkgs.nodePackages; {
-
command = "${typescript-language-server}/bin/typescript-language-server";
-
args = ["--stdio" "--tsserver-path=${typescript}/lib/node_modules/typescript/lib"];
+
command = pkgs.writeScript "typescript-language-server-bun" ''
+
#! ${pkgs.bash}/bin/bash -e
+
exec ${lib.getExe pkgs.bun} ${typescript-language-server}/lib/node_modules/typescript-language-server/lib/cli.mjs "$@"
+
'';
+
args = ["--stdio"];
};
superhtml = {
+68 -39
modules/home/programs/zed-editor/default.nix
···
config,
pkgs,
...
-
}: {
+
}: let
+
bunPrettier = {
+
external = {
+
command = pkgs.writeScript "prettier-bun" ''
+
#! ${pkgs.bash}/bin/bash -e
+
exec ${lib.getExe pkgs.bun} ${pkgs.prettier}/bin/prettier.cjs "$@"
+
'';
+
arguments = ["--stdin-filepath" "{buffer_path}"];
+
};
+
};
+
in {
options.myHome.programs.zed-editor.enable = lib.mkEnableOption "zed editor";
config = lib.mkIf config.myHome.programs.zed-editor.enable {
···
JavaScript = {
format_on_save = "on";
-
formatter = {
-
external = {
-
command = lib.getExe pkgs.prettier;
-
arguments = ["--stdin-filepath" "{buffer_path}"];
-
};
-
};
+
formatter = bunPrettier;
+
language_servers = [
+
"typescript-language-server"
+
"!vtsls"
+
"!eslint"
+
];
};
TypeScript = {
format_on_save = "on";
-
formatter = {
-
external = {
-
command = lib.getExe pkgs.prettier;
-
arguments = ["--stdin-filepath" "{buffer_path}"];
-
};
-
};
+
formatter = bunPrettier;
+
language_servers = [
+
"typescript-language-server"
+
"!vtsls"
+
"!eslint"
+
];
};
TSX = {
format_on_save = "on";
-
formatter = {
-
external = {
-
command = lib.getExe pkgs.prettier;
-
arguments = ["--stdin-filepath" "{buffer_path}"];
-
};
-
};
+
formatter = bunPrettier;
+
language_servers = [
+
"typescript-language-server"
+
"!vtsls"
+
"!eslint"
+
];
+
};
+
JSON = {
+
format_on_save = "on";
+
+
formatter = bunPrettier;
+
};
+
CSS = {
+
format_on_save = "on";
+
+
formatter = bunPrettier;
};
Nix = {
format_on_save = "on";
···
"nixd"
];
};
-
JSON = {
-
format_on_save = "on";
-
-
formatter = {
-
external = {
-
command = lib.getExe pkgs.prettier;
-
arguments = ["--stdin-filepath" "{buffer_path}"];
-
};
+
};
+
lsp = {
+
nixd = {
+
binary.path = lib.getExe pkgs.nixd;
+
settings.formatting.command = [(lib.getExe pkgs.alejandra) "--quiet" "--"];
+
};
+
typescript-language-server = with pkgs.nodePackages; {
+
binary = {
+
path = pkgs.writeScript "typescript-language-server-bun" ''
+
#! ${pkgs.bash}/bin/bash -e
+
exec ${lib.getExe pkgs.bun} ${typescript-language-server}/lib/node_modules/typescript-language-server/lib/cli.mjs "$@"
+
'';
+
arguments = ["--stdio"];
+
};
+
};
+
json-language-server = {
+
binary = {
+
path = pkgs.writeScript "vscode-json-languageserver-bun" ''
+
#! ${pkgs.bash}/bin/bash -e
+
exec ${lib.getExe pkgs.bun} ${pkgs.vscode-json-languageserver}/lib/node_modules/vscode-json-languageserver/./bin/vscode-json-languageserver "$@"
+
'';
+
arguments = ["--stdio"];
};
};
-
CSS = {
-
format_on_save = "on";
-
-
formatter = {
-
external = {
-
command = lib.getExe pkgs.prettier;
-
arguments = ["--stdin-filepath" "{buffer_path}"];
-
};
+
css-language-server = {
+
binary = {
+
path = pkgs.writeScript "vscode-css-languageserver-bun" ''
+
#! ${pkgs.bash}/bin/bash -e
+
exec ${lib.getExe pkgs.bun} ${pkgs.vscode-css-languageserver}/lib/node_modules/vscode-css-languageserver/out/node/cssServerMain.js "$@"
+
'';
+
arguments = ["--stdio"];
};
};
-
};
-
lsp.nixd = {
-
binary.path = lib.getExe pkgs.nixd;
-
settings.formatting.command = [(lib.getExe pkgs.alejandra) "--quiet" "--"];
};
telemetry = {
diagnostics = false;