#

# ALE Supported Languages and Tools

This plugin supports the following languages and tools. All available tools will be run in combination, so they can be complementary.

Legend

Key | Definition
--- | ---
:floppy_disk: | Only checked when saved to disk
:warning: | Disabled by default

- Ada
  - gcc
  - gnatpp :floppy_disk:
- Ansible
  - ansible-lint
- API Blueprint
  - drafter
- AsciiDoc
  - alex :floppy_disk:
  - proselint
  - redpen
  - textlint
  - vale
  - write-good
- ASM
  - gcc
- Awk
  - gawk
- Bash
  - language-server
  - shell -n flag
  - shellcheck
  - shfmt
- Bats
  - shellcheck
- BibTeX
  - bibclean
- Bourne Shell
  - shell -n flag
  - shellcheck
  - shfmt
- C
  - ccls
  - clang
  - clangd
  - clang-format
  - clangtidy :floppy_disk:
  - cppcheck
  - cpplint
  - cquery
  - flawfinder
  - gcc
  - uncrustify
- C#
  - csc :floppy_disk: see:`help ale-cs-csc` for details and configuration
  - mcs see:`help ale-cs-mcs` for details
  - mcsc :floppy_disk: see:`help ale-cs-mcsc` for details and configuration
  - uncrustify
- C++ (filetype cpp)
  - ccls
  - clang
  - clangcheck :floppy_disk:
  - clangd
  - clang-format
  - clangtidy :floppy_disk:
  - clazy :floppy_disk:
  - cppcheck
  - cpplint :floppy_disk:
  - cquery
  - flawfinder
  - gcc
  - uncrustify
- Chef
  - cookstyle
  - foodcritic
- Clojure
  - clj-kondo
  - joker
- CloudFormation
  - cfn-python-lint
- CMake
  - cmake-format
  - cmakelint
- CoffeeScript
  - coffee
  - coffeelint
- Crystal
  - ameba :floppy_disk:
  - crystal :floppy_disk:
- CSS
  - csslint
  - fecs
  - prettier
  - stylelint
- Cucumber
  - cucumber
- CUDA
  - nvcc
- Cypher
  - cypher-lint
- Cython (pyrex filetype)
  - cython
- D
  - dfmt
  - dls
  - dmd
  - uncrustify
- Dafny
  - dafny :floppy_disk:
- Dart
  - dartanalyzer :floppy_disk:
  - dartfmt
  - language_server
- Dockerfile
  - dockerfile_lint
  - hadolint
- Elixir
  - credo
  - dialyxir :floppy_disk:
  - dogma :floppy_disk:
  - elixir-ls :warning:
  - mix :warning: :floppy_disk:
- Elm
  - elm-format
  - elm-ls
  - elm-make
- Erb
  - erb
  - erubi
  - erubis
  - ruumba
- Erlang
  - erlc
  - SyntaxErl
- Fish
  - fish -n flag
- Fortran
  - gcc
  - language_server
- Fountain
  - proselint
- FusionScript
  - fusion-lint
- Git Commit Messages
  - gitlint
- GLSL
  - glslang
  - glslls
- Go
  - bingo :warning:
  - go build :warning: :floppy_disk:
  - gofmt
  - goimports :warning:
  - golangci-lint :warning: :floppy_disk:
  - golangserver :warning:
  - golint
  - gometalinter :warning: :floppy_disk:
  - go mod :warning: :floppy_disk:
  - gopls :warning:
  - gosimple :warning: :floppy_disk:
  - gotype :warning: :floppy_disk:
  - go vet :floppy_disk:
  - revive :warning: :floppy_disk:
  - staticcheck :warning: :floppy_disk:
- GraphQL
  - eslint
  - gqlint
  - prettier
- Hack
  - hack
  - hackfmt
  - hhast :warning: (see `:help ale-integration-hack`)
- Haml
  - haml-lint
- Handlebars
  - ember-template-lint
- Haskell
  - brittany
  - cabal-ghc
  - floskell
  - ghc
  - ghc-mod
  - hdevtools
  - hfmt
  - hie
  - hindent
  - hlint
  - stack-build :floppy_disk:
  - stack-ghc
  - stylish-haskell
- HCL
  - terraform-fmt
- HTML
  - alex :floppy_disk:
  - fecs
  - html-beautify
  - HTMLHint
  - prettier
  - proselint
  - tidy
  - write-good
- Idris
  - idris
- Ink
  - ink-language-server
- ISPC
  - ispc :floppy_disk:
- Java
  - checkstyle
  - eclipselsp
  - google-java-format
  - javac
  - javalsp
  - PMD
  - uncrustify
- JavaScript
  - eslint
  - fecs
  - flow
  - jscs
  - jshint
  - prettier
  - prettier-eslint
  - prettier-standard
  - standard
  - tsserver
  - xo
- JSON
  - fixjson
  - jq
  - jsonlint
  - prettier
- Julia
  - languageserver
- Kotlin
  - kotlinc :floppy_disk:
  - ktlint :floppy_disk:
  - languageserver see `:help ale-integration-kotlin` for configuration instructions
- LaTeX
  - alex :floppy_disk:
  - chktex
  - lacheck
  - proselint
  - redpen
  - texlab
  - textlint
  - vale
  - write-good
- Less
  - lessc
  - prettier
  - stylelint
- LLVM
  - llc
- Lua
  - luac
  - luacheck
- Mail
  - alex :floppy_disk:
  - languagetool :floppy_disk:
  - proselint
  - vale
- Make
  - checkmake
- Markdown
  - alex :floppy_disk:
  - languagetool :floppy_disk:
  - markdownlint :floppy_disk:
  - mdl
  - prettier
  - proselint
  - redpen
  - remark-lint
  - textlint
  - vale
  - write-good
- MATLAB
  - mlint
- Mercury
  - mmc :floppy_disk:
- NASM
  - nasm :floppy_disk:
- Nim
  - nim check :floppy_disk:
  - nimlsp
  - nimpretty
- nix
  - nix-instantiate
  - nixpkgs-fmt
- nroff
  - alex :floppy_disk:
  - proselint
  - write-good
- Objective-C
  - ccls
  - clang
  - clangd
  - uncrustify
- Objective-C++
  - clang
  - clangd
  - uncrustify
- OCaml
  - merlin see `:help ale-ocaml-merlin` for configuration instructions
  - ocamlformat
  - ocp-indent
  - ols
- Pawn
  - uncrustify
- Perl
  - perl -c :warning:
  - perl-critic
  - perltidy
- Perl6
  - perl6 -c :warning:
- PHP
  - langserver
  - phan see `:help ale-php-phan` to instructions
  - phpcbf
  - phpcs
  - php-cs-fixer
  - php -l
  - phpmd
  - phpstan
  - psalm :floppy_disk:
- PO
  - alex :floppy_disk:
  - msgfmt
  - proselint
  - write-good
- Pod
  - alex :floppy_disk:
  - proselint
  - write-good
- Pony
  - ponyc
- PowerShell
  - powershell :floppy_disk:
  - psscriptanalyzer :floppy_disk:
- Prolog
  - swipl
- proto
  - protoc-gen-lint
- Pug
  - pug-lint
- Puppet
  - languageserver
  - puppet
  - puppet-lint
- PureScript
  - purescript-language-server
  - purty
- Python
  - autopep8
  - bandit :warning:
  - black
  - flake8
  - isort
  - mypy
  - prospector :warning:
  - pycodestyle :warning:
  - pydocstyle :warning:
  - pyflakes
  - pylama :floppy_disk:
  - pylint :floppy_disk:
  - pyls :warning:
  - pyre :warning:
  - reorder-python-imports
  - vulture :warning: :floppy_disk:
  - yapf
- QML
  - qmlfmt
  - qmllint
- R
  - lintr
  - styler
- Racket
  - raco
- ReasonML
  - merlin see `:help ale-reasonml-ols` for configuration instructions
  - ols
  - reason-language-server
  - refmt
- reStructuredText
  - alex :floppy_disk:
  - proselint
  - redpen
  - rstcheck
  - textlint
  - vale
  - write-good
- Re:VIEW
  - redpen
- RPM spec
  - rpmlint :warning: (see `:help ale-integration-spec`)
- Ruby
  - brakeman :floppy_disk:
  - debride :floppy_disk:
  - rails_best_practices :floppy_disk:
  - reek
  - rubocop
  - ruby
  - rufo
  - solargraph
  - sorbet
  - standardrb
- Rust
  - cargo :floppy_disk: (see `:help ale-integration-rust` for configuration instructions)
  - rls :warning:
  - rust-analyzer :warning:
  - rustc :warning:
  - rustfmt
- Sass
  - sass-lint
  - stylelint
- Scala
  - fsc
  - metals
  - sbtserver
  - scalac
  - scalafmt
  - scalastyle
- SCSS
  - prettier
  - sass-lint
  - scss-lint
  - stylelint
- Slim
  - slim-lint
- SML
  - smlnj
- Solidity
  - solc
  - solhint
  - solium
- SQL
  - pgformatter
  - sqlfmt
  - sqlformat
  - sqlint
- Stylus
  - stylelint
- SugarSS
  - stylelint
- Swift
  - sourcekit-lsp
  - swiftformat
  - swiftlint
- Tcl
  - nagelfar :floppy_disk:
- Terraform
  - fmt
  - tflint
- Texinfo
  - alex :floppy_disk:
  - proselint
  - write-good
- Text
  - alex :warning: :floppy_disk:
  - languagetool :floppy_disk:
  - proselint :warning:
  - redpen :warning:
  - textlint :warning:
  - vale :warning:
  - write-good :warning:
- Thrift
  - thrift
- TypeScript
  - eslint
  - fecs
  - prettier
  - standard
  - tslint
  - tsserver
  - typecheck
- VALA
  - uncrustify
- Verilog
  - iverilog
  - verilator
  - vlog
  - xvlog
- VHDL
  - ghdl
  - vcom
  - xvhdl
- Vim
  - vimls
  - vint
- Vim help
  - alex :warning: :floppy_disk:
  - proselint :warning:
  - write-good :warning:
- Vue
  - prettier
  - vls
- XHTML
  - alex :floppy_disk:
  - proselint
  - write-good
- XML
  - xmllint
- YAML
  - prettier
  - swaglint
  - yamllint
- YANG
  - yang-lsp