Supported LSP features
Vorto’s LSP client implements the following capabilities:
Inlay hints are not currently implemented.
How servers are started
Vorto spawns each language server lazily — the first time you open a buffer whose language has a configured server, Vorto starts that server in the background and performs the LSPinitialize handshake. The server process is kept alive for the duration of the editor session and shut down gracefully when Vorto exits. If a language has multiple servers configured (for example, TypeScript has both vtsls and typescript-language-server), Vorto attempts to start each one and silently skips any whose binary is not found on PATH.
Project root detection
When starting a language server, Vorto must tell it where the workspace root is. Vorto walks up the directory tree from the opened file and stops at the first directory that contains one of the server’s configured root markers. If no marker is found, the directory of the opened file is used as the root. The root markers for each built-in server are:Built-in LSP servers
Vorto ships with default configurations for the following language servers. Each entry corresponds to a[lsp.<name>] block that is active without any configuration on your part.
Configuring custom LSP servers
You can override any built-in server’s settings or add entirely new servers in~/.config/vorto/config.toml using [lsp.<name>] blocks.
[languages.<name>]:
If you redeclare
[lsp.<name>] for a built-in server, your values are merged on top of the defaults. You only need to specify the fields you want to change.