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.

LanguageSyntax HighlightingTreesitter TextobjectsAuto IndentDefault LSP
adaada_language_server, ada_language_server
adl
agda
astro
awkawk-language-server
bashbash-language-server
bassbass
beancount
bibtextexlab
bicepbicep-langserver
bitbakebitbake-language-server
blade
blueprintblueprint-compiler
cclangd
c-sharpOmniSharp
cabalhaskell-language-server-wrapper
cairocairo-language-server
capnp
cel
clojureclojure-lsp
cmakecmake-language-server
comment
common-lispcl-lsp
cpon
cppclangd
crystalcrystalline
cssvscode-css-language-server
cuecuelsp
dserve-d
dartdart
dbml
devicetree
dhalldhall-lsp-server
diff
docker-composedocker-compose-langserver, yaml-language-server
dockerfiledocker-langserver
dotdot-language-server
dtd
earthfileearthlyls
edoc
eex
ejs
elixirelixir-ls
elmelm-language-server
elvishelvish
env
erb
erlangerlang_ls
esdl
fidl
fish
forthforth-lsp
fortranfortls
fsharpfsautocomplete
gas
gdscript
gemini
git-attributes
git-commit
git-config
git-ignore
git-rebase
gleamgleam
glimmerember-language-server
glsl
gn
gogopls, golangci-lint-langserver
godot-resource
gomodgopls
gotmplgopls
goworkgopls
graphqlgraphql-lsp
groovy
hare
haskellhaskell-language-server-wrapper
haskell-persistent
hclterraform-ls
heexelixir-ls
helmhelm_ls
hocon
hoon
hosts
htmlvscode-html-language-server
hurl
hyprlang
idrisidris2-lsp
iex
ini
janet
javajdtls
javascripttypescript-language-server
jinja
jsdoc
jsonvscode-json-language-server
json5
jsoncvscode-json-language-server
jsonnetjsonnet-language-server
jsxtypescript-language-server
juliajulia
just
kdl
kokakoka
kotlinkotlin-language-server
latextexlab
ld
ldif
leanlean
ledger
llvm
llvm-mir
llvm-mir-yaml
log
lpf
lualua-language-server
make
markdocmarkdoc-ls
markdownmarksman, markdown-oxide
markdown.inline
matlab
mermaid
meson
mintmint
move
msbuild
nasm
nickelnls
nimnimlangserver
nixnil
nunu
nunjucks
ocamlocamllsp
ocaml-interfaceocamllsp
odinols
ohm
openclclangd
openscadopenscad-lsp
org
pascalpasls
passwd
pem
perlperlnavigator
phpintelephense
php-only
pkgbuildpkgbuild-language-server, bash-language-server
pkl
po
pod
ponylang
powershell
prismaprisma-language-server
prologswipl
protobufbufls, pb
prql
purescriptpurescript-language-server
pythonpylsp
qmlqmlls
rR
racketracket
regex
regoregols
rescriptrescript-language-server
rmarkdownR
robotrobotframework_ls
ron
rst
rubysolargraph
rustrust-analyzer
sage
scalametals
scheme
scssvscode-css-language-server
slintslint-lsp
smali
smithycs
sml
soliditysolc
spicedb
sql
sshclientconfig
starlark
strace
supercollider
sveltesvelteserver
swayforc
swiftsourcekit-lsp
t32
tablegen
tact
task
tcl
templtempl
tfvarsterraform-ls
todotxt
tomltaplo
tsq
tsxtypescript-language-server
twig
typescripttypescript-language-server
typsttinymist, typst-lsp
ungrammar
unison
uxntal
vv-analyzer
valavala-language-server
verilogsvlangserver
vhdlvhdl_ls
vhs
vuevue-language-server
wast
wat
webc
wgslwgsl_analyzer
wit
wren
xit
xml
xtc
yamlyaml-language-server, ansible-language-server
yuck
zigzls