Skip to content

Language service features could provide streaming/progressive results #14181

@Colengms

Description

@Colengms

Feature Request

Recent LSP versions have added support for partial/progressive results. https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#progress

The base protocol offers also support to report progress in a generic fashion. This mechanism can be used to report any kind of progress including work done progress (usually used to report progress in the user interface using a progress bar) and partial result progress to support streaming of results.

Cpptools features like FAR (Rename, call hierarchy) currently provide a way to get partial requests, by clicking on a magnifying glass icon at the bottom of the screen. That is cpptools-specific behavior. That support could potentially be removed if streaming results instead.

While it doesn't look like VS Code supports progressive results via their provider classes (as far as I can tell, from the ones I looked at), their LSP implementation appears to support it.

There are also now 'semantic tokens' and 'diagnostics' LSP requests. We have some known issues with diagnostics merging ( microsoft/vscode#199724 ) that could possibly be addressed by using the diagnostics LSP request with streamed results.

Metadata

Metadata

Assignees

No one assigned

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions