Rewrite the supported tools lists in new files
This commit is contained in:
parent
aca1edb476
commit
df9bee88f6
5 changed files with 983 additions and 309 deletions
141
README.md
141
README.md
|
@ -78,140 +78,9 @@ other content at [w0rp.com](https://w0rp.com).
|
|||
|
||||
## 1. 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.
|
||||
|
||||
<!--
|
||||
Keep the table rows sorted alphabetically by the language name,
|
||||
and the tools in the tools column sorted alphabetically by the tool
|
||||
name. That seems to be the fairest way to arrange this table.
|
||||
|
||||
Remember to also update doc/ale.txt, which has a similar list with different
|
||||
formatting.
|
||||
-->
|
||||
|
||||
**Notes:**
|
||||
|
||||
* *^ No linters for text or Vim help filetypes are enabled by default.*
|
||||
* *!! These linters check only files on disk. See `:help ale-lint-file-linters`*
|
||||
|
||||
| Language | Tools |
|
||||
| -------- | ----- |
|
||||
| Ada | [gcc](https://gcc.gnu.org) |
|
||||
| ASM | [gcc](https://gcc.gnu.org) |
|
||||
| Ansible | [ansible-lint](https://github.com/willthames/ansible-lint) |
|
||||
| API Blueprint | [drafter](https://github.com/apiaryio/drafter) |
|
||||
| AsciiDoc | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [redpen](http://redpen.cc/), [write-good](https://github.com/btford/write-good), [vale](https://github.com/ValeLint/vale), [textlint](https://textlint.github.io/) |
|
||||
| Awk | [gawk](https://www.gnu.org/software/gawk/)|
|
||||
| Bash | [language-server](https://github.com/mads-hartmann/bash-language-server), shell [-n flag](https://www.gnu.org/software/bash/manual/bash.html#index-set), [shellcheck](https://www.shellcheck.net/), [shfmt](https://github.com/mvdan/sh) |
|
||||
| BibTeX | [bibclean](http://ftp.math.utah.edu/pub/bibclean/) |
|
||||
| Bourne Shell | shell [-n flag](http://linux.die.net/man/1/sh), [shellcheck](https://www.shellcheck.net/), [shfmt](https://github.com/mvdan/sh) |
|
||||
| C | [cppcheck](http://cppcheck.sourceforge.net), [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint), [clang](http://clang.llvm.org/), [clangd](https://clang.llvm.org/extra/clangd.html), [clangtidy](http://clang.llvm.org/extra/clang-tidy/) !!, [clang-format](https://clang.llvm.org/docs/ClangFormat.html), [cquery](https://github.com/cquery-project/cquery), [flawfinder](https://www.dwheeler.com/flawfinder/), [gcc](https://gcc.gnu.org/), [uncrustify](https://github.com/uncrustify/uncrustify), [ccls](https://github.com/MaskRay/ccls) |
|
||||
| C++ (filetype cpp) | [clang](http://clang.llvm.org/), [clangd](https://clang.llvm.org/extra/clangd.html), [clangcheck](http://clang.llvm.org/docs/ClangCheck.html) !!, [clangtidy](http://clang.llvm.org/extra/clang-tidy/) !!, [clang-format](https://clang.llvm.org/docs/ClangFormat.html), [clazy](https://github.com/KDE/clazy) !!, [cppcheck](http://cppcheck.sourceforge.net), [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint) !!, [cquery](https://github.com/cquery-project/cquery), [flawfinder](https://www.dwheeler.com/flawfinder/), [gcc](https://gcc.gnu.org/), [uncrustify](https://github.com/uncrustify/uncrustify), [ccls](https://github.com/MaskRay/ccls) |
|
||||
| CUDA | [nvcc](http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html) |
|
||||
| C# | [mcs](http://www.mono-project.com/docs/about-mono/languages/csharp/) see:`help ale-cs-mcs` for details, [mcsc](http://www.mono-project.com/docs/about-mono/languages/csharp/) !! see:`help ale-cs-mcsc` for details and configuration, [uncrustify](https://github.com/uncrustify/uncrustify) |
|
||||
| Chef | [foodcritic](http://www.foodcritic.io/) |
|
||||
| Clojure | [joker](https://github.com/candid82/joker) |
|
||||
| CloudFormation | [cfn-python-lint](https://github.com/awslabs/cfn-python-lint) |
|
||||
| CMake | [cmakelint](https://github.com/richq/cmake-lint), [cmake-format](https://github.com/cheshirekow/cmake_format) |
|
||||
| CoffeeScript | [coffee](http://coffeescript.org/), [coffeelint](https://www.npmjs.com/package/coffeelint) |
|
||||
| Crystal | [ameba](https://github.com/veelenga/ameba) !!, [crystal](https://crystal-lang.org/) !! |
|
||||
| CSS | [csslint](http://csslint.net/), [prettier](https://github.com/prettier/prettier), [stylelint](https://github.com/stylelint/stylelint) |
|
||||
| Cucumber | [cucumber](https://cucumber.io/) |
|
||||
| Cypher | [cypher-lint](https://github.com/cleishm/libcypher-parser) |
|
||||
| Cython (pyrex filetype) | [cython](http://cython.org/) |
|
||||
| D | [dls](https://github.com/d-language-server/dls), [dmd](https://dlang.org/dmd-linux.html), [uncrustify](https://github.com/uncrustify/uncrustify) |
|
||||
| Dafny | [dafny](https://rise4fun.com/Dafny) !! |
|
||||
| Dart | [dartanalyzer](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli) !!, [language_server](https://github.com/natebosch/dart_language_server), [dartfmt](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt) |
|
||||
| Dockerfile | [dockerfile_lint](https://github.com/projectatomic/dockerfile_lint), [hadolint](https://github.com/hadolint/hadolint) |
|
||||
| Elixir | [credo](https://github.com/rrrene/credo), [dialyxir](https://github.com/jeremyjh/dialyxir), [dogma](https://github.com/lpil/dogma), [mix](https://hexdocs.pm/mix/Mix.html) !!, [elixir-ls](https://github.com/JakeBecker/elixir-ls) |
|
||||
| Elm | [elm-format](https://github.com/avh4/elm-format), [elm-make](https://github.com/elm-lang/elm-make) |
|
||||
| Erb | [erb](https://apidock.com/ruby/ERB), [erubi](https://github.com/jeremyevans/erubi), [erubis](https://github.com/kwatch/erubis), [ruumba](https://github.com/ericqweinstein/ruumba) |
|
||||
| Erlang | [erlc](http://erlang.org/doc/man/erlc.html), [SyntaxErl](https://github.com/ten0s/syntaxerl) |
|
||||
| Fish | fish [-n flag](https://linux.die.net/man/1/fish)
|
||||
| Fortran | [gcc](https://gcc.gnu.org/), [language_server](https://github.com/hansec/fortran-language-server) |
|
||||
| Fountain | [proselint](http://proselint.com/) |
|
||||
| FusionScript | [fusion-lint](https://github.com/RyanSquared/fusionscript) |
|
||||
| Git Commit Messages | [gitlint](https://github.com/jorisroovers/gitlint) |
|
||||
| GLSL | [glslang](https://github.com/KhronosGroup/glslang), [glslls](https://github.com/svenstaro/glsl-language-server) |
|
||||
| Go | [gofmt](https://golang.org/cmd/gofmt/), [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports), [go mod](https://golang.org/cmd/go/) !!, [go vet](https://golang.org/cmd/vet/) !!, [golint](https://godoc.org/github.com/golang/lint), [gotype](https://godoc.org/golang.org/x/tools/cmd/gotype) !!, [gometalinter](https://github.com/alecthomas/gometalinter) !!, [go build](https://golang.org/cmd/go/) !!, [gosimple](https://github.com/dominikh/go-tools/tree/master/cmd/gosimple) !!, [staticcheck](https://github.com/dominikh/go-tools/tree/master/cmd/staticcheck) !!, [golangserver](https://github.com/sourcegraph/go-langserver), [golangci-lint](https://github.com/golangci/golangci-lint) !!, [bingo](https://github.com/saibing/bingo) |
|
||||
| GraphQL | [eslint](http://eslint.org/), [gqlint](https://github.com/happylinks/gqlint), [prettier](https://github.com/prettier/prettier) |
|
||||
| Hack | [hack](http://hacklang.org/), [hackfmt](https://github.com/facebook/hhvm/tree/master/hphp/hack/hackfmt), [hhast](https://github.com/hhvm/hhast) (disabled by default; see `:help ale-integration-hack`) |
|
||||
| Haml | [haml-lint](https://github.com/brigade/haml-lint) |
|
||||
| Handlebars | [ember-template-lint](https://github.com/rwjblue/ember-template-lint) |
|
||||
| Haskell | [brittany](https://github.com/lspitzner/brittany), [ghc](https://www.haskell.org/ghc/), [cabal-ghc](https://www.haskell.org/cabal/), [stylish-haskell](https://github.com/jaspervdj/stylish-haskell), [stack-ghc](https://haskellstack.org/), [stack-build](https://haskellstack.org/) !!, [ghc-mod](https://github.com/DanielG/ghc-mod), [hlint](https://hackage.haskell.org/package/hlint), [hdevtools](https://hackage.haskell.org/package/hdevtools), [hfmt](https://github.com/danstiner/hfmt), [hie](https://github.com/haskell/haskell-ide-engine) |
|
||||
| HCL | [terraform-fmt](https://github.com/hashicorp/terraform) |
|
||||
| HTML | [alex](https://github.com/wooorm/alex) !!, [HTMLHint](http://htmlhint.com/), [proselint](http://proselint.com/), [tidy](http://www.html-tidy.org/), [prettier](https://github.com/prettier/prettier), [write-good](https://github.com/btford/write-good) |
|
||||
| Idris | [idris](http://www.idris-lang.org/) |
|
||||
| ISPC | [ispc](https://ispc.github.io/) !! |
|
||||
| Java | [checkstyle](http://checkstyle.sourceforge.net), [javac](http://www.oracle.com/technetwork/java/javase/downloads/index.html), [google-java-format](https://github.com/google/google-java-format), [PMD](https://pmd.github.io/), [javalsp](https://github.com/georgewfraser/vscode-javac), [uncrustify](https://github.com/uncrustify/uncrustify) |
|
||||
| JavaScript | [eslint](http://eslint.org/), [flow](https://flowtype.org/), [jscs](http://jscs.info/), [jshint](http://jshint.com/), [prettier](https://github.com/prettier/prettier), [prettier-eslint](https://github.com/prettier/prettier-eslint-cli), [prettier-standard](https://github.com/sheerun/prettier-standard), [standard](http://standardjs.com/), [tsserver](https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29), [xo](https://github.com/sindresorhus/xo)
|
||||
| JSON | [fixjson](https://github.com/rhysd/fixjson), [jsonlint](http://zaa.ch/jsonlint/), [jq](https://stedolan.github.io/jq/), [prettier](https://github.com/prettier/prettier) |
|
||||
| Julia | [languageserver](https://github.com/JuliaEditorSupport/LanguageServer.jl) |
|
||||
| Kotlin | [kotlinc](https://kotlinlang.org) !!, [ktlint](https://ktlint.github.io) !!, [languageserver](https://github.com/fwcd/KotlinLanguageServer) see `:help ale-integration-kotlin` for configuration instructions |
|
||||
| LaTeX | [alex](https://github.com/wooorm/alex) !!, [chktex](http://www.nongnu.org/chktex/), [lacheck](https://www.ctan.org/pkg/lacheck), [proselint](http://proselint.com/), [redpen](http://redpen.cc/), [vale](https://github.com/ValeLint/vale), [write-good](https://github.com/btford/write-good), [textlint](https://textlint.github.io/) |
|
||||
| Less | [lessc](https://www.npmjs.com/package/less), [prettier](https://github.com/prettier/prettier), [stylelint](https://github.com/stylelint/stylelint) |
|
||||
| LLVM | [llc](https://llvm.org/docs/CommandGuide/llc.html) |
|
||||
| Lua | [luac](https://www.lua.org/manual/5.1/luac.html), [luacheck](https://github.com/mpeterv/luacheck) |
|
||||
| Mail | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [vale](https://github.com/ValeLint/vale) |
|
||||
| Make | [checkmake](https://github.com/mrtazz/checkmake) |
|
||||
| Markdown | [alex](https://github.com/wooorm/alex) !!, [markdownlint](https://github.com/DavidAnson/markdownlint) !!, [mdl](https://github.com/mivok/markdownlint), [prettier](https://github.com/prettier/prettier), [proselint](http://proselint.com/), [redpen](http://redpen.cc/), [remark-lint](https://github.com/wooorm/remark-lint), [textlint](https://textlint.github.io/), [vale](https://github.com/ValeLint/vale), [write-good](https://github.com/btford/write-good) |
|
||||
| MATLAB | [mlint](https://www.mathworks.com/help/matlab/ref/mlint.html) |
|
||||
| Mercury | [mmc](http://mercurylang.org) !! |
|
||||
| NASM | [nasm](https://www.nasm.us/) !! |
|
||||
| Nim | [nim check](https://nim-lang.org/docs/nimc.html) !! |
|
||||
| nix | [nix-instantiate](http://nixos.org/nix/manual/#sec-nix-instantiate) |
|
||||
| nroff | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [write-good](https://github.com/btford/write-good)|
|
||||
| Objective-C | [clang](http://clang.llvm.org/), [clangd](https://clang.llvm.org/extra/clangd.html), [uncrustify](https://github.com/uncrustify/uncrustify), [ccls](https://github.com/MaskRay/ccls) |
|
||||
| Objective-C++ | [clang](http://clang.llvm.org/), [clangd](https://clang.llvm.org/extra/clangd.html), [uncrustify](https://github.com/uncrustify/uncrustify) |
|
||||
| OCaml | [merlin](https://github.com/the-lambda-church/merlin) see `:help ale-ocaml-merlin` for configuration instructions, [ols](https://github.com/freebroccolo/ocaml-language-server), [ocamlformat](https://github.com/ocaml-ppx/ocamlformat) |
|
||||
| Pawn | [uncrustify](https://github.com/uncrustify/uncrustify) |
|
||||
| Perl | [perl -c](https://perl.org/), [perl-critic](https://metacpan.org/pod/Perl::Critic), [perltidy](https://metacpan.org/pod/distribution/Perl-Tidy/bin/perltidy) |
|
||||
| Perl6 | [perl6 -c](https://perl6.org) |
|
||||
| PHP | [langserver](https://github.com/felixfbecker/php-language-server), [phan](https://github.com/phan/phan) see `:help ale-php-phan` to instructions, [php -l](https://secure.php.net/), [phpcs](https://github.com/squizlabs/PHP_CodeSniffer), [phpmd](https://phpmd.org), [phpstan](https://github.com/phpstan/phpstan), [phpcbf](https://github.com/squizlabs/PHP_CodeSniffer), [php-cs-fixer](http://cs.sensiolabs.org/), [psalm](https://getpsalm.org) !! |
|
||||
| PO | [alex](https://github.com/wooorm/alex) !!, [msgfmt](https://www.gnu.org/software/gettext/manual/html_node/msgfmt-Invocation.html), [proselint](http://proselint.com/), [write-good](https://github.com/btford/write-good) |
|
||||
| Pod | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [write-good](https://github.com/btford/write-good) |
|
||||
| Pony | [ponyc](https://github.com/ponylang/ponyc) |
|
||||
| Prolog | [swipl](https://github.com/SWI-Prolog/swipl-devel) |
|
||||
| proto | [protoc-gen-lint](https://github.com/ckaznocha/protoc-gen-lint) |
|
||||
| Pug | [pug-lint](https://github.com/pugjs/pug-lint) |
|
||||
| Puppet | [languageserver](https://github.com/lingua-pupuli/puppet-editor-services), [puppet](https://puppet.com), [puppet-lint](https://puppet-lint.com) |
|
||||
| Python | [autopep8](https://github.com/hhatto/autopep8), [bandit](https://github.com/PyCQA/bandit), [black](https://github.com/ambv/black), [flake8](http://flake8.pycqa.org/en/latest/), [isort](https://github.com/timothycrosley/isort), [mypy](http://mypy-lang.org/), [prospector](https://github.com/PyCQA/prospector), [pycodestyle](https://github.com/PyCQA/pycodestyle), [pydocstyle](https://www.pydocstyle.org/), [pyls](https://github.com/palantir/python-language-server), [pyre](https://github.com/facebook/pyre-check), [pylint](https://www.pylint.org/) !!, [vulture](https://github.com/jendrikseipp/vulture) !!, [yapf](https://github.com/google/yapf) |
|
||||
| QML | [qmlfmt](https://github.com/jesperhh/qmlfmt), [qmllint](https://github.com/qt/qtdeclarative/tree/5.11/tools/qmllint) |
|
||||
| R | [lintr](https://github.com/jimhester/lintr) |
|
||||
| Racket | [raco](https://docs.racket-lang.org/raco/) |
|
||||
| ReasonML | [merlin](https://github.com/the-lambda-church/merlin) see `:help ale-reasonml-ols` for configuration instructions, [ols](https://github.com/freebroccolo/ocaml-language-server), [refmt](https://github.com/reasonml/reason-cli) |
|
||||
| reStructuredText | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [redpen](http://redpen.cc/), [rstcheck](https://github.com/myint/rstcheck), [textlint](https://textlint.github.io/), [vale](https://github.com/ValeLint/vale), [write-good](https://github.com/btford/write-good) |
|
||||
| Re:VIEW | [redpen](http://redpen.cc/) |
|
||||
| RPM spec | [rpmlint](https://github.com/rpm-software-management/rpmlint) (disabled by default; see `:help ale-integration-spec`) |
|
||||
| Ruby | [brakeman](http://brakemanscanner.org/) !!, [rails_best_practices](https://github.com/flyerhzm/rails_best_practices) !!, [reek](https://github.com/troessner/reek), [rubocop](https://github.com/bbatsov/rubocop), [ruby](https://www.ruby-lang.org), [rufo](https://github.com/ruby-formatter/rufo), [solargraph](https://solargraph.org), [standardrb](https://github.com/testdouble/standard) |
|
||||
| Rust | [cargo](https://github.com/rust-lang/cargo) !! (see `:help ale-integration-rust` for configuration instructions), [rls](https://github.com/rust-lang-nursery/rls), [rustc](https://www.rust-lang.org/), [rustfmt](https://github.com/rust-lang-nursery/rustfmt) |
|
||||
| Sass | [sass-lint](https://www.npmjs.com/package/sass-lint), [stylelint](https://github.com/stylelint/stylelint) |
|
||||
| SCSS | [prettier](https://github.com/prettier/prettier), [sass-lint](https://www.npmjs.com/package/sass-lint), [scss-lint](https://github.com/brigade/scss-lint), [stylelint](https://github.com/stylelint/stylelint) |
|
||||
| Scala | [fsc](https://www.scala-lang.org/old/sites/default/files/linuxsoft_archives/docu/files/tools/fsc.html), [sbtserver](https://www.scala-sbt.org/1.x/docs/sbt-server.html), [scalac](http://scala-lang.org), [scalafmt](https://scalameta.org/scalafmt/), [scalastyle](http://www.scalastyle.org)|
|
||||
| Slim | [slim-lint](https://github.com/sds/slim-lint) |
|
||||
| SML | [smlnj](http://www.smlnj.org/) |
|
||||
| Solidity | [solhint](https://github.com/protofire/solhint), [solium](https://github.com/duaraghav8/Solium) |
|
||||
| Stylus | [stylelint](https://github.com/stylelint/stylelint) |
|
||||
| SugarSS | [stylelint](https://github.com/stylelint/stylelint) |
|
||||
| SQL | [sqlint](https://github.com/purcell/sqlint), [sqlfmt](https://github.com/jackc/sqlfmt) |
|
||||
| Swift | [swiftlint](https://github.com/realm/SwiftLint), [swiftformat](https://github.com/nicklockwood/SwiftFormat) |
|
||||
| Tcl | [nagelfar](http://nagelfar.sourceforge.net) !! |
|
||||
| Terraform | [fmt](https://github.com/hashicorp/terraform), [tflint](https://github.com/wata727/tflint) |
|
||||
| Texinfo | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [write-good](https://github.com/btford/write-good)|
|
||||
| Text^ | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [redpen](http://redpen.cc/), [textlint](https://textlint.github.io/), [vale](https://github.com/ValeLint/vale), [write-good](https://github.com/btford/write-good) |
|
||||
| Thrift | [thrift](http://thrift.apache.org/) |
|
||||
| TypeScript | [eslint](http://eslint.org/), [prettier](https://github.com/prettier/prettier), [tslint](https://github.com/palantir/tslint), [tsserver](https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29), typecheck |
|
||||
| VALA | [uncrustify](https://github.com/uncrustify/uncrustify) |
|
||||
| Verilog | [iverilog](https://github.com/steveicarus/iverilog), [verilator](http://www.veripool.org/projects/verilator/wiki/Intro), [vlog](https://www.mentor.com/products/fv/questa/), [xvlog](https://www.xilinx.com/products/design-tools/vivado.html) |
|
||||
| VHDL | [ghdl](https://github.com/ghdl/ghdl), [vcom](https://www.mentor.com/products/fv/questa/), [xvhdl](https://www.xilinx.com/products/design-tools/vivado.html) |
|
||||
| Vim | [vint](https://github.com/Kuniwak/vint) |
|
||||
| Vim help^ | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [write-good](https://github.com/btford/write-good) |
|
||||
| Vue | [prettier](https://github.com/prettier/prettier), [vls](https://github.com/vuejs/vetur/tree/master/server) |
|
||||
| XHTML | [alex](https://github.com/wooorm/alex) !!, [proselint](http://proselint.com/), [write-good](https://github.com/btford/write-good) |
|
||||
| XML | [xmllint](http://xmlsoft.org/xmllint.html) |
|
||||
| YAML | [prettier](https://github.com/prettier/prettier), [swaglint](https://github.com/byCedric/swaglint), [yamllint](https://yamllint.readthedocs.io/) |
|
||||
| YANG | [yang-lsp](https://github.com/theia-ide/yang-lsp) |
|
||||
ALE supports a wide variety of languages and tools. See the
|
||||
[full list](supported-tools.md) in the
|
||||
[Supported Languages and Tools](supported-tools.md) page.
|
||||
|
||||
<a name="usage"></a>
|
||||
|
||||
|
@ -579,13 +448,13 @@ let g:airline#extensions#ale#enabled = 1
|
|||
```
|
||||
|
||||
If you don't want to use vim-airline, you can implement your own statusline
|
||||
function without adding any other plugins. ALE provides some functions to
|
||||
function without adding any other plugins. ALE provides some functions to
|
||||
assist in this endeavour, including:
|
||||
|
||||
* `ale#statusline#Count`: Which returns the number of problems found by ALE
|
||||
for a specified buffer.
|
||||
* `ale#statusline#FirstProblem`: Which returns a dictionary containing the
|
||||
full loclist details of the first problem of a specified type found by ALE
|
||||
full loclist details of the first problem of a specified type found by ALE
|
||||
in a buffer. (e.g. The first style warning in the current buffer.)
|
||||
This can be useful for displaying more detailed information such as the
|
||||
line number of the first problem in a file.
|
||||
|
|
463
doc/ale-supported-languages-and-tools.txt
Normal file
463
doc/ale-supported-languages-and-tools.txt
Normal file
|
@ -0,0 +1,463 @@
|
|||
*ale-supported-languages-and-tools.txt* For Vim version 8.0.
|
||||
*ale-supported-list*
|
||||
|
||||
ALE Supported Languages and Tools
|
||||
|
||||
===============================================================================
|
||||
|
||||
The following languages and tools are supported by ALE.
|
||||
|
||||
Notes:
|
||||
|
||||
`^` No linters for text or Vim help filetypes are enabled by default.
|
||||
`!!` These linters check only files on disk. See |ale-lint-file-linters|
|
||||
|
||||
* Ada
|
||||
* `gcc`
|
||||
* Ansible
|
||||
* `ansible-lint`
|
||||
* API Blueprint
|
||||
* `drafter`
|
||||
* AsciiDoc
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `redpen`
|
||||
* `textlint`
|
||||
* `vale`
|
||||
* `write-good`
|
||||
* ASM
|
||||
* `gcc`
|
||||
* Awk
|
||||
* `gawk`
|
||||
* Bash
|
||||
* `language-server`
|
||||
* `shell` (-n flag)
|
||||
* `shellcheck`
|
||||
* `shfmt`
|
||||
* BibTeX
|
||||
* `bibclean`
|
||||
* Bourne Shell
|
||||
* `shell` (-n flag)
|
||||
* `shellcheck`
|
||||
* `shfmt`
|
||||
* C
|
||||
* `ccls`
|
||||
* `clang`
|
||||
* `clangd`
|
||||
* `clang-format`
|
||||
* `clangtidy`!!
|
||||
* `cppcheck`
|
||||
* `cpplint`!!
|
||||
* `cquery`
|
||||
* `flawfinder`
|
||||
* `gcc`
|
||||
* `uncrustify`
|
||||
* C#
|
||||
* `mcs`
|
||||
* `mcsc`!!
|
||||
* `uncrustify`
|
||||
* C++ (filetype cpp)
|
||||
* `ccls`
|
||||
* `clang`
|
||||
* `clangcheck`!!
|
||||
* `clangd`
|
||||
* `clang-format`
|
||||
* `clangtidy`!!
|
||||
* `clazy`!!
|
||||
* `cppcheck`
|
||||
* `cpplint`!!
|
||||
* `cquery`
|
||||
* `flawfinder`
|
||||
* `gcc`
|
||||
* `uncrustify`
|
||||
* Chef
|
||||
* `foodcritic`
|
||||
* Clojure
|
||||
* `joker`
|
||||
* CloudFormation
|
||||
* `cfn-python-lint`
|
||||
* CMake
|
||||
* `cmake-format`
|
||||
* `cmakelint`
|
||||
* CoffeeScript
|
||||
* `coffee`
|
||||
* `coffeelint`
|
||||
* Crystal
|
||||
* `ameba`!!
|
||||
* `crystal`!!
|
||||
* CSS
|
||||
* `csslint`
|
||||
* `prettier`
|
||||
* `stylelint`
|
||||
* Cucumber
|
||||
* `cucumber`
|
||||
* CUDA
|
||||
* `nvcc`!!
|
||||
* Cypher
|
||||
* `cypher-lint`
|
||||
* Cython (pyrex filetype)
|
||||
* `cython`
|
||||
* D
|
||||
* `dls`
|
||||
* `dmd`
|
||||
* `uncrustify`
|
||||
* Dafny
|
||||
* `dafny`!!
|
||||
* Dart
|
||||
* `dartanalyzer`!!
|
||||
* `dartfmt`!!
|
||||
* `language_server`
|
||||
* Dockerfile
|
||||
* `dockerfile_lint`
|
||||
* `hadolint`
|
||||
* Elixir
|
||||
* `credo`
|
||||
* `dialyxir`
|
||||
* `dogma`
|
||||
* `elixir-ls`
|
||||
* `mix`!!
|
||||
* Elm
|
||||
* `elm-format`
|
||||
* `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`
|
||||
* `go build`!!
|
||||
* `gofmt`
|
||||
* `goimports`
|
||||
* `golangci-lint`!!
|
||||
* `golangserver`
|
||||
* `golint`
|
||||
* `gometalinter`!!
|
||||
* `go mod`!!
|
||||
* `gosimple`!!
|
||||
* `gotype`!!
|
||||
* `go vet`!!
|
||||
* `staticcheck`!!
|
||||
* GraphQL
|
||||
* `eslint`
|
||||
* `gqlint`
|
||||
* `prettier`
|
||||
* Hack
|
||||
* `hack`
|
||||
* `hackfmt`
|
||||
* `hhast`
|
||||
* Haml
|
||||
* `haml-lint`
|
||||
* Handlebars
|
||||
* `ember-template-lint`
|
||||
* Haskell
|
||||
* `brittany`
|
||||
* `cabal-ghc`
|
||||
* `ghc`
|
||||
* `ghc-mod`
|
||||
* `hdevtools`
|
||||
* `hfmt`
|
||||
* `hie`
|
||||
* `hlint`
|
||||
* `stack-build`!!
|
||||
* `stack-ghc`
|
||||
* `stylish-haskell`
|
||||
* HCL
|
||||
* `terraform-fmt`
|
||||
* HTML
|
||||
* `alex`!!
|
||||
* `HTMLHint`
|
||||
* `prettier`
|
||||
* `proselint`
|
||||
* `tidy`
|
||||
* `write-good`
|
||||
* Idris
|
||||
* `idris`
|
||||
* ISPC
|
||||
* `ispc`!!
|
||||
* Java
|
||||
* `checkstyle`
|
||||
* `google-java-format`
|
||||
* `javac`
|
||||
* `javalsp`
|
||||
* `PMD`
|
||||
* `uncrustify`
|
||||
* JavaScript
|
||||
* `eslint`
|
||||
* `flow`
|
||||
* `jscs`
|
||||
* `jshint`
|
||||
* `prettier`
|
||||
* `prettier-eslint`
|
||||
* `prettier-standard`
|
||||
* `standard`
|
||||
* `tsserver`
|
||||
* `xo`
|
||||
* JSON
|
||||
* `fixjson`
|
||||
* `jq`
|
||||
* `jsonlint`
|
||||
* `prettier`
|
||||
* Julia
|
||||
* `languageserver`
|
||||
* Kotlin
|
||||
* `kotlinc`!!
|
||||
* `ktlint`!!
|
||||
* `languageserver`
|
||||
* LaTeX (tex)
|
||||
* `alex`!!
|
||||
* `chktex`
|
||||
* `lacheck`
|
||||
* `proselint`
|
||||
* `redpen`
|
||||
* `textlint`
|
||||
* `vale`
|
||||
* `write-good`
|
||||
* Less
|
||||
* `lessc`
|
||||
* `prettier`
|
||||
* `stylelint`
|
||||
* LLVM
|
||||
* `llc`
|
||||
* Lua
|
||||
* `luac`
|
||||
* `luacheck`
|
||||
* Mail
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `vale`
|
||||
* Make
|
||||
* `checkmake`
|
||||
* Markdown
|
||||
* `alex`!!
|
||||
* `markdownlint`!!
|
||||
* `mdl`
|
||||
* `prettier`
|
||||
* `proselint`
|
||||
* `redpen`
|
||||
* `remark-lint`
|
||||
* `textlint`
|
||||
* `vale`
|
||||
* `write-good`
|
||||
* MATLAB
|
||||
* `mlint`
|
||||
* Mercury
|
||||
* `mmc`!!
|
||||
* NASM
|
||||
* `nasm`!!
|
||||
* Nim
|
||||
* `nim check`!!
|
||||
* nix
|
||||
* `nix-instantiate`
|
||||
* nroff
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `write-good`
|
||||
* Objective-C
|
||||
* `ccls`
|
||||
* `clang`
|
||||
* `clangd`
|
||||
* `uncrustify`
|
||||
* Objective-C++
|
||||
* `clang`
|
||||
* `clangd`
|
||||
* `uncrustify`
|
||||
* OCaml
|
||||
* `merlin` (see |ale-ocaml-merlin|)
|
||||
* `ocamlformat`
|
||||
* `ols`
|
||||
* Pawn
|
||||
* `uncrustify`
|
||||
* Perl
|
||||
* `perl -c`
|
||||
* `perl-critic`
|
||||
* `perltidy`
|
||||
* Perl6
|
||||
* `perl6 -c`
|
||||
* PHP
|
||||
* `langserver`
|
||||
* `phan`
|
||||
* `phpcbf`
|
||||
* `phpcs`
|
||||
* `php-cs-fixer`
|
||||
* `php -l`
|
||||
* `phpmd`
|
||||
* `phpstan`
|
||||
* `psalm`!!
|
||||
* PO
|
||||
* `alex`!!
|
||||
* `msgfmt`
|
||||
* `proselint`
|
||||
* `write-good`
|
||||
* Pod
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `write-good`
|
||||
* Pony
|
||||
* `ponyc`
|
||||
* Prolog
|
||||
* `swipl`
|
||||
* proto
|
||||
* `protoc-gen-lint`
|
||||
* Pug
|
||||
* `pug-lint`
|
||||
* Puppet
|
||||
* `languageserver`
|
||||
* `puppet`
|
||||
* `puppet-lint`
|
||||
* Python
|
||||
* `autopep8`
|
||||
* `bandit`
|
||||
* `black`
|
||||
* `flake8`
|
||||
* `isort`
|
||||
* `mypy`
|
||||
* `prospector`
|
||||
* `pycodestyle`
|
||||
* `pydocstyle`
|
||||
* `pylint`!!
|
||||
* `pyls`
|
||||
* `pyre`
|
||||
* `vulture`!!
|
||||
* `yapf`
|
||||
* QML
|
||||
* `qmlfmt`
|
||||
* `qmllint`
|
||||
* R
|
||||
* `lintr`
|
||||
* Racket
|
||||
* `raco`
|
||||
* ReasonML
|
||||
* `merlin`
|
||||
* `ols`
|
||||
* `refmt`
|
||||
* reStructuredText
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `redpen`
|
||||
* `rstcheck`
|
||||
* `textlint`
|
||||
* `vale`
|
||||
* `write-good`
|
||||
* Re:VIEW
|
||||
* `redpen`
|
||||
* RPM spec
|
||||
* `rpmlint`
|
||||
* Ruby
|
||||
* `brakeman`
|
||||
* `rails_best_practices`!!
|
||||
* `reek`
|
||||
* `rubocop`
|
||||
* `ruby`
|
||||
* `rufo`
|
||||
* `solargraph`
|
||||
* `standardrb`
|
||||
* Rust
|
||||
* `cargo`!!
|
||||
* `rls`
|
||||
* `rustc` (see |ale-integration-rust|)
|
||||
* `rustfmt`
|
||||
* Sass
|
||||
* `sass-lint`
|
||||
* `stylelint`
|
||||
* Scala
|
||||
* `fsc`
|
||||
* `sbtserver`
|
||||
* `scalac`
|
||||
* `scalafmt`
|
||||
* `scalastyle`
|
||||
* SCSS
|
||||
* `prettier`
|
||||
* `sass-lint`
|
||||
* `scss-lint`
|
||||
* `stylelint`
|
||||
* Slim
|
||||
* `slim-lint`
|
||||
* SML
|
||||
* `smlnj`
|
||||
* Solidity
|
||||
* `solhint`
|
||||
* `solium`
|
||||
* SQL
|
||||
* `sqlfmt`
|
||||
* `sqlint`
|
||||
* Stylus
|
||||
* `stylelint`
|
||||
* SugarSS
|
||||
* `stylelint`
|
||||
* Swift
|
||||
* `swiftformat`
|
||||
* `swiftlint`
|
||||
* Tcl
|
||||
* `nagelfar`!!
|
||||
* Terraform
|
||||
* `fmt`
|
||||
* `tflint`
|
||||
* Texinfo
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `write-good`
|
||||
* Text^
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `redpen`
|
||||
* `textlint`
|
||||
* `vale`
|
||||
* `write-good`
|
||||
* Thrift
|
||||
* `thrift`
|
||||
* TypeScript
|
||||
* `eslint`
|
||||
* `prettier`
|
||||
* `tslint`
|
||||
* `tsserver`
|
||||
* `typecheck`
|
||||
* VALA
|
||||
* `uncrustify`
|
||||
* Verilog
|
||||
* `iverilog`
|
||||
* `verilator`
|
||||
* `vlog`
|
||||
* `xvlog`
|
||||
* VHDL
|
||||
* `ghdl`
|
||||
* `vcom`
|
||||
* `xvhdl`
|
||||
* Vim
|
||||
* `vint`
|
||||
* Vim help^
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `write-good`
|
||||
* Vue
|
||||
* `prettier`
|
||||
* `vls`
|
||||
* XHTML
|
||||
* `alex`!!
|
||||
* `proselint`
|
||||
* `write-good`
|
||||
* XML
|
||||
* `xmllint`
|
||||
* YAML
|
||||
* `prettier`
|
||||
* `swaglint`
|
||||
* `yamllint`
|
||||
* YANG
|
||||
* `yang-lsp`
|
126
doc/ale.txt
126
doc/ale.txt
|
@ -413,128 +413,8 @@ developer documentation. See |ale-development|
|
|||
===============================================================================
|
||||
2. Supported Languages & Tools *ale-support*
|
||||
|
||||
The following languages and tools are supported.
|
||||
|
||||
Notes:
|
||||
|
||||
`^` No linters for text or Vim help filetypes are enabled by default.
|
||||
`!!` These linters check only files on disk. See |ale-lint-file-linters|
|
||||
|
||||
* Ada: `gcc`
|
||||
* ASM: `gcc`
|
||||
* Ansible: `ansible-lint`
|
||||
* API Blueprint: `drafter`
|
||||
* AsciiDoc: `alex`!!, `proselint`, `redpen`, `write-good`, `vale`, `textlint`
|
||||
* Awk: `gawk`
|
||||
* Bash: `language-server`, `shell` (-n flag), `shellcheck`, `shfmt`
|
||||
* BibTeX: `bibclean`
|
||||
* Bourne Shell: `shell` (-n flag), `shellcheck`, `shfmt`
|
||||
* C: `cppcheck`, `cpplint`!!, `clang`, `clangd`, `clangtidy`!!, `clang-format`, `cquery`, `flawfinder`, `gcc`, `uncrustify`, `ccls`
|
||||
* C++ (filetype cpp): `clang`, `clangd`, `clangcheck`!!, `clangtidy`!!, `clang-format`, `clazy`!!, `cppcheck`, `cpplint`!!, `cquery`, `flawfinder`, `gcc`, `uncrustify`, `ccls`
|
||||
* CUDA: `nvcc`!!
|
||||
* C#: `mcs`, `mcsc`!!, `uncrustify`
|
||||
* Chef: `foodcritic`
|
||||
* Clojure: `joker`
|
||||
* CloudFormation: `cfn-python-lint`
|
||||
* CMake: `cmakelint`, `cmake-format`
|
||||
* CoffeeScript: `coffee`, `coffeelint`
|
||||
* Crystal: `ameba`!!, `crystal`!!
|
||||
* CSS: `csslint`, `prettier`, `stylelint`
|
||||
* Cucumber: `cucumber`
|
||||
* Cypher: `cypher-lint`
|
||||
* Cython (pyrex filetype): `cython`
|
||||
* D: `dls`, `dmd`, `uncrustify`
|
||||
* Dafny: `dafny`!!
|
||||
* Dart: `dartanalyzer`!!, `language_server`, dartfmt!!
|
||||
* Dockerfile: `dockerfile_lint`, `hadolint`
|
||||
* Elixir: `credo`, `dialyxir`, `dogma`, `mix`!!, `elixir-ls`
|
||||
* Elm: `elm-format, 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: `gofmt`, `goimports`, `go mod`!!, `go vet`!!, `golint`, `gotype`!!, `gometalinter`!!, `go build`!!, `gosimple`!!, `staticcheck`!!, `golangserver`, `golangci-lint`!!, `bingo`
|
||||
* GraphQL: `eslint`, `gqlint`, `prettier`
|
||||
* Hack: `hack`, `hackfmt`, `hhast`
|
||||
* Haml: `haml-lint`
|
||||
* Handlebars: `ember-template-lint`
|
||||
* Haskell: `brittany`, `ghc`, `cabal-ghc`, `stylish-haskell`, `stack-ghc`, `stack-build`!!, `ghc-mod`, `hlint`, `hdevtools`, `hfmt`, `hie`
|
||||
* HCL: `terraform-fmt`
|
||||
* HTML: `alex`!!, `HTMLHint`, `proselint`, `tidy`, `prettier`, `write-good`
|
||||
* Idris: `idris`
|
||||
* ISPC: `ispc`!!
|
||||
* Java: `checkstyle`, `javac`, `google-java-format`, `PMD`, `javalsp`, `uncrustify`
|
||||
* JavaScript: `eslint`, `flow`, `jscs`, `jshint`, `prettier`, `prettier-eslint`, `prettier-standard`, `standard`, `tsserver`, `xo`
|
||||
* JSON: `fixjson`, `jsonlint`, `jq`, `prettier`
|
||||
* Julia: `languageserver`
|
||||
* Kotlin: `kotlinc`!!, `ktlint`!!, `languageserver`
|
||||
* LaTeX (tex): `alex`!!, `chktex`, `lacheck`, `proselint`, `redpen`, `vale`, `write-good`, `textlint`
|
||||
* Less: `lessc`, `prettier`, `stylelint`
|
||||
* LLVM: `llc`
|
||||
* Lua: `luac`, `luacheck`
|
||||
* Mail: `alex`!!, `proselint`, `vale`
|
||||
* Make: `checkmake`
|
||||
* Markdown: `alex`!!, `markdownlint`!!, `mdl`, `prettier`, `proselint`, `redpen`, `remark-lint`, `textlint`, `vale`, `write-good`
|
||||
* MATLAB: `mlint`
|
||||
* Mercury: `mmc`!!
|
||||
* NASM: `nasm`!!
|
||||
* Nim: `nim check`!!
|
||||
* nix: `nix-instantiate`
|
||||
* nroff: `alex`!!, `proselint`, `write-good`
|
||||
* Objective-C: `clang`, `clangd`, `uncrustify`, `ccls`
|
||||
* Objective-C++: `clang`, `clangd`, `uncrustify`
|
||||
* OCaml: `merlin` (see |ale-ocaml-merlin|), `ols`, `ocamlformat`
|
||||
* Pawn: `uncrustify`
|
||||
* Perl: `perl -c`, `perl-critic`, `perltidy`
|
||||
* Perl6: `perl6 -c`
|
||||
* PHP: `langserver`, `phan`, `php -l`, `phpcs`, `phpmd`, `phpstan`, `phpcbf`, `php-cs-fixer`, `psalm`!!
|
||||
* PO: `alex`!!, `msgfmt`, `proselint`, `write-good`
|
||||
* Pod: `alex`!!, `proselint`, `write-good`
|
||||
* Pony: `ponyc`
|
||||
* Prolog: `swipl`
|
||||
* proto: `protoc-gen-lint`
|
||||
* Pug: `pug-lint`
|
||||
* Puppet: `languageserver`, `puppet`, `puppet-lint`
|
||||
* Python: `autopep8`, `bandit`, `black`, `flake8`, `isort`, `mypy`, `prospector`, `pycodestyle`, `pydocstyle`, `pyls`, `pyre`, `pylint`!!, `vulture`!!, `yapf`
|
||||
* QML: `qmlfmt`, `qmllint`
|
||||
* R: `lintr`
|
||||
* Racket: `raco`
|
||||
* ReasonML: `merlin`, `ols`, `refmt`
|
||||
* reStructuredText: `alex`!!, `proselint`, `redpen`, `rstcheck`, `textlint`, `vale`, `write-good`
|
||||
* Re:VIEW: `redpen`
|
||||
* RPM spec: `rpmlint`
|
||||
* Ruby: `brakeman`, `rails_best_practices`!!, `reek`, `rubocop`, `ruby`, `rufo`, `solargraph`, `standardrb`
|
||||
* Rust: `cargo`!!, `rls`, `rustc` (see |ale-integration-rust|), `rustfmt`
|
||||
* Sass: `sass-lint`, `stylelint`
|
||||
* SCSS: `prettier`, `sass-lint`, `scss-lint`, `stylelint`
|
||||
* Scala: `fsc`, `sbtserver`, `scalac`, `scalafmt`, `scalastyle`
|
||||
* Slim: `slim-lint`
|
||||
* SML: `smlnj`
|
||||
* Solidity: `solhint`, `solium`
|
||||
* Stylus: `stylelint`
|
||||
* SugarSS: `stylelint`
|
||||
* SQL: `sqlint`, `sqlfmt`
|
||||
* Swift: `swiftlint`, `swiftformat`
|
||||
* Tcl: `nagelfar`!!
|
||||
* Terraform: `fmt`, `tflint`
|
||||
* Texinfo: `alex`!!, `proselint`, `write-good`
|
||||
* Text^: `alex`!!, `proselint`, `redpen`, `textlint`, `vale`, `write-good`
|
||||
* Thrift: `thrift`
|
||||
* TypeScript: `eslint`, `prettier`, `tslint`, `tsserver`, `typecheck`
|
||||
* VALA: `uncrustify`
|
||||
* Verilog: `iverilog`, `verilator`, `vlog`, `xvlog`
|
||||
* VHDL: `ghdl`, `vcom`, `xvhdl`
|
||||
* Vim: `vint`
|
||||
* Vim help^: `alex`!!, `proselint`, `write-good`
|
||||
* Vue: `prettier`, `vls`
|
||||
* XHTML: `alex`!!, `proselint`, `write-good`
|
||||
* XML: `xmllint`
|
||||
* YAML: `prettier`, `swaglint`, `yamllint`
|
||||
* YANG: `yang-lsp`
|
||||
ALE supports a wide variety of languages and tools. See |ale-supported-list|
|
||||
for the full list.
|
||||
|
||||
===============================================================================
|
||||
3. Linting *ale-lint*
|
||||
|
@ -2499,7 +2379,7 @@ ALELast *ALELast*
|
|||
`-style` and `-nostyle` allow you to jump respectively to style error or
|
||||
warning and to not style error or warning. They also are mutually
|
||||
exclusive and nostyle has priority over style.
|
||||
|
||||
|
||||
Flags can be combined to create create custom jumping. Thus you can use
|
||||
":ALENext -wrap -error -nosyle" to jump to the next error which is not a
|
||||
style error while going back to the begining of the file if needed.
|
||||
|
|
472
supported-tools.md
Normal file
472
supported-tools.md
Normal file
|
@ -0,0 +1,472 @@
|
|||
# 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.
|
||||
|
||||
<!--
|
||||
Keep the table rows sorted alphabetically by the language name,
|
||||
and the tools in the tools column sorted alphabetically by the tool
|
||||
name. That seems to be the fairest way to arrange this table.
|
||||
|
||||
Remember to also update doc/ale.txt, which has a similar list with different
|
||||
formatting.
|
||||
-->
|
||||
|
||||
**Legend**
|
||||
|
||||
| Key | Definition |
|
||||
| ------------- | -------------------------------- |
|
||||
| :floppy_disk: | Only checked when saved to disk |
|
||||
| :warning: | Disabled by default |
|
||||
|
||||
---
|
||||
|
||||
* Ada
|
||||
* [gcc](https://gcc.gnu.org)
|
||||
* Ansible
|
||||
* [ansible-lint](https://github.com/willthames/ansible-lint)
|
||||
* API Blueprint
|
||||
* [drafter](https://github.com/apiaryio/drafter)
|
||||
* AsciiDoc
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [proselint](http://proselint.com/)
|
||||
* [redpen](http://redpen.cc/)
|
||||
* [textlint](https://textlint.github.io/)
|
||||
* [vale](https://github.com/ValeLint/vale)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* ASM
|
||||
* [gcc](https://gcc.gnu.org)
|
||||
* Awk
|
||||
* [gawk](https://www.gnu.org/software/gawk/)
|
||||
* Bash
|
||||
* [language-server](https://github.com/mads-hartmann/bash-language-server)
|
||||
* shell [-n flag](https://www.gnu.org/software/bash/manual/bash.html#index-set)
|
||||
* [shellcheck](https://www.shellcheck.net/)
|
||||
* [shfmt](https://github.com/mvdan/sh)
|
||||
* BibTeX
|
||||
* [bibclean](http://ftp.math.utah.edu/pub/bibclean/)
|
||||
* Bourne Shell
|
||||
* shell [-n flag](http://linux.die.net/man/1/sh)
|
||||
* [shellcheck](https://www.shellcheck.net/)
|
||||
* [shfmt](https://github.com/mvdan/sh)
|
||||
* C
|
||||
* [ccls](https://github.com/MaskRay/ccls)
|
||||
* [clang](http://clang.llvm.org/)
|
||||
* [clangd](https://clang.llvm.org/extra/clangd.html)
|
||||
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
|
||||
* [clangtidy](http://clang.llvm.org/extra/clang-tidy/) :floppy_disk:
|
||||
* [cppcheck](http://cppcheck.sourceforge.net)
|
||||
* [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint)
|
||||
* [cquery](https://github.com/cquery-project/cquery)
|
||||
* [flawfinder](https://www.dwheeler.com/flawfinder/)
|
||||
* [gcc](https://gcc.gnu.org/)
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* C#
|
||||
* [mcs](http://www.mono-project.com/docs/about-mono/languages/csharp/) see:`help ale-cs-mcs` for details
|
||||
* [mcsc](http://www.mono-project.com/docs/about-mono/languages/csharp/) :floppy_disk: see:`help ale-cs-mcsc` for details and configuration
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* C++ (filetype cpp)
|
||||
* [ccls](https://github.com/MaskRay/ccls)
|
||||
* [clang](http://clang.llvm.org/)
|
||||
* [clangcheck](http://clang.llvm.org/docs/ClangCheck.html) :floppy_disk:
|
||||
* [clangd](https://clang.llvm.org/extra/clangd.html)
|
||||
* [clang-format](https://clang.llvm.org/docs/ClangFormat.html)
|
||||
* [clangtidy](http://clang.llvm.org/extra/clang-tidy/) :floppy_disk:
|
||||
* [clazy](https://github.com/KDE/clazy) :floppy_disk:
|
||||
* [cppcheck](http://cppcheck.sourceforge.net)
|
||||
* [cpplint](https://github.com/google/styleguide/tree/gh-pages/cpplint) :floppy_disk:
|
||||
* [cquery](https://github.com/cquery-project/cquery)
|
||||
* [flawfinder](https://www.dwheeler.com/flawfinder/)
|
||||
* [gcc](https://gcc.gnu.org/)
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* Chef
|
||||
* [foodcritic](http://www.foodcritic.io/)
|
||||
* Clojure
|
||||
* [joker](https://github.com/candid82/joker)
|
||||
* CloudFormation
|
||||
* [cfn-python-lint](https://github.com/awslabs/cfn-python-lint)
|
||||
* CMake
|
||||
* [cmake-format](https://github.com/cheshirekow/cmake_format)
|
||||
* [cmakelint](https://github.com/richq/cmake-lint)
|
||||
* CoffeeScript
|
||||
* [coffee](http://coffeescript.org/)
|
||||
* [coffeelint](https://www.npmjs.com/package/coffeelint)
|
||||
* Crystal
|
||||
* [ameba](https://github.com/veelenga/ameba) :floppy_disk:
|
||||
* [crystal](https://crystal-lang.org/) :floppy_disk:
|
||||
* CSS
|
||||
* [csslint](http://csslint.net/)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [stylelint](https://github.com/stylelint/stylelint)
|
||||
* Cucumber
|
||||
* [cucumber](https://cucumber.io/)
|
||||
* CUDA
|
||||
* [nvcc](http://docs.nvidia.com/cuda/cuda-compiler-driver-nvcc/index.html)
|
||||
* Cypher
|
||||
* [cypher-lint](https://github.com/cleishm/libcypher-parser)
|
||||
* Cython (pyrex filetype)
|
||||
* [cython](http://cython.org/)
|
||||
* D
|
||||
* [dls](https://github.com/d-language-server/dls)
|
||||
* [dmd](https://dlang.org/dmd-linux.html)
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* Dafny
|
||||
* [dafny](https://rise4fun.com/Dafny) :floppy_disk:
|
||||
* Dart
|
||||
* [dartanalyzer](https://github.com/dart-lang/sdk/tree/master/pkg/analyzer_cli) :floppy_disk:
|
||||
* [dartfmt](https://github.com/dart-lang/sdk/tree/master/utils/dartfmt)
|
||||
* [language_server](https://github.com/natebosch/dart_language_server)
|
||||
* Dockerfile
|
||||
* [dockerfile_lint](https://github.com/projectatomic/dockerfile_lint)
|
||||
* [hadolint](https://github.com/hadolint/hadolint)
|
||||
* Elixir
|
||||
* [credo](https://github.com/rrrene/credo)
|
||||
* [dialyxir](https://github.com/jeremyjh/dialyxir)
|
||||
* [dogma](https://github.com/lpil/dogma)
|
||||
* [elixir-ls](https://github.com/JakeBecker/elixir-ls)
|
||||
* [mix](https://hexdocs.pm/mix/Mix.html) :warning: :floppy_disk:
|
||||
* Elm
|
||||
* [elm-format](https://github.com/avh4/elm-format)
|
||||
* [elm-make](https://github.com/elm-lang/elm-make)
|
||||
* Erb
|
||||
* [erb](https://apidock.com/ruby/ERB)
|
||||
* [erubi](https://github.com/jeremyevans/erubi)
|
||||
* [erubis](https://github.com/kwatch/erubis)
|
||||
* [ruumba](https://github.com/ericqweinstein/ruumba)
|
||||
* Erlang
|
||||
* [erlc](http://erlang.org/doc/man/erlc.html)
|
||||
* [SyntaxErl](https://github.com/ten0s/syntaxerl)
|
||||
* Fish
|
||||
* fish [-n flag](https://linux.die.net/man/1/fish)
|
||||
* Fortran
|
||||
* [gcc](https://gcc.gnu.org/)
|
||||
* [language_server](https://github.com/hansec/fortran-language-server)
|
||||
* Fountain
|
||||
* [proselint](http://proselint.com/)
|
||||
* FusionScript
|
||||
* [fusion-lint](https://github.com/RyanSquared/fusionscript)
|
||||
* Git Commit Messages
|
||||
* [gitlint](https://github.com/jorisroovers/gitlint)
|
||||
* GLSL
|
||||
* [glslang](https://github.com/KhronosGroup/glslang)
|
||||
* [glslls](https://github.com/svenstaro/glsl-language-server)
|
||||
* Go
|
||||
* [bingo](https://github.com/saibing/bingo) :warning:
|
||||
* [go build](https://golang.org/cmd/go/) :warning: :floppy_disk:
|
||||
* [gofmt](https://golang.org/cmd/gofmt/)
|
||||
* [goimports](https://godoc.org/golang.org/x/tools/cmd/goimports) :warning:
|
||||
* [golangci-lint](https://github.com/golangci/golangci-lint) :warning: :floppy_disk:
|
||||
* [golangserver](https://github.com/sourcegraph/go-langserver) :warning:
|
||||
* [golint](https://godoc.org/github.com/golang/lint)
|
||||
* [gometalinter](https://github.com/alecthomas/gometalinter) :warning: :floppy_disk:
|
||||
* [go mod](https://golang.org/cmd/go/) :warning: :floppy_disk:
|
||||
* [gosimple](https://github.com/dominikh/go-tools/tree/master/cmd/gosimple) :warning: :floppy_disk:
|
||||
* [gotype](https://godoc.org/golang.org/x/tools/cmd/gotype) :warning: :floppy_disk:
|
||||
* [go vet](https://golang.org/cmd/vet/) :floppy_disk:
|
||||
* [staticcheck](https://github.com/dominikh/go-tools/tree/master/cmd/staticcheck) :warning: :floppy_disk:
|
||||
* GraphQL
|
||||
* [eslint](http://eslint.org/)
|
||||
* [gqlint](https://github.com/happylinks/gqlint)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* Hack
|
||||
* [hack](http://hacklang.org/)
|
||||
* [hackfmt](https://github.com/facebook/hhvm/tree/master/hphp/hack/hackfmt) :warning:
|
||||
* [hhast](https://github.com/hhvm/hhast) :warning: (see `:help ale-integration-hack`)
|
||||
* Haml
|
||||
* [haml-lint](https://github.com/brigade/haml-lint)
|
||||
* Handlebars
|
||||
* [ember-template-lint](https://github.com/rwjblue/ember-template-lint)
|
||||
* Haskell
|
||||
* [brittany](https://github.com/lspitzner/brittany)
|
||||
* [cabal-ghc](https://www.haskell.org/cabal/)
|
||||
* [ghc](https://www.haskell.org/ghc/)
|
||||
* [ghc-mod](https://github.com/DanielG/ghc-mod)
|
||||
* [hdevtools](https://hackage.haskell.org/package/hdevtools)
|
||||
* [hfmt](https://github.com/danstiner/hfmt)
|
||||
* [hie](https://github.com/haskell/haskell-ide-engine)
|
||||
* [hlint](https://hackage.haskell.org/package/hlint)
|
||||
* [stack-build](https://haskellstack.org/) :floppy_disk:
|
||||
* [stack-ghc](https://haskellstack.org/)
|
||||
* [stylish-haskell](https://github.com/jaspervdj/stylish-haskell)
|
||||
* HCL
|
||||
* [terraform-fmt](https://github.com/hashicorp/terraform)
|
||||
* HTML
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [HTMLHint](http://htmlhint.com/)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [proselint](http://proselint.com/)
|
||||
* [tidy](http://www.html-tidy.org/)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* Idris
|
||||
* [idris](http://www.idris-lang.org/)
|
||||
* ISPC
|
||||
* [ispc](https://ispc.github.io/) :floppy_disk:
|
||||
* Java
|
||||
* [checkstyle](http://checkstyle.sourceforge.net)
|
||||
* [google-java-format](https://github.com/google/google-java-format)
|
||||
* [javac](http://www.oracle.com/technetwork/java/javase/downloads/index.html)
|
||||
* [javalsp](https://github.com/georgewfraser/vscode-javac)
|
||||
* [PMD](https://pmd.github.io/)
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* JavaScript
|
||||
* [eslint](http://eslint.org/)
|
||||
* [flow](https://flowtype.org/)
|
||||
* [jscs](http://jscs.info/)
|
||||
* [jshint](http://jshint.com/)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [prettier-eslint](https://github.com/prettier/prettier-eslint-cli)
|
||||
* [prettier-standard](https://github.com/sheerun/prettier-standard)
|
||||
* [standard](http://standardjs.com/)
|
||||
* [tsserver](https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29)
|
||||
* [xo](https://github.com/sindresorhus/xo)
|
||||
* JSON
|
||||
* [fixjson](https://github.com/rhysd/fixjson)
|
||||
* [jq](https://stedolan.github.io/jq/)
|
||||
* [jsonlint](http://zaa.ch/jsonlint/)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* Julia
|
||||
* [languageserver](https://github.com/JuliaEditorSupport/LanguageServer.jl)
|
||||
* Kotlin
|
||||
* [kotlinc](https://kotlinlang.org) :floppy_disk:
|
||||
* [ktlint](https://ktlint.github.io) :floppy_disk:
|
||||
* [languageserver](https://github.com/fwcd/KotlinLanguageServer) see `:help ale-integration-kotlin` for configuration instructions
|
||||
* LaTeX
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [chktex](http://www.nongnu.org/chktex/)
|
||||
* [lacheck](https://www.ctan.org/pkg/lacheck)
|
||||
* [proselint](http://proselint.com/)
|
||||
* [redpen](http://redpen.cc/)
|
||||
* [textlint](https://textlint.github.io/)
|
||||
* [vale](https://github.com/ValeLint/vale)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* Less
|
||||
* [lessc](https://www.npmjs.com/package/less)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [stylelint](https://github.com/stylelint/stylelint)
|
||||
* LLVM
|
||||
* [llc](https://llvm.org/docs/CommandGuide/llc.html)
|
||||
* Lua
|
||||
* [luac](https://www.lua.org/manual/5.1/luac.html)
|
||||
* [luacheck](https://github.com/mpeterv/luacheck)
|
||||
* Mail
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [proselint](http://proselint.com/)
|
||||
* [vale](https://github.com/ValeLint/vale)
|
||||
* Make
|
||||
* [checkmake](https://github.com/mrtazz/checkmake)
|
||||
* Markdown
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [markdownlint](https://github.com/DavidAnson/markdownlint) :floppy_disk:
|
||||
* [mdl](https://github.com/mivok/markdownlint)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [proselint](http://proselint.com/)
|
||||
* [redpen](http://redpen.cc/)
|
||||
* [remark-lint](https://github.com/wooorm/remark-lint)
|
||||
* [textlint](https://textlint.github.io/)
|
||||
* [vale](https://github.com/ValeLint/vale)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* MATLAB
|
||||
* [mlint](https://www.mathworks.com/help/matlab/ref/mlint.html)
|
||||
* Mercury
|
||||
* [mmc](http://mercurylang.org) :floppy_disk:
|
||||
* NASM
|
||||
* [nasm](https://www.nasm.us/) :floppy_disk:
|
||||
* Nim
|
||||
* [nim check](https://nim-lang.org/docs/nimc.html) :floppy_disk:
|
||||
* nix
|
||||
* [nix-instantiate](http://nixos.org/nix/manual/#sec-nix-instantiate)
|
||||
* nroff
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [proselint](http://proselint.com/)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* Objective-C
|
||||
* [ccls](https://github.com/MaskRay/ccls)
|
||||
* [clang](http://clang.llvm.org/)
|
||||
* [clangd](https://clang.llvm.org/extra/clangd.html)
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* Objective-C++
|
||||
* [clang](http://clang.llvm.org/)
|
||||
* [clangd](https://clang.llvm.org/extra/clangd.html)
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* OCaml
|
||||
* [merlin](https://github.com/the-lambda-church/merlin) see `:help ale-ocaml-merlin` for configuration instructions
|
||||
* [ocamlformat](https://github.com/ocaml-ppx/ocamlformat)
|
||||
* [ols](https://github.com/freebroccolo/ocaml-language-server)
|
||||
* Pawn
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* Perl
|
||||
* [perl -c](https://perl.org/) :warning:
|
||||
* [perl-critic](https://metacpan.org/pod/Perl::Critic)
|
||||
* [perltidy](https://metacpan.org/pod/distribution/Perl-Tidy/bin/perltidy) :warning:
|
||||
* Perl6
|
||||
* [perl6 -c](https://perl6.org) :warning:
|
||||
* PHP
|
||||
* [langserver](https://github.com/felixfbecker/php-language-server)
|
||||
* [phan](https://github.com/phan/phan) see `:help ale-php-phan` to instructions
|
||||
* [phpcbf](https://github.com/squizlabs/PHP_CodeSniffer)
|
||||
* [phpcs](https://github.com/squizlabs/PHP_CodeSniffer)
|
||||
* [php-cs-fixer](http://cs.sensiolabs.org/)
|
||||
* [php -l](https://secure.php.net/)
|
||||
* [phpmd](https://phpmd.org)
|
||||
* [phpstan](https://github.com/phpstan/phpstan)
|
||||
* [psalm](https://getpsalm.org) :floppy_disk:
|
||||
* PO
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [msgfmt](https://www.gnu.org/software/gettext/manual/html_node/msgfmt-Invocation.html)
|
||||
* [proselint](http://proselint.com/)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* Pod
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [proselint](http://proselint.com/)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* Pony
|
||||
* [ponyc](https://github.com/ponylang/ponyc)
|
||||
* Prolog
|
||||
* [swipl](https://github.com/SWI-Prolog/swipl-devel)
|
||||
* proto
|
||||
* [protoc-gen-lint](https://github.com/ckaznocha/protoc-gen-lint)
|
||||
* Pug
|
||||
* [pug-lint](https://github.com/pugjs/pug-lint)
|
||||
* Puppet
|
||||
* [languageserver](https://github.com/lingua-pupuli/puppet-editor-services)
|
||||
* [puppet](https://puppet.com)
|
||||
* [puppet-lint](https://puppet-lint.com)
|
||||
* Python
|
||||
* [autopep8](https://github.com/hhatto/autopep8) :warning:
|
||||
* [bandit](https://github.com/PyCQA/bandit) :warning:
|
||||
* [black](https://github.com/ambv/black) :warning:
|
||||
* [flake8](http://flake8.pycqa.org/en/latest/)
|
||||
* [isort](https://github.com/timothycrosley/isort) :warning:
|
||||
* [mypy](http://mypy-lang.org/)
|
||||
* [prospector](https://github.com/PyCQA/prospector) :warning:
|
||||
* [pycodestyle](https://github.com/PyCQA/pycodestyle) :warning:
|
||||
* [pydocstyle](https://www.pydocstyle.org/) :warning:
|
||||
* [pylint](https://www.pylint.org/) :floppy_disk:
|
||||
* [pyls](https://github.com/palantir/python-language-server) :warning:
|
||||
* [pyre](https://github.com/facebook/pyre-check) :warning:
|
||||
* [vulture](https://github.com/jendrikseipp/vulture) :warning: :floppy_disk:
|
||||
* [yapf](https://github.com/google/yapf) :warning:
|
||||
* QML
|
||||
* [qmlfmt](https://github.com/jesperhh/qmlfmt)
|
||||
* [qmllint](https://github.com/qt/qtdeclarative/tree/5.11/tools/qmllint)
|
||||
* R
|
||||
* [lintr](https://github.com/jimhester/lintr)
|
||||
* Racket
|
||||
* [raco](https://docs.racket-lang.org/raco/)
|
||||
* ReasonML
|
||||
* [merlin](https://github.com/the-lambda-church/merlin) see `:help ale-reasonml-ols` for configuration instructions
|
||||
* [ols](https://github.com/freebroccolo/ocaml-language-server)
|
||||
* [refmt](https://github.com/reasonml/reason-cli)
|
||||
* reStructuredText
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [proselint](http://proselint.com/)
|
||||
* [redpen](http://redpen.cc/)
|
||||
* [rstcheck](https://github.com/myint/rstcheck)
|
||||
* [textlint](https://textlint.github.io/)
|
||||
* [vale](https://github.com/ValeLint/vale)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* Re:VIEW
|
||||
* [redpen](http://redpen.cc/)
|
||||
* RPM spec
|
||||
* [rpmlint](https://github.com/rpm-software-management/rpmlint) :warning: (see `:help ale-integration-spec`)
|
||||
* Ruby
|
||||
* [brakeman](http://brakemanscanner.org/) :floppy_disk:
|
||||
* [rails_best_practices](https://github.com/flyerhzm/rails_best_practices) :floppy_disk:
|
||||
* [reek](https://github.com/troessner/reek)
|
||||
* [rubocop](https://github.com/bbatsov/rubocop)
|
||||
* [ruby](https://www.ruby-lang.org)
|
||||
* [rufo](https://github.com/ruby-formatter/rufo)
|
||||
* [solargraph](https://solargraph.org)
|
||||
* [standardrb](https://github.com/testdouble/standard)
|
||||
* Rust
|
||||
* [cargo](https://github.com/rust-lang/cargo) :floppy_disk: (see `:help ale-integration-rust` for configuration instructions)
|
||||
* [rls](https://github.com/rust-lang-nursery/rls) :warning:
|
||||
* [rustc](https://www.rust-lang.org/) :warning:
|
||||
* [rustfmt](https://github.com/rust-lang-nursery/rustfmt)
|
||||
* Sass
|
||||
* [sass-lint](https://www.npmjs.com/package/sass-lint)
|
||||
* [stylelint](https://github.com/stylelint/stylelint)
|
||||
* Scala
|
||||
* [fsc](https://www.scala-lang.org/old/sites/default/files/linuxsoft_archives/docu/files/tools/fsc.html)
|
||||
* [sbtserver](https://www.scala-sbt.org/1.x/docs/sbt-server.html)
|
||||
* [scalac](http://scala-lang.org)
|
||||
* [scalafmt](https://scalameta.org/scalafmt/)
|
||||
* [scalastyle](http://www.scalastyle.org)
|
||||
* SCSS
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [sass-lint](https://www.npmjs.com/package/sass-lint)
|
||||
* [scss-lint](https://github.com/brigade/scss-lint)
|
||||
* [stylelint](https://github.com/stylelint/stylelint)
|
||||
* Slim
|
||||
* [slim-lint](https://github.com/sds/slim-lint)
|
||||
* SML
|
||||
* [smlnj](http://www.smlnj.org/)
|
||||
* Solidity
|
||||
* [solhint](https://github.com/protofire/solhint)
|
||||
* [solium](https://github.com/duaraghav8/Solium)
|
||||
* SQL
|
||||
* [sqlfmt](https://github.com/jackc/sqlfmt)
|
||||
* [sqlint](https://github.com/purcell/sqlint)
|
||||
* Stylus
|
||||
* [stylelint](https://github.com/stylelint/stylelint)
|
||||
* SugarSS
|
||||
* [stylelint](https://github.com/stylelint/stylelint)
|
||||
* Swift
|
||||
* [swiftformat](https://github.com/nicklockwood/SwiftFormat)
|
||||
* [swiftlint](https://github.com/realm/SwiftLint)
|
||||
* Tcl
|
||||
* [nagelfar](http://nagelfar.sourceforge.net) :floppy_disk:
|
||||
* Terraform
|
||||
* [fmt](https://github.com/hashicorp/terraform)
|
||||
* [tflint](https://github.com/wata727/tflint)
|
||||
* Texinfo
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [proselint](http://proselint.com/)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* Text
|
||||
* [alex](https://github.com/wooorm/alex) :warning: :floppy_disk:
|
||||
* [proselint](http://proselint.com/) :warning:
|
||||
* [redpen](http://redpen.cc/) :warning:
|
||||
* [textlint](https://textlint.github.io/) :warning:
|
||||
* [vale](https://github.com/ValeLint/vale) :warning:
|
||||
* [write-good](https://github.com/btford/write-good) :warning:
|
||||
* Thrift
|
||||
* [thrift](http://thrift.apache.org/)
|
||||
* TypeScript
|
||||
* [eslint](http://eslint.org/)
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [tslint](https://github.com/palantir/tslint)
|
||||
* [tsserver](https://github.com/Microsoft/TypeScript/wiki/Standalone-Server-%28tsserver%29)
|
||||
* typecheck
|
||||
* VALA
|
||||
* [uncrustify](https://github.com/uncrustify/uncrustify)
|
||||
* Verilog
|
||||
* [iverilog](https://github.com/steveicarus/iverilog)
|
||||
* [verilator](http://www.veripool.org/projects/verilator/wiki/Intro)
|
||||
* [vlog](https://www.mentor.com/products/fv/questa/)
|
||||
* [xvlog](https://www.xilinx.com/products/design-tools/vivado.html)
|
||||
* VHDL
|
||||
* [ghdl](https://github.com/ghdl/ghdl)
|
||||
* [vcom](https://www.mentor.com/products/fv/questa/)
|
||||
* [xvhdl](https://www.xilinx.com/products/design-tools/vivado.html)
|
||||
* Vim
|
||||
* [vint](https://github.com/Kuniwak/vint)
|
||||
* Vim help
|
||||
* [alex](https://github.com/wooorm/alex) :warning: :floppy_disk:
|
||||
* [proselint](http://proselint.com/) :warning:
|
||||
* [write-good](https://github.com/btford/write-good) :warning:
|
||||
* Vue
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [vls](https://github.com/vuejs/vetur/tree/master/server)
|
||||
* XHTML
|
||||
* [alex](https://github.com/wooorm/alex) :floppy_disk:
|
||||
* [proselint](http://proselint.com/)
|
||||
* [write-good](https://github.com/btford/write-good)
|
||||
* XML
|
||||
* [xmllint](http://xmlsoft.org/xmllint.html)
|
||||
* YAML
|
||||
* [prettier](https://github.com/prettier/prettier)
|
||||
* [swaglint](https://github.com/byCedric/swaglint)
|
||||
* [yamllint](https://yamllint.readthedocs.io/)
|
||||
* YANG
|
||||
* [yang-lsp](https://github.com/theia-ide/yang-lsp)
|
|
@ -6,66 +6,56 @@ set -u
|
|||
# This script compares the table of supported tools in both the README file
|
||||
# and the doc/ale.txt file, so we can complain if they don't match up.
|
||||
|
||||
# Find the start and end lines for the help section.
|
||||
ale_help_start_line="$( \
|
||||
grep -m1 -n '^[0-9][0-9]*\. *Supported Languages' doc/ale.txt \
|
||||
| sed 's/\([0-9]*\).*/\1/' \
|
||||
)"
|
||||
ale_help_section_size="$( \
|
||||
tail -n +"$ale_help_start_line" doc/ale.txt \
|
||||
| grep -m1 -n '================' \
|
||||
| sed 's/\([0-9]*\).*/\1/' \
|
||||
)"
|
||||
# -- shellcheck complains about expr, but it works better.
|
||||
# shellcheck disable=SC2003
|
||||
ale_help_end_line="$(expr "$ale_help_start_line" + "$ale_help_section_size")"
|
||||
|
||||
# Find the start and end lines for the same section in the README.
|
||||
readme_start_line="$( \
|
||||
grep -m1 -n '^.*[0-9][0-9]*\. *Supported Languages' README.md \
|
||||
| sed 's/\([0-9]*\).*/\1/' \
|
||||
)"
|
||||
readme_section_size="$( \
|
||||
tail -n +"$readme_start_line" README.md \
|
||||
| grep -m1 -n '^##.*Usage' \
|
||||
| sed 's/\([0-9]*\).*/\1/' \
|
||||
)"
|
||||
# shellcheck disable=SC2003
|
||||
readme_end_line="$(expr "$readme_start_line" + "$readme_section_size")"
|
||||
|
||||
doc_file="$(mktemp -t doc.XXXXXXXX)"
|
||||
doc_sorted_file="$(mktemp -t doc-sorted.XXXXXXXX)"
|
||||
readme_file="$(mktemp -t readme.XXXXXXXX)"
|
||||
|
||||
sed -n "$ale_help_start_line,$ale_help_end_line"p doc/ale.txt \
|
||||
| grep '\* .*: ' \
|
||||
| sed 's/^*//' \
|
||||
| sed 's/[`!^]//g;s/([^)]*)//g' \
|
||||
| sed 's/ *\([,:]\)/\1/g' \
|
||||
| sed 's/ */ /g' \
|
||||
| sed 's/^ *//;s/ *$//' \
|
||||
| sed 's/^/ /' \
|
||||
> "$doc_file"
|
||||
while read -r; do
|
||||
if [[ "$REPLY" =~ ^! ]]; then
|
||||
language="${REPLY/!/}"
|
||||
else
|
||||
# shellcheck disable=SC2001
|
||||
echo "$language - $REPLY"
|
||||
fi
|
||||
done < <(
|
||||
grep '^\*\|^ *\*' doc/ale-supported-languages-and-tools.txt \
|
||||
| sed -e '1,2d' \
|
||||
| sed 's/^\* */!/' \
|
||||
| sed 's/^ *\* *\|!!\|\^\|(.*)\|`//g' \
|
||||
| sed 's/ *$//'
|
||||
) > "$doc_file"
|
||||
|
||||
sed -n "$readme_start_line,$readme_end_line"p README.md \
|
||||
| grep '| .* |' \
|
||||
| sed '/^| Language/d;/^| ---/d' \
|
||||
| sed 's/^|//' \
|
||||
| sed 's/ \{0,1\}|/:/' \
|
||||
| sed 's/[`!^|]//g;s/([^)]*)//g' \
|
||||
| sed 's/\[//g;s/\]//g' \
|
||||
| sed 's/see[^,]*//g' \
|
||||
| sed 's/ *\([,:]\)/\1/g' \
|
||||
| sed 's/ */ /g' \
|
||||
| sed 's/^ *//;s/ *$//' \
|
||||
| sed 's/^/ /' \
|
||||
| sed 's/ *-n flag//g' \
|
||||
> "$readme_file"
|
||||
while read -r; do
|
||||
if [[ "$REPLY" =~ ^! ]]; then
|
||||
language="${REPLY/!/}"
|
||||
else
|
||||
# shellcheck disable=SC2001
|
||||
echo "$language - $REPLY"
|
||||
fi
|
||||
done < <(
|
||||
grep '^\*\|^ *\*' supported-tools.md \
|
||||
| sed 's/^\* */!/' \
|
||||
| sed 's/^ *\* *\|:floppy_disk:\|:warning:\|(.*)\|\[\|\].*\|-n flag//g' \
|
||||
| sed 's/ *$//'
|
||||
) > "$readme_file"
|
||||
|
||||
exit_code=0
|
||||
|
||||
# Sort the tools ignoring case, and complain when things are out of order.
|
||||
sort -f -k1,2 "$doc_file" -o "$doc_sorted_file"
|
||||
|
||||
diff -U0 "$doc_sorted_file" "$doc_file" || exit_code=$?
|
||||
|
||||
if ((exit_code)); then
|
||||
echo
|
||||
echo "The supported tools list isn't sorted properly"
|
||||
echo
|
||||
fi
|
||||
|
||||
diff -U0 "$readme_file" "$doc_file" || exit_code=$?
|
||||
|
||||
rm "$doc_file"
|
||||
rm "$doc_sorted_file"
|
||||
rm "$readme_file"
|
||||
|
||||
exit "$exit_code"
|
||||
|
|
Reference in a new issue