6 ms·
In terms of language support there are 3 big things 1) Syntax highlighting. They followed the textmate bundle highlighting spec which is somewhat a standard th
by nojvek 6y ago
In terms of language support there are 3 big things
1) Syntax highlighting. They followed the textmate bundle highlighting spec which is somewhat a standard that is shared by many editors.
2) Language Server Protocol - a JSON RPC based protocol that different languages can hook into. The interface is something like. “The users cursor is at this position, what code completion items need to be shown? Where are the errors and warnings?”
3) Debug Protocol - similar JSON RPC protocol, but for debugging. For this breakpoint, show the scopes, the stack trace, console logs etc
Almost everything in Vscode communicates in an async manner. The main UI is on an isolated process, and all extensions are on a different process so they don’t stall the UI.
It’s a modularized and RPC based architecture.