# Supported languages
Mergiraf currently supports the following programming languages:
* Bash (*.sh, *.bash, PKGBUILD)
* C/C++ (*.c, *.h, *.cc, *.hh, *.cpp, *.hpp, *.cxx, *.hxx, *.c++, *.h++, *.mpp, *.cppm, *.ixx, *.tcc)
* C# (*.cs)
* CMake (*.cmake, CMakeLists.txt)
* Dart (*.dart)
* Elixir (*.ex, *.exs)
* Fortran (*.f, *.for, *.f90)
* Gleam (*.gleam)
* GNU Make (*.mk, Makefile, GNUmakefile)
* Go (*.go)
* Haskell (*.hs)
* Java (*.java)
* Javascript (*.js, *.jsx, *.mjs, *.cjs)
* Kotlin (*.kt, *.kts)
* Lua (*.lua)
* Nix (*.nix)
* OCaml (*.ml, *.mli)
* PHP (*.php, *.phmtl)
* Python (*.py)
* R (*.R, *.r, .Rprofile)
* Ruby (*.rb)
* Rust (*.rs)
* Scala (*.scala, *.sbt)
* Solidity (*.sol)
* Starlark (*.bzl, *.bazel, BUILD, WORKSPACE)
* SystemVerilog (*.sv, *.svh)
* TypeScript (*.ts, *.tsx, *.mts, *.cts)
and the following declarative file formats:
* Devicetree Source (*.dts)
* `go.mod` and `go.sum` files
* HCL (*.hcl, *.tf, *.tfvars)
* HTML (*.html, *.htm)
* INI (*.ini)
* Java properties files (*.properties)
* JSON (*.json)
* `requirements.txt` files, and a small number of variants (requirements-dev.txt, etc)
* TOML (*.toml), with dedicated support for `pyproject.toml` files
* XML (*.xml, *.xhtml)
* YAML (*.yml, *.yaml)
This list can also be obtained with the `mergiraf languages` command.
Is your favorite language missing? Check out the [tutorial to add support for a new language](./adding-a-language.md)!