The Extension automatically starts whenever a *.rc file is opened, it starts a backend
process (see recalc-vscode.serverUri configuration in configuration manifest) and
establishes a communication channel.
Each URI gets an associated Webview which is able to send URI-tagged messages to the
backend, the entry-point for the frontend starts a Spreadsheet UI using the
Univer Sheet API.
Project Organization
The project is a standard NPM project with esbuild.mjs as the build
script. The linter config eslint.config.js is not available
to the eslint Git-Hooks, so it needs to be manually run (npm run lint in a devShell).
package.json: VSCode manifest file in which the extension
(custom editor, commands etc.) are declared.
hs: Source code for TypeScript generation of protocols.
recalc-ts-defs.cabal: This is a separate .cabal,
from recalc.cabal allowing (static) build that don't include
the template-haskell.