diff --git a/pkgs/by-name/ty/typescript-language-server/default-fallbackTsserverPath.diff b/pkgs/by-name/ty/typescript-language-server/default-fallbackTsserverPath.diff new file mode 100644 index 000000000000..47339e5c69c6 --- /dev/null +++ b/pkgs/by-name/ty/typescript-language-server/default-fallbackTsserverPath.diff @@ -0,0 +1,15 @@ +diff --git a/src/lsp-server.ts b/src/lsp-server.ts +index ef5907d..9494430 100644 +--- a/src/lsp-server.ts ++++ b/src/lsp-server.ts +@@ -323,6 +323,10 @@ export class LspServer { + } + } + ++ if (!fallbackTsserverPath) { ++ fallbackTsserverPath = "@typescript@"; ++ } ++ + const fallbackVersionProvider = new TypeScriptVersionProvider(fallbackTsserverPath, this.logger); + const fallbackSettingVersion = fallbackVersionProvider.getUserSettingVersion(); + if (fallbackSettingVersion) { diff --git a/pkgs/by-name/ty/typescript-language-server/package.nix b/pkgs/by-name/ty/typescript-language-server/package.nix index 053f665ce7eb..8a0c0e8da2d4 100644 --- a/pkgs/by-name/ty/typescript-language-server/package.nix +++ b/pkgs/by-name/ty/typescript-language-server/package.nix @@ -6,8 +6,10 @@ , makeWrapper , nodejs , prefetch-yarn-deps +, substituteAll , yarn , testers +, typescript }: stdenv.mkDerivation (finalAttrs: { @@ -21,6 +23,13 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-FCv0+tA7AuCdGeG6FEiMyRAHcl0WbezhNYLL7xp5FWU="; }; + patches = [ + (substituteAll { + src = ./default-fallbackTsserverPath.diff; + typescript = "${typescript}/lib/node_modules/typescript/lib/tsserver.js"; + }) + ]; + offlineCache = fetchYarnDeps { yarnLock = "${finalAttrs.src}/yarn.lock"; hash = "sha256-nSMhPfbWD93sGIKehBBE/bh4RzHXFtGAjeyG20m/LWQ=";