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 | Code Navigation Tags | 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 | ✓ | ||||
jjconfig | ✓ | ✓ | ✓ | taplo , tombi | |
jjdescription | ✓ | ||||
jjrevset | ✓ | ||||
jjtemplate | ✓ | ||||
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 |