mirror of
https://github.com/aljazceru/opencode.git
synced 2025-12-23 18:54:21 +01:00
fix diagnostics for deleted files
This commit is contained in:
@@ -776,3 +776,10 @@ func (c *Client) GetDiagnosticsForFile(ctx context.Context, filepath string) ([]
|
||||
|
||||
return diagnostics, nil
|
||||
}
|
||||
|
||||
// ClearDiagnosticsForURI removes diagnostics for a specific URI from the cache
|
||||
func (c *Client) ClearDiagnosticsForURI(uri protocol.DocumentUri) {
|
||||
c.diagnosticsMu.Lock()
|
||||
defer c.diagnosticsMu.Unlock()
|
||||
delete(c.diagnostics, uri)
|
||||
}
|
||||
|
||||
@@ -643,7 +643,9 @@ func (w *WorkspaceWatcher) debounceHandleFileEvent(ctx context.Context, uri stri
|
||||
func (w *WorkspaceWatcher) handleFileEvent(ctx context.Context, uri string, changeType protocol.FileChangeType) {
|
||||
// If the file is open and it's a change event, use didChange notification
|
||||
filePath := uri[7:] // Remove "file://" prefix
|
||||
if changeType == protocol.FileChangeType(protocol.Changed) && w.client.IsFileOpen(filePath) {
|
||||
if changeType == protocol.FileChangeType(protocol.Deleted) {
|
||||
w.client.ClearDiagnosticsForURI(protocol.DocumentUri(uri))
|
||||
} else if changeType == protocol.FileChangeType(protocol.Changed) && w.client.IsFileOpen(filePath) {
|
||||
err := w.client.NotifyChange(ctx, filePath)
|
||||
if err != nil {
|
||||
logging.Error("Error notifying change", "error", err)
|
||||
|
||||
Reference in New Issue
Block a user