This commit is contained in:
2026-08-12 11:47:07 +02:00
parent 710c36a126
commit 9aa6d64771
+29 -1
View File
@@ -16,6 +16,11 @@
finalAttrs: previousAttrs: { finalAttrs: previousAttrs: {
version = "0.18.3"; version = "0.18.3";
pnpmWorkspaces = [
"svelte-language-server..."
"typescript-svelte-plugin..."
];
src = pkgs.fetchFromGitHub { src = pkgs.fetchFromGitHub {
owner = "sveltejs"; owner = "sveltejs";
repo = "language-tools"; repo = "language-tools";
@@ -35,6 +40,23 @@
hash = "sha256-fY3hrCkr/soJk1gp39/jec8lT2ZJI27xRBCZi006oWA="; hash = "sha256-fY3hrCkr/soJk1gp39/jec8lT2ZJI27xRBCZi006oWA=";
}; };
buildPhase = builtins.replaceStrings
[ "pnpm run --filter=svelte-language-server... build" ]
[ ''
pnpm run --filter=svelte-language-server... build
pnpm --filter=typescript-svelte-plugin exec tsc \
-p ./ \
--pretty false \
--types node \
--typeRoots ../../node_modules/.pnpm/node_modules/@types
'' ]
previousAttrs.buildPhase;
installPhase = builtins.replaceStrings
[ "pnpm install --filter=svelte-language-server..." ]
[ "pnpm install --filter=svelte-language-server... --filter=typescript-svelte-plugin..." ]
previousAttrs.installPhase;
postInstall = (previousAttrs.postInstall or "") + '' postInstall = (previousAttrs.postInstall or "") + ''
substituteInPlace \ substituteInPlace \
"$out/lib/node_modules/svelte-language-server/packages/language-server/node_modules/@vscode/emmet-helper/lib/cjs/emmetHelper.js" \ "$out/lib/node_modules/svelte-language-server/packages/language-server/node_modules/@vscode/emmet-helper/lib/cjs/emmetHelper.js" \
@@ -44,6 +66,9 @@
ln -s ../packages/typescript-plugin \ ln -s ../packages/typescript-plugin \
"$out/lib/node_modules/svelte-language-server/node_modules/typescript-svelte-plugin" "$out/lib/node_modules/svelte-language-server/node_modules/typescript-svelte-plugin"
ln -s ../packages/language-server/node_modules/svelte \
"$out/lib/node_modules/svelte-language-server/node_modules/svelte"
''; '';
} }
); );
@@ -114,13 +139,16 @@
environment.SNIPPETS_PATH = "${pkgs.vimPlugins.friendly-snippets}/snippets"; environment.SNIPPETS_PATH = "${pkgs.vimPlugins.friendly-snippets}/snippets";
}; };
language-server.vtsls.config.vtsls.tsserver.globalPlugins = [ language-server.vtsls.config.vtsls = {
autoUseWorkspaceTsdk = true;
tsserver.globalPlugins = [
{ {
name = "typescript-svelte-plugin"; name = "typescript-svelte-plugin";
location = "${svelteLanguageServer}/lib/node_modules/svelte-language-server"; location = "${svelteLanguageServer}/lib/node_modules/svelte-language-server";
enableForWorkspaceTypeScriptVersions = true; enableForWorkspaceTypeScriptVersions = true;
} }
]; ];
};
language = [ language = [
{ {