-
Notifications
You must be signed in to change notification settings - Fork 12.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use node's ipc for desktop TypeScript server #46417
Comments
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 |
For microsoft#46417 This lets us use Node's built-in ipc for passing messages to/from the typescript server instead of using stdio
VS Code PR: microsoft/vscode#135341 TS PR: #46418 |
This would also fix:
@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 |
* Use node ipc for TS Server For #46417 This lets us use Node's built-in ipc for passing messages to/from the typescript server instead of using stdio * Remove extra parse * Add extra logging when using node IPC * Split out to subclass * Extract common writeMessage method * Baseline accept
* Use node ipc for communicating with TS Server For microsoft/TypeScript#46417 * Don't use ipc for stdio of we're not using ipc * Use node ipc for communicating with TS Server Fixes #85565
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
.send
and.on('message', ...)
Advantages
console.log
in a ts server plugin will not crash the process (this currently happens if any non-json content is written to stdout)The text was updated successfully, but these errors were encountered: