Browse Source

fix: if lsp fails to spawn it shouldn't inject errors into edit diagnostics (#2145)

Aiden Cline 6 months ago
parent
commit
aa4dba1541
1 changed files with 6 additions and 2 deletions
  1. 6 2
      packages/opencode/src/lsp/index.ts

+ 6 - 2
packages/opencode/src/lsp/index.ts

@@ -126,7 +126,11 @@ export namespace LSP {
         result.push(match)
         continue
       }
-      const handle = await server.spawn(App.info(), root)
+      const handle = await server.spawn(App.info(), root).catch((err) => {
+        s.broken.add(root + server.id)
+        log.error(`Failed to spawn LSP server ${server.id}`, { error: err })
+        return undefined
+      })
       if (!handle) continue
       const client = await LSPClient.create({
         serverID: server.id,
@@ -135,7 +139,7 @@ export namespace LSP {
       }).catch((err) => {
         s.broken.add(root + server.id)
         handle.process.kill()
-        log.error("", { error: err })
+        log.error(`Failed to initialize LSP client ${server.id}`, { error: err })
       })
       if (!client) continue
       s.clients.push(client)