aider/aider/website/docs/languages.md
Paul Gauthier 9210e12316 copy
2025-03-31 14:13:54 +13:00

16 KiB

parent nav_order description
More info 200 Aider supports pretty much all popular coding languages.

Supported languages

Aider should work well with most popular coding languages. This is because top LLMs are fluent in most mainstream languages, and familiar with popular libraries, packages and frameworks.

Aider has specific support for linting many languages. By default, aider runs the built in linter any time a file is edited. If it finds syntax errors, aider will offer to fix them for you. This helps catch small code issues and quickly fix them.

Aider also does code analysis to help the LLM navigate larger code bases by producing a repository map. Aider can currently produce repository maps for many popular mainstream languages, listed below.

How to add support for another language

Aider should work quite well for other languages, even those without repo map or linter support. You should really try coding with aider before assuming it needs better support for your language.

That said, if aider already has support for linting your language, then it should be possible to add repo map support. To build a repo map, aider needs the tags.scm file from the given language's tree-sitter grammar. If you can find and share that file in a GitHub issue, then it may be possible to add repo map support.

If aider doesn't support linting, it will be complicated to add linting and repo map support. That is because aider relies on py-tree-sitter-languages to provide pre-packaged versions of tree-sitter parsers for many languages.

Aider needs to be easy for users to install in many environments, and it is probably too complex to add dependencies on additional individual tree-sitter parsers.

Language File extension Repo map Linter
actionscript .as
ada .adb
ada .ads
agda .agda
arduino .ino
asm .asm
asm .s
astro .astro
bash .bash
bash .sh
bash .zsh
beancount .bean
bibtex .bib
bicep .bicep
bitbake .bb
bitbake .bbappend
bitbake .bbclass
c .c
c .h
cairo .cairo
capnp .capnp
chatito .chatito
clarity .clar
clojure .clj
clojure .cljc
clojure .cljs
clojure .edn
cmake .cmake
cmake CMakeLists.txt
commonlisp .cl
commonlisp .lisp
cpon .cpon
cpp .cc
cpp .cpp
cpp .cxx
cpp .h++
cpp .hpp
cpp .hxx
csharp .cs
css .css
csv .csv
cuda .cu
cuda .cuh
d .d
dart .dart
dockerfile Dockerfile
dtd .dtd
elisp .el
elixir .ex
elixir .exs
elm .elm
erlang .erl
erlang .hrl
fennel .fnl
firrtl .fir
fish .fish
fortran .f
fortran .f03
fortran .f08
fortran .f90
fortran .f95
func .fc
gdscript .gd
gitattributes .gitattributes
gitcommit .gitcommit
gitignore .gitignore
gleam .gleam
glsl .frag
glsl .glsl
glsl .vert
gn .gn
gn .gni
go .go
gomod go.mod
gosum go.sum
groovy .groovy
gstlaunch .launch
hack .hack
hare .ha
haskell .hs
haxe .hx
hcl .hcl
hcl .tf
hcl .tfvars
heex .heex
hlsl .hlsl
html .htm
html .html
hyprlang .hypr
ispc .ispc
janet .janet
java .java
javascript .js
javascript .jsx
javascript .mjs
jsdoc .jsdoc
json .json
jsonnet .jsonnet
jsonnet .libsonnet
julia .jl
kconfig Kconfig
kdl .kdl
kotlin .kt
kotlin .kts
latex .cls
latex .sty
latex .tex
linkerscript .ld
llvm .ll
lua .lua
luadoc .luadoc
luap .luap
luau .luau
magik .magik
make .mk
make Makefile
markdown .markdown
markdown .md
matlab .m
matlab .mat
mermaid .mermaid
meson meson.build
ninja .ninja
nix .nix
nqc .nqc
objc .mm
odin .odin
org .org
pascal .pas
pascal .pp
pem .pem
perl .pl
perl .pm
pgn .pgn
php .php
po .po
po .pot
pony .pony
powershell .ps1
powershell .psm1
printf .printf
prisma .prisma
properties .properties
proto .proto
psv .psv
purescript .purs
pymanifest MANIFEST.in
python .py
qmldir qmldir
qmljs .qml
r .R
r .r
racket .rkt
re2c .re2c
readline .inputrc
requirements requirements.txt
ron .ron
rst .rst
ruby .rb
rust .rs
scala .sc
scala .scala
scheme .scm
scheme .ss
scss .scss
smali .smali
smithy .smithy
solidity .sol
sparql .rq
sql .sql
squirrel .nut
starlark .bzl
starlark BUILD
starlark WORKSPACE
svelte .svelte
swift .swift
tablegen .td
tcl .tcl
thrift .thrift
toml .toml
tsv .tsv
twig .twig
typescript .ts
typescript .tsx
typst .typ
udev .rules
ungrammar .ungram
uxntal .tal
verilog .sv
verilog .v
vhdl .vhd
vhdl .vhdl
vim .vim
vim .vimrc
vue .vue
wgsl .wgsl
xcompose .XCompose
xml .svg
xml .xml
xml .xsl
yuck .yuck
zig .zig