diff --git a/bun.lock b/bun.lock index 9ae3f6c042..57fb6eb889 100644 --- a/bun.lock +++ b/bun.lock @@ -8,6 +8,7 @@ "@aws-sdk/client-s3": "3.933.0", "@opencode-ai/script": "workspace:*", "@opencode-ai/sdk": "workspace:*", + "typescript": "catalog:", }, "devDependencies": { "@tsconfig/bun": "catalog:", diff --git a/package.json b/package.json index 6de81dc24a..e85f08e4ef 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,8 @@ "dependencies": { "@aws-sdk/client-s3": "3.933.0", "@opencode-ai/script": "workspace:*", - "@opencode-ai/sdk": "workspace:*" + "@opencode-ai/sdk": "workspace:*", + "typescript": "catalog:" }, "repository": { "type": "git", diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts index af96a02d81..0bc229e977 100644 --- a/packages/opencode/src/lsp/server.ts +++ b/packages/opencode/src/lsp/server.ts @@ -82,10 +82,14 @@ export namespace LSPServer { export const Typescript: Info = { id: "typescript", - root: NearestRoot(["tsconfig.json", "package.json", "jsconfig.json", ".git"], ["deno.json", "deno.jsonc"]), + root: NearestRoot( + ["package-lock.json", "bun.lockb", "bun.lock", "pnpm-lock.yaml", "yarn.lock"], + ["deno.json", "deno.jsonc"], + ), extensions: [".ts", ".tsx", ".js", ".jsx", ".mjs", ".cjs", ".mts", ".cts"], async spawn(root) { - const tsserver = await Bun.resolve("typescript/lib/tsserver.js", root).catch(() => {}) + const tsserver = await Bun.resolve("typescript/lib/tsserver.js", Instance.directory).catch(() => {}) + log.info("typescript server", { tsserver }) if (!tsserver) return const proc = spawn(BunProc.which(), ["x", "typescript-language-server", "--stdio"], { cwd: root,