Language Support
The following languages and Language Servers are supported. To use Language Server features, you must first configure the appropriate Language Server.
You can check the language support in your installed helix version with hx --health.
Also see the Language Configuration docs and the Adding Languages guide for more language configuration information.
| Language | Syntax Highlighting | Treesitter Textobjects | Auto Indent | Default language servers |
|---|---|---|---|---|
| ada | ✓ | ✓ | ada_language_server | |
| adl | ✓ | ✓ | ✓ | |
| agda | ✓ | |||
| alloy | ✓ | |||
| amber | ✓ | amber-lsp | ||
| astro | ✓ | astro-ls | ||
| awk | ✓ | ✓ | awk-language-server | |
| bash | ✓ | ✓ | ✓ | bash-language-server |
| bass | ✓ | bass | ||
| beancount | ✓ | beancount-language-server | ||
| bibtex | ✓ | texlab | ||
| bicep | ✓ | bicep-langserver | ||
| bitbake | ✓ | bitbake-language-server | ||
| blade | ✓ | |||
| blueprint | ✓ | blueprint-compiler | ||
| c | ✓ | ✓ | ✓ | clangd |
| c-sharp | ✓ | ✓ | OmniSharp | |
| cabal | haskell-language-server-wrapper | |||
| caddyfile | ✓ | ✓ | ✓ | |
| cairo | ✓ | ✓ | ✓ | cairo-language-server |
| capnp | ✓ | ✓ | ||
| cel | ✓ | |||
| circom | ✓ | circom-lsp | ||
| clarity | ✓ | clarinet | ||
| clojure | ✓ | clojure-lsp | ||
| cmake | ✓ | ✓ | ✓ | neocmakelsp, cmake-language-server |
| codeql | ✓ | ✓ | codeql | |
| comment | ✓ | |||
| common-lisp | ✓ | ✓ | cl-lsp | |
| cpon | ✓ | ✓ | ||
| cpp | ✓ | ✓ | ✓ | clangd |
| crystal | ✓ | ✓ | ✓ | crystalline, ameba-ls |
| css | ✓ | ✓ | vscode-css-language-server | |
| csv | ✓ | |||
| cue | ✓ | cuelsp | ||
| cylc | ✓ | ✓ | ✓ | |
| d | ✓ | ✓ | ✓ | serve-d |
| dart | ✓ | ✓ | ✓ | dart |
| dbml | ✓ | |||
| debian | ✓ | |||
| devicetree | ✓ | dts-lsp | ||
| dhall | ✓ | ✓ | dhall-lsp-server | |
| diff | ✓ | |||
| djot | ✓ | |||
| docker-compose | ✓ | ✓ | ✓ | docker-compose-langserver, yaml-language-server |
| dockerfile | ✓ | ✓ | docker-langserver | |
| dot | ✓ | dot-language-server | ||
| dtd | ✓ | |||
| dune | ✓ | |||
| dunstrc | ✓ | |||
| earthfile | ✓ | ✓ | ✓ | earthlyls |
| edoc | ✓ | |||
| eex | ✓ | |||
| ejs | ✓ | |||
| elisp | ✓ | |||
| elixir | ✓ | ✓ | ✓ | elixir-ls |
| elm | ✓ | ✓ | elm-language-server | |
| elvish | ✓ | elvish | ||
| env | ✓ | ✓ | ||
| erb | ✓ | |||
| erlang | ✓ | ✓ | erlang_ls, elp | |
| esdl | ✓ | |||
| fennel | ✓ | fennel-ls | ||
| fga | ✓ | ✓ | ✓ | |
| fidl | ✓ | |||
| fish | ✓ | ✓ | ✓ | fish-lsp |
| forth | ✓ | forth-lsp | ||
| fortran | ✓ | ✓ | fortls | |
| fsharp | ✓ | fsautocomplete | ||
| gas | ✓ | ✓ | asm-lsp | |
| gdscript | ✓ | ✓ | ✓ | |
| gemini | ✓ | |||
| gherkin | ✓ | |||
| ghostty | ✓ | |||
| git-attributes | ✓ | |||
| git-commit | ✓ | ✓ | ||
| git-config | ✓ | ✓ | ||
| git-ignore | ✓ | |||
| git-notes | ✓ | |||
| git-rebase | ✓ | |||
| gjs | ✓ | ✓ | ✓ | typescript-language-server, vscode-eslint-language-server, ember-language-server |
| gleam | ✓ | ✓ | gleam | |
| glimmer | ✓ | ember-language-server | ||
| glsl | ✓ | ✓ | ✓ | glsl_analyzer |
| gn | ✓ | |||
| go | ✓ | ✓ | ✓ | gopls, golangci-lint-langserver |
| godot-resource | ✓ | ✓ | ||
| gomod | ✓ | gopls | ||
| gotmpl | ✓ | gopls | ||
| gowork | ✓ | gopls | ||
| gpr | ✓ | ada_language_server | ||
| graphql | ✓ | ✓ | graphql-lsp | |
| gren | ✓ | ✓ | ||
| groovy | ✓ | |||
| gts | ✓ | ✓ | ✓ | typescript-language-server, vscode-eslint-language-server, ember-language-server |
| hare | ✓ | |||
| haskell | ✓ | ✓ | haskell-language-server-wrapper | |
| haskell-persistent | ✓ | |||
| hcl | ✓ | ✓ | ✓ | terraform-ls |
| heex | ✓ | ✓ | elixir-ls | |
| helm | ✓ | helm_ls | ||
| hocon | ✓ | ✓ | ✓ | |
| hoon | ✓ | |||
| hosts | ✓ | |||
| html | ✓ | vscode-html-language-server, superhtml | ||
| htmldjango | ✓ | djlsp, vscode-html-language-server, superhtml | ||
| hurl | ✓ | ✓ | ✓ | |
| hyprlang | ✓ | ✓ | hyprls | |
| idris | idris2-lsp | |||
| iex | ✓ | |||
| ini | ✓ | |||
| ink | ✓ | |||
| inko | ✓ | ✓ | ✓ | |
| janet | ✓ | |||
| java | ✓ | ✓ | ✓ | jdtls |
| javascript | ✓ | ✓ | ✓ | typescript-language-server |
| jinja | ✓ | |||
| jjdescription | ✓ | |||
| jq | ✓ | ✓ | jq-lsp | |
| jsdoc | ✓ | |||
| json | ✓ | ✓ | ✓ | vscode-json-language-server |
| json-ld | ✓ | ✓ | ✓ | vscode-json-language-server |
| json5 | ✓ | |||
| jsonc | ✓ | ✓ | vscode-json-language-server | |
| jsonnet | ✓ | jsonnet-language-server | ||
| jsx | ✓ | ✓ | ✓ | typescript-language-server |
| julia | ✓ | ✓ | ✓ | julia |
| just | ✓ | ✓ | ✓ | just-lsp |
| kdl | ✓ | ✓ | ✓ | |
| koka | ✓ | ✓ | koka | |
| kotlin | ✓ | ✓ | ✓ | kotlin-language-server |
| koto | ✓ | ✓ | ✓ | koto-ls |
| latex | ✓ | ✓ | texlab | |
| ld | ✓ | ✓ | ||
| ldif | ✓ | |||
| lean | ✓ | lean | ||
| ledger | ✓ | |||
| llvm | ✓ | ✓ | ✓ | |
| llvm-mir | ✓ | ✓ | ✓ | |
| llvm-mir-yaml | ✓ | ✓ | ||
| log | ✓ | |||
| lpf | ✓ | |||
| lua | ✓ | ✓ | ✓ | lua-language-server |
| luau | ✓ | ✓ | ✓ | luau-lsp |
| ✓ | ✓ | |||
| make | ✓ | ✓ | ||
| markdoc | ✓ | markdoc-ls | ||
| markdown | ✓ | marksman, markdown-oxide | ||
| markdown-rustdoc | ✓ | |||
| markdown.inline | ✓ | |||
| matlab | ✓ | ✓ | ✓ | |
| mermaid | ✓ | |||
| meson | ✓ | ✓ | mesonlsp | |
| mint | mint | |||
| mojo | ✓ | ✓ | ✓ | pixi |
| move | ✓ | |||
| msbuild | ✓ | ✓ | ||
| nasm | ✓ | ✓ | asm-lsp | |
| nestedtext | ✓ | ✓ | ✓ | |
| nginx | ✓ | |||
| nickel | ✓ | ✓ | nls | |
| nim | ✓ | ✓ | ✓ | nimlangserver |
| nix | ✓ | ✓ | ✓ | nil, nixd |
| nu | ✓ | nu | ||
| nunjucks | ✓ | |||
| ocaml | ✓ | ✓ | ocamllsp | |
| ocaml-interface | ✓ | ocamllsp | ||
| odin | ✓ | ✓ | ✓ | ols |
| ohm | ✓ | ✓ | ✓ | |
| opencl | ✓ | ✓ | ✓ | clangd |
| openscad | ✓ | openscad-lsp | ||
| org | ✓ | |||
| pascal | ✓ | ✓ | pasls | |
| passwd | ✓ | |||
| pem | ✓ | |||
| perl | ✓ | ✓ | ✓ | perlnavigator |
| pest | ✓ | ✓ | ✓ | pest-language-server |
| php | ✓ | ✓ | ✓ | intelephense |
| php-only | ✓ | |||
| pkgbuild | ✓ | ✓ | ✓ | termux-language-server, bash-language-server |
| pkl | ✓ | ✓ | pkl-lsp | |
| po | ✓ | ✓ | ||
| pod | ✓ | |||
| ponylang | ✓ | ✓ | ✓ | |
| powershell | ✓ | |||
| prisma | ✓ | ✓ | prisma-language-server | |
| prolog | ✓ | ✓ | swipl | |
| properties | ✓ | ✓ | ||
| protobuf | ✓ | ✓ | ✓ | buf, pb, protols |
| prql | ✓ | |||
| pug | ✓ | |||
| purescript | ✓ | ✓ | purescript-language-server | |
| python | ✓ | ✓ | ✓ | ty, ruff, jedi-language-server, pylsp |
| qml | ✓ | ✓ | ✓ | qmlls |
| quarto | ✓ | ✓ | ||
| quint | ✓ | quint-language-server | ||
| r | ✓ | R | ||
| racket | ✓ | ✓ | racket | |
| regex | ✓ | |||
| rego | ✓ | regols | ||
| rescript | ✓ | ✓ | rescript-language-server | |
| rmarkdown | ✓ | ✓ | R | |
| robot | ✓ | robotframework_ls | ||
| ron | ✓ | ✓ | ||
| rst | ✓ | |||
| ruby | ✓ | ✓ | ✓ | ruby-lsp, solargraph |
| rust | ✓ | ✓ | ✓ | rust-analyzer |
| rust-format-args | ✓ | |||
| rust-format-args-macro | ✓ | ✓ | ✓ | |
| sage | ✓ | ✓ | ||
| scala | ✓ | ✓ | ✓ | metals |
| scheme | ✓ | ✓ | ||
| scss | ✓ | vscode-css-language-server | ||
| slang | ✓ | ✓ | ✓ | slangd |
| slint | ✓ | ✓ | ✓ | slint-lsp |
| smali | ✓ | ✓ | ||
| smithy | ✓ | cs | ||
| sml | ✓ | |||
| snakemake | ✓ | ✓ | pylsp | |
| solidity | ✓ | ✓ | solc | |
| sourcepawn | ✓ | ✓ | sourcepawn-studio | |
| spade | ✓ | ✓ | spade-language-server | |
| spicedb | ✓ | |||
| sql | ✓ | ✓ | ||
| sshclientconfig | ✓ | |||
| starlark | ✓ | ✓ | ✓ | starpls |
| strace | ✓ | |||
| supercollider | ✓ | |||
| svelte | ✓ | ✓ | svelteserver | |
| sway | ✓ | ✓ | ✓ | forc |
| swift | ✓ | ✓ | sourcekit-lsp | |
| systemd | ✓ | systemd-lsp | ||
| t32 | ✓ | |||
| tablegen | ✓ | ✓ | ✓ | |
| tact | ✓ | ✓ | ✓ | |
| task | ✓ | |||
| tcl | ✓ | ✓ | ||
| teal | ✓ | teal-language-server | ||
| templ | ✓ | templ | ||
| tera | ✓ | |||
| textproto | ✓ | ✓ | ✓ | |
| tfvars | ✓ | ✓ | terraform-ls | |
| thrift | ✓ | |||
| tlaplus | ✓ | |||
| todotxt | ✓ | |||
| toml | ✓ | ✓ | taplo, tombi | |
| tsq | ✓ | ts_query_ls | ||
| tsx | ✓ | ✓ | ✓ | typescript-language-server |
| twig | ✓ | |||
| typescript | ✓ | ✓ | ✓ | typescript-language-server |
| typespec | ✓ | ✓ | ✓ | tsp-server |
| typst | ✓ | tinymist | ||
| ungrammar | ✓ | |||
| unison | ✓ | ✓ | ✓ | |
| uxntal | ✓ | |||
| v | ✓ | ✓ | ✓ | v-analyzer |
| vala | ✓ | ✓ | vala-language-server | |
| vento | ✓ | |||
| verilog | ✓ | ✓ | svlangserver | |
| vhdl | ✓ | vhdl_ls | ||
| vhs | ✓ | |||
| vue | ✓ | vue-language-server | ||
| wast | ✓ | |||
| wat | ✓ | wat_server | ||
| webc | ✓ | |||
| werk | ✓ | |||
| wesl | ✓ | ✓ | ||
| wgsl | ✓ | wgsl-analyzer | ||
| wit | ✓ | ✓ | ||
| wren | ✓ | ✓ | ✓ | |
| xit | ✓ | |||
| xml | ✓ | ✓ | ||
| xtc | ✓ | |||
| yaml | ✓ | ✓ | ✓ | yaml-language-server, ansible-language-server |
| yara | ✓ | yls | ||
| yuck | ✓ | |||
| zig | ✓ | ✓ | ✓ | zls |