Skip to content

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.

  1. Open the Extensions view with cmd-shift-x, or run tyrn: extensions from the command palette.
  2. Search by name, for example ruby, or filter by category such as Languages. The view can show All, Installed or Not Installed extensions.
  3. 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.

settings.json
{
"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.