Skip to content

Report progress for indexing operations #5

Open
@radeksimko

Description

@radeksimko

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.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions