microsoft / microsoft/vscode-powerquery
[Enhancement] Improve cancellation support in LSP server
@mattmasson is already working on this.
Since Sep 8, 2025.
- Dominant language
- TypeScript
- Stars
- 108
- Forks
- 25
- Avg merge
- 8d 22h
- Merged PRs (30d)
- 2
Description
Feature
- Handlers should return
ResponseErroron cancellation - Ensure all LSP operations are passing through cancellation tokens
- Cancellation occurrence should be traced but should not be considered an error
Example of runSafeAsync implementation -
https://github.com/microsoft/vscode/blob/aa31bfc9fd1746626b3efe86f41b9c172d5f4d23/extensions/css-language-features/server/src/utils/runner.ts#L21
Other implementation examples can be found in the vscode tree:
https://github.com/microsoft/vscode/tree/aa31bfc9fd1746626b3efe86f41b9c172d5f4d23/extensions/css-language-features/server/src
Implementation / Validation Notes
We should ensure that operations such as documentSymbols, diagnostics, and semantic tokens are only run once for a given document. A new request should automatically cancel the previous request. A quick scan of other LSP implementations indicates that this should be handled for us automatically by the LSP framework - we shouldn't need explicit handling / debouncing.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.