feat(vscode, language-server, typescript-plugin): communicate with tsserver based on request forwarding #5252
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The named pipes server was introduced in 2.0 with #3908 to allow the LSP server to communicate with the typescript plugin. But since the release of 2.0 it has revealed a lot of problems.
We are switching to a more reliable method:
fs.readFileSync
in extension client to expose tsserver processes fortypescript-language-featrues
.Since the typescript plugin no longer needs to maintain a named pipes server, and the language server no longer maintains a named pipes client, this reduces a lot of complexity and improves reliability.
This introduces a breakthrough change for other IDEs that will need to implement language-server to tsserver request forwarding to get full functionality, and we will investigate the changes other IDEs will need to make before releasing 3.0.
The #5070 implementation of the push-based component info update method has been reverted, and an alternative method will be implemented in the next PR in order not to introduce performance regressions.