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 | Rainbow Brackets | 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 |
cross-config | ✓ | ✓ | ✓ | taplo , tombi | ||
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 | ||||
doxyfile | ✓ | ✓ | ✓ | ✓ | ||
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 | ||
flatbuffers | ✓ | |||||
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 |
go-format-string | ✓ | ✓ | ||||
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 | ||
hdl | ✓ | |||||
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 | |
kconfig | ✓ | ✓ | ||||
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 | |
luap | ✓ | |||||
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 | ✓ | ✓ | ||||
pip-requirements | ✓ | |||||
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 | ||||
robots.txt | ✓ | ✓ | ✓ | |||
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 | ||||
systemverilog | ✓ | |||||
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 | ✓ | |||||
vim | ✓ | |||||
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 |