Open
Description
Background
The language server performs indexing of files, which involves parsing, decoding, running external commands or processing HTTP requests to external server - all of which can take time. Currently these time-consuming operations run on the background and don't "block" the user, but until indexing is finished the user may experience inaccurate or incomplete IntelliSense data.
It is currently very difficult/impossible for the user to tell when the indexing has finished.
Indexing happens on the following occasions:
initialize
textDocument/didOpen
textDocument/didChange
textDocument/didChangeWatchedFiles
workspace/didChangeWorkspaceFolders
Proposal
- Introduce synchronisation primitives as per Measure performance of indexer(s) #1056
- Report progress on walking and job completion
-
initialize
-
textDocument/didChangeWatchedFiles
-
workspace/didChangeWorkspaceFolders
-
Implementation Notes
The LSP allows the server to register progress via window/workDoneProgress/*
and $/progress
.