Code navigation
Go to definition (Ctrl/Cmd+click or F12) and find references (Shift+F12) through installed language servers, with VS Code-style shortcuts.
Navigation uses installed language servers, enabled by default in Settings. The first definition or references action starts a server; opening a file or checking status does not. Servers stop after 10 idle minutes. Results stay within the browsable project and non-ignored files. Binary files and source files over 4 MiB do not navigate.
Supported servers
| Language | Server |
|---|---|
| Go | gopls |
| JavaScript, JSX, TypeScript, TSX | Native TypeScript 7+ (tsc --lsp --stdio, tsgo), or typescript-language-server |
| Python | pyright-langserver |
| Rust | rust-analyzer |
| C, C++ | clangd |
| Java | jdtls |
| Kotlin | kotlin-lsp / intellij-server |
| Ruby | ruby-lsp |
| PHP | phpactor |
| Lua | lua-language-server |
| Swift | sourcekit-lsp |
| CSS, SCSS | vscode-css-language-server |
Status and install
The bottom-right LSP status shows availability for every text language. Click it for the selected server, errors, runtime prerequisites, documentation, and install commands tailored to the machine running Source Zero. Copy a command, install the server in a terminal, then choose Check again. Some servers require a download or a language toolchain; their status links to the install instructions. Other languages show LSP unavailable.
Project-local tools take precedence where supported. Native TypeScript
discovery checks package metadata so a classic tsc is never launched as an
LSP. The classic TypeScript adapter requires a tsserver-bearing TypeScript
release; its install recipe uses typescript@6. Availability does not imply
every server implements both definitions and references; the status panel
shows negotiated support once running.
Runtime and memory
Language servers are optional external tools with their own runtime and memory requirements. Source Zero remains a self-contained binary for browsing. Disabling Language Servers in Settings prevents this browser from requesting them; another browser can continue using a shared server until it becomes idle.