summaryrefslogtreecommitdiffhomepage
path: root/internal/lsp/client.go
diff options
context:
space:
mode:
authorKujtim Hoxha <[email protected]>2025-04-16 20:06:23 +0200
committerKujtim Hoxha <[email protected]>2025-04-21 13:42:00 +0200
commitbbfa60c787f2ec459f1689b9a650ddbec9693ed9 (patch)
treef7f2aa31c460c8cc22ec40cc299c386277152241 /internal/lsp/client.go
parent76b4065f17b87a63092acfd98c997bab53700b35 (diff)
downloadopencode-bbfa60c787f2ec459f1689b9a650ddbec9693ed9.tar.gz
opencode-bbfa60c787f2ec459f1689b9a650ddbec9693ed9.zip
reimplement agent,provider and add file history
Diffstat (limited to 'internal/lsp/client.go')
-rw-r--r--internal/lsp/client.go13
1 files changed, 9 insertions, 4 deletions
diff --git a/internal/lsp/client.go b/internal/lsp/client.go
index e2eedc4fc..0f03e7fcb 100644
--- a/internal/lsp/client.go
+++ b/internal/lsp/client.go
@@ -97,7 +97,12 @@ func NewClient(ctx context.Context, command string, args ...string) (*Client, er
}()
// Start message handling loop
- go client.handleMessages()
+ go func() {
+ defer logging.RecoverPanic("LSP-message-handler", func() {
+ logging.ErrorPersist("LSP message handler crashed, LSP functionality may be impaired")
+ })
+ client.handleMessages()
+ }()
return client, nil
}
@@ -374,7 +379,7 @@ func (c *Client) CloseFile(ctx context.Context, filepath string) error {
},
}
- if cnf.Debug {
+ if cnf.DebugLSP {
logging.Debug("Closing file", "file", filepath)
}
if err := c.Notify(ctx, "textDocument/didClose", params); err != nil {
@@ -413,12 +418,12 @@ func (c *Client) CloseAllFiles(ctx context.Context) {
// Then close them all
for _, filePath := range filesToClose {
err := c.CloseFile(ctx, filePath)
- if err != nil && cnf.Debug {
+ if err != nil && cnf.DebugLSP {
logging.Warn("Error closing file", "file", filePath, "error", err)
}
}
- if cnf.Debug {
+ if cnf.DebugLSP {
logging.Debug("Closed all files", "files", filesToClose)
}
}