diff options
| author | Dax Raad <[email protected]> | 2025-07-08 18:33:12 -0400 |
|---|---|---|
| committer | Dax Raad <[email protected]> | 2025-07-08 18:33:12 -0400 |
| commit | 00ea5082e7773deef522f4aa4550c00b8b027b75 (patch) | |
| tree | c001de1e4d2a9bdbdf93c7634531cea52fef663f /packages | |
| parent | 4a878b88c088ed8b88514b71a32a0207c934292e (diff) | |
| download | opencode-00ea5082e7773deef522f4aa4550c00b8b027b75.tar.gz opencode-00ea5082e7773deef522f4aa4550c00b8b027b75.zip | |
add typescript lsp timeout if it fails to start
Diffstat (limited to 'packages')
| -rw-r--r-- | packages/opencode/src/lsp/index.ts | 5 | ||||
| -rw-r--r-- | packages/opencode/src/lsp/server.ts | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/packages/opencode/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts index 18767958b..f7e33e309 100644 --- a/packages/opencode/src/lsp/index.ts +++ b/packages/opencode/src/lsp/index.ts @@ -53,7 +53,10 @@ export namespace LSP { serverID: server.id, server: handle, root, - }).catch((err) => log.error("", { error: err })) + }).catch((err) => { + handle.process.kill() + log.error("", { error: err }) + }) if (!client) break clients.push(client) } diff --git a/packages/opencode/src/lsp/server.ts b/packages/opencode/src/lsp/server.ts index 09502cb72..e46ce3df4 100644 --- a/packages/opencode/src/lsp/server.ts +++ b/packages/opencode/src/lsp/server.ts @@ -9,6 +9,7 @@ import fs from "fs/promises" import { unique } from "remeda" import { Ripgrep } from "../file/ripgrep" import type { LSPClient } from "./client" +import { withTimeout } from "../util/timeout" export namespace LSPServer { const log = Log.create({ service: "lsp.server" }) @@ -69,7 +70,7 @@ export namespace LSPServer { glob: ["*.ts", "*.tsx", "*.js", "*.jsx", "*.mjs", "*.cjs", "*.mts", "*.cts"], limit: 1, }) - await new Promise<void>(async (resolve) => { + const wait = new Promise<void>(async (resolve) => { const notif = lsp.connection.onNotification("$/progress", (params) => { if (params.value.kind !== "end") return notif.dispose() @@ -77,6 +78,7 @@ export namespace LSPServer { }) await lsp.notify.open({ path: path.join(lsp.root, hint) }) }) + await withTimeout(wait, 5_000) }, } }, |
