summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/lsp/index.ts21
1 files changed, 15 insertions, 6 deletions
diff --git a/packages/opencode/src/lsp/index.ts b/packages/opencode/src/lsp/index.ts
index 2f460f8ef..bc83c8f7e 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,