Repository navigation
Use node's ipc for desktop TypeScript server #46417
Copy link
Copy link
Closed
Labels
Domain: APIRelates to the public API for TypeScriptRelates to the public API for TypeScriptDomain: LS: TSServerIssues related to the TSServerIssues related to the TSServerFixedA PR has been merged for this issueA PR has been merged for this issueSuggestionAn idea for TypeScriptAn idea for TypeScript
Milestone
Description
Activity
I have work in progress that makes this change on the VS Code side and on the TS side (although I'll need help finalizing the TS part of this)
Unfortunately we'll likely need to keep support for the exiting rpc mechanism for any older clients that upgrade to use the new TypeScript version
- added 2 commits that reference this issue
on Oct 18, 2021 VS Code PR: microsoft/vscode#135341
TS PR: #46418
- addedIn DiscussionNot yet reached consensusNot yet reached consensusSuggestionAn idea for TypeScriptAn idea for TypeScriptDomain: APIRelates to the public API for TypeScriptRelates to the public API for TypeScriptDomain: LS: TSServerIssues related to the TSServerIssues related to the TSServer
on Oct 18, 2021 This would also fix:
- Investigate compressing TS Server socket communication #43156
- JS/TS protocol buffer hangs onto a lot of memory if on big request or response is used. vscode#85565
Daniel Rosenwasser (@DanielRosenwasser) Let's talk about this for 4.6
Not sure if this matters too much, but I believe switching to ipc would also let us easily transfer some data as binary. The obvious candidate is
encodedSemanticClassifications-full, which currently returns a big array of numbers. This could be a Uint32Array instead- added a commit that references this issue
on Dec 18, 2021 - added a commit that references this issue
on Jan 6, 2022 - addedFixedA PR has been merged for this issueA PR has been merged for this issueand removedIn DiscussionNot yet reached consensusNot yet reached consensus
on Jan 6, 2022 - added a commit that references this issue
on Jan 10, 2022
Metadata
Metadata
Assignees
Labels
Domain: APIRelates to the public API for TypeScriptRelates to the public API for TypeScriptDomain: LS: TSServerIssues related to the TSServerIssues related to the TSServerFixedA PR has been merged for this issueA PR has been merged for this issueSuggestionAn idea for TypeScriptAn idea for TypeScript
On desktop, VS Code currently communicates with the TypeScript server by passing messages over stdio. These messages are in a json rcp style format
We should instead explore using node's built-in ipc support which would let the two processes communicate using
.sendand.on('message', ...)Advantages
console.login a ts server plugin will not crash the process (this currently happens if any non-json content is written to stdout)