Skip to main content
Vorto acts as an LSP client: it spawns language server processes automatically when you open a file of a supported type and the server binary is present on your PATH. All you need to do is install the server once, install the tree-sitter grammar, and open a file — Vorto handles the rest.

Rust (rust-analyzer)

Rust is a good reference case because the toolchain provides its own LSP server.
1

Install rust-analyzer

Add the component through rustup:
Alternatively, download a pre-built binary from the rust-analyzer releases page and place it somewhere on your PATH.
2

Install the Rust tree-sitter grammar

Syntax highlighting and smart indentation require the compiled grammar:
A C compiler is required to build grammars. Run vorto grammar list to check whether the grammar is already installed.
3

Open a Rust file

Open any .rs file inside a Cargo workspace:
Vorto detects Cargo.toml (or rust-project.json) as the workspace root marker and starts rust-analyzer automatically. LSP servers are started lazily — the server process spawns the first time you open a file of the right type.
4

Use LSP features

Once the server is running, the following features become available:
5

Check LSP status

Run the :lsp command from Command mode to see which servers are connected and their current state:

JavaScript and TypeScript (vtsls / typescript-language-server)

Vorto’s built-in configuration lists both vtsls and typescript-language-server for TypeScript and JavaScript files. Whichever binary is on your PATH will start; the other is silently skipped.
1

Install a TypeScript language server

Install vtsls globally via npm:
Or use the classic TypeScript language server:
2

Install the grammar

3

Open a file in a project with root markers

The TypeScript servers use package.json, tsconfig.json, or jsconfig.json as root markers. Open a file from inside such a project:
Vorto detects the root marker and starts the server automatically.

Override LSP arguments

If you need to pass custom flags to a built-in server, add a [lsp.<server-name>] block to your config.toml. Only the fields you set are changed — the rest of the built-in definition stays in place:
To restrict TypeScript files to a single server instead of trying both, re-declare the lsp list on the language:

Troubleshooting

The server does not start. Confirm the server binary is on your PATH by running it directly in a terminal (e.g., rust-analyzer --version). Also verify that the project contains the expected root marker file (Cargo.toml, package.json, etc.) — without a root marker the server may not start. :lsp shows no connected servers. LSP servers start lazily when you open a file of the matching type. Make sure you have actually opened a file, not just launched Vorto to a directory. For more troubleshooting steps, see the Troubleshooting guide.