Supported languages
Tyrn understands a core set of languages out of the box, and you can add more from the Extensions view. Support means syntax highlighting, outlines, and in most cases a language server for completions, diagnostics and go to definition.
Built in
These work without installing anything. Where a language server is needed, Tyrn downloads it the first time you open a matching file. Servers written in JavaScript use Node. Tyrn uses the node on your PATH if it is recent enough, and otherwise downloads its own. See node in Configuring languages.
| Language | Language server |
|---|---|
| Bash | bash-language-server |
| C | clangd |
| C++ | clangd |
| CSS | vscode-css-language-server |
| Diff, Env, Regex, JSDoc, Git Commit | None |
Go (including go.mod and go.work) |
gopls |
| JSON and JSONC | JSON language server |
| JavaScript, TypeScript, TSX | vtsls. See TypeScript. |
| Markdown | None |
| Python | basedpyright and ruff |
| Rust | rust-analyzer |
| YAML | yaml-language-server |
Tailwind CSS support is built in as well. It adds a language server for class names in the languages that use it. Emmet is available as an extension.
Install a language extension
Language extensions add syntax, language servers, debug adapters and snippets for more languages. HTML support is installed for you on first launch.
- Open the Extensions view with
cmd-shift-x, or runtyrn: extensionsfrom the command palette. - Search by name, for example
ruby, or filter by category such as Languages. The view can show All, Installed or Not Installed extensions. - Click Install.
Open a file of that language and Tyrn uses the extension. If it doesn’t pick the right language, choose one from the language button in the status bar, or press cmd-k m.
Tyrn suggests an extension when you open a file type it doesn’t know. Turn the suggestions off with "suggest_extensions": false.
Install automatically
List extensions to install on startup with auto_install_extensions. Set an entry to false to opt out of an automatic one.
{ "auto_install_extensions": { "html": true, "toml": true }}What extensions can do
Extensions can run programs and download files, which language servers need. The list of allowed capabilities is granted_extension_capabilities. Narrow it if you want to restrict extensions. Install only extensions you trust.
Develop an extension locally
Install Dev Extension in the Extensions view installs an extension from a folder on your Mac.
Related
- Configuring languages
- Completions
- Themes and Icon themes also come from extensions