Skip to content

Conversation

@LaelLuo
Copy link

@LaelLuo LaelLuo commented Sep 16, 2025

Fix frequent 'not found' in tools on Windows by constructing valid file URIs:

  • Use protocol.URIFromPath for didOpen/didChange/didClose, RootURI, WorkspaceFolders (avoids two-slash + backslash URIs)
  • Convert DocumentUri back to OS paths via DocumentUri.Path() when closing files
  • Update tools (hover, rename_symbol, diagnostics, codelens) to use proper URIs
  • Update watcher to emit proper file URIs

Rationale
Invalid URIs like 'file://C:\path' can be ignored by LSP servers (e.g., typescript-language-server), preventing indexing and causing 'not found' responses. This change normalizes URIs to 'file:///C:/path' and forward slashes, per LSP spec.

Build: go build ./... passes.
Tests: Root go test passes; integration tests depend on external language servers.

- Use protocol.URIFromPath for all file URIs (didOpen/didChange/didClose, RootURI, WorkspaceFolders)
- Convert DocumentUri back to OS path via DocumentUri.Path() when closing files
- Update tools (hover, rename_symbol, diagnostics, codelens) to use proper URIs
- Fix watcher to emit proper file URIs

Rationale: previously URIs like 'file://C:\\path' (with backslashes/two slashes) could be invalid for LSP servers like typescript-language-server, causing requests (e.g. workspace/symbol and opened files) to be ignored, leading to frequent 'not found' results on Windows
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant