Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.vorto-editor.dev/llms.txt

Use this file to discover all available pages before exploring further.

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:
rustup component add rust-analyzer
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:
vorto grammar install rust
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 src/main.rs
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:
FeatureHow to access
DiagnosticsShown in the gutter and inline as you type
Hover documentationPress K in Normal mode over a symbol
CompletionsAppear automatically in Insert mode
Code actionsAvailable in Normal mode when the cursor is on a diagnostic
Go to definitionNavigate to a symbol’s definition
5

Check LSP status

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

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:
npm install -g @vtsls/language-server
Or use the classic TypeScript language server:
npm install -g typescript-language-server typescript
2

Install the grammar

vorto grammar install typescript
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 src/index.ts
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:
[lsp.rust-analyzer]
args = ["--some-flag"]
[lsp.vtsls]
args = ["--stdio", "--my-flag"]
To restrict TypeScript files to a single server instead of trying both, re-declare the lsp list on the language:
[languages.typescript]
lsp = ["vtsls"]

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.