diff --git a/packages/opencode/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts index 2f460f8e..bc83c8f7 100644 --- a/packages/opencode/src/lsp/index.ts +++ b/packages/opencode/src/lsp/index.ts @@ -126,13 +126,22 @@ export namespace LSP { result.push(match) continue } - log.info("spawning lsp server", { serverID: server.id }) - const handle = await server.spawn(root).catch((err) => { - s.broken.add(root + server.id) - log.error(`Failed to spawn LSP server ${server.id}`, { error: err }) - return undefined - }) + const handle = await server + .spawn(root) + .then((h) => { + if (h === undefined) { + s.broken.add(root + server.id) + } + return h + }) + .catch((err) => { + s.broken.add(root + server.id) + log.error(`Failed to spawn LSP server ${server.id}`, { error: err }) + return undefined + }) if (!handle) continue + log.info("spawned lsp server", { serverID: server.id }) + const client = await LSPClient.create({ serverID: server.id, server: handle,