Zero-setup provisioning
The node scans the workspace for source files and provisions a language server for each language it finds. There is nothing to declare and nothing to install:- Servers are acquired automatically. Each language’s server is downloaded through the same machinery the build system uses — package ecosystems, release archives, toolchains — so a clean machine and a freshly cloned branch both work out of the box.
- Project configuration is generated, not hand-written. Before a server starts, the node generates the project model that server expects (for example, a TypeScript configuration with dependency paths resolved, or a compilation database for C/C++) from what the build system already knows. A cold workspace gets correct configs on the first server start.
- Languages onboard in real time. Add the first Python file to a TypeScript workspace and the node picks it up and starts a Python language server — no restart required.
- Idle servers shut down. A server with no recent activity is stopped automatically and restarts on demand, so a large multi-language workspace doesn’t hold every runtime warm forever.
Supported languages
A Deno provider also exists as an opt-in alternative for Deno projects; it is
never enabled automatically.
Making dependencies visible with rbs sync
Language servers can only resolve third-party imports that have been
downloaded. If you open a branch whose dependencies haven’t been resolved yet,
sync them:
Building a target resolves its dependencies too —
rbs sync is just the way
to get editor intelligence for code you haven’t built yet.