diff --git a/README.md b/README.md index 736d8f95..6435638e 100644 --- a/README.md +++ b/README.md @@ -51,60 +51,64 @@ Here are some notable Super-linter features: Super-linter supports the following tools: -| _Language_ | _Linter_ | -| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Ansible** | [ansible-lint](https://github.com/ansible/ansible-lint) | -| **AWS CloudFormation templates** | [cfn-lint](https://github.com/aws-cloudformation/cfn-python-lint/) | -| **Azure Resource Manager (ARM)** | [arm-ttk](https://github.com/azure/arm-ttk) | -| **C++** | [cpp-lint](https://github.com/cpplint/cpplint) / [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) | -| **C#** | [dotnet format](https://github.com/dotnet/format) / [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) | -| **CSS** | [stylelint](https://stylelint.io/) | -| **Clojure** | [clj-kondo](https://github.com/borkdude/clj-kondo) | -| **CoffeeScript** | [coffeelint](https://coffeelint.github.io/) | -| **Copy/paste detection** | [jscpd](https://github.com/kucherenko/jscpd) | -| **Dart** | [dartanalyzer](https://dart.dev/guides/language/analysis-options) | -| **Dockerfile** | [hadolint](https://github.com/hadolint/hadolint) | -| **EditorConfig** | [editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker) | -| **ENV** | [dotenv-linter](https://github.com/dotenv-linter/dotenv-linter) | -| **Gherkin** | [gherkin-lint](https://github.com/vsiakka/gherkin-lint) | -| **GitHub Actions** | [actionlint](https://github.com/rhysd/actionlint) | -| **Golang** | [golangci-lint](https://github.com/golangci/golangci-lint) | -| **GoReleaser** | [GoReleaser](https://github.com/goreleaser/goreleaser) | -| **Groovy** | [npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint) | -| **HTML** | [HTMLHint](https://github.com/htmlhint/HTMLHint) | -| **Java** | [checkstyle](https://checkstyle.org) / [google-java-format](https://github.com/google/google-java-format) | -| **JavaScript** | [ESLint](https://eslint.org/) / [standard js](https://standardjs.com/) | -| **JSON** | [eslint-plugin-json](https://www.npmjs.com/package/eslint-plugin-json) | -| **JSONC** | [eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc) | -| Infrastructure as code | [Checkov](https://www.checkov.io/) | -| **Kubernetes** | [kubeconform](https://github.com/yannh/kubeconform) | -| **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) | -| **LaTeX** | [ChkTex](https://www.nongnu.org/chktex/) | -| **Lua** | [luacheck](https://github.com/luarocks/luacheck) | -| **Markdown** | [markdownlint](https://github.com/igorshubovych/markdownlint-cli#readme) | -| **Natural language** | [textlint](https://textlint.github.io/) | -| **OpenAPI** | [spectral](https://github.com/stoplightio/spectral) | -| **Perl** | [perlcritic](https://metacpan.org/pod/Perl::Critic) | -| **PHP** | [PHP built-in linter](https://www.php.net/manual/en/features.commandline.options.php) / [PHP CodeSniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer) / [PHPStan](https://phpstan.org/) / [Psalm](https://psalm.dev/) | -| **PowerShell** | [PSScriptAnalyzer](https://github.com/PowerShell/Psscriptanalyzer) | -| **Protocol Buffers** | [protolint](https://github.com/yoheimuta/protolint) | -| **Python3** | [pylint](https://pylint.pycqa.org/) / [flake8](https://flake8.pycqa.org/en/latest/) / [black](https://github.com/psf/black) / [isort](https://pypi.org/project/isort/) / [ruff](https://github.com/astral-sh/ruff) | -| **R** | [lintr](https://github.com/jimhester/lintr) | -| **Raku** | [Raku](https://raku.org) | -| **Renovate** | [renovate-config-validator](https://docs.renovatebot.com/config-validation/) | -| **Ruby** | [RuboCop](https://github.com/rubocop-hq/rubocop) | -| **Rust** | [Rustfmt](https://github.com/rust-lang/rustfmt) / [Clippy](https://github.com/rust-lang/rust-clippy) | -| **Scala** | [scalafmt](https://github.com/scalameta/scalafmt) | -| **Secrets** | [GitLeaks](https://github.com/zricethezav/gitleaks) | -| **Shell** | [ShellCheck](https://github.com/koalaman/shellcheck) / `executable bit check` / [shfmt](https://github.com/mvdan/sh) | -| **Snakemake** | [snakefmt](https://github.com/snakemake/snakefmt/) / [snakemake --lint](https://snakemake.readthedocs.io/en/stable/snakefiles/writing_snakefiles.html#best-practices) | -| **SQL** | [sqlfluff](https://github.com/sqlfluff/sqlfluff) | -| **Tekton** | [tekton-lint](https://github.com/IBM/tekton-lint) | -| **Terraform** | [fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) / [tflint](https://github.com/terraform-linters/tflint) / [terrascan](https://github.com/accurics/terrascan) | -| **Terragrunt** | [terragrunt](https://github.com/gruntwork-io/terragrunt) | -| **TypeScript** | [ESLint](https://eslint.org/) / [standard js](https://standardjs.com/) | -| **XML** | [LibXML](http://xmlsoft.org/) | -| **YAML** | [YamlLint](https://github.com/adrienverge/yamllint) | +| Language | Linters | Formatters | +| -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| **Ansible** | [ansible-lint](https://github.com/ansible/ansible-lint) | See YAML and Python formatters | +| **Amazon States Language** | [ASL Validator](https://github.com/ChristopheBougere/asl-validator) | See JSON formatters | +| **AWS CloudFormation templates** | [AWS CloudFormation Linter (cfn-lint)](https://github.com/aws-cloudformation/cfn-lint), [Checkov](https://www.checkov.io/) | See YAML formatters | +| **Azure Resource Manager (ARM)** | [Azure Resource Manager Template Toolkit (arm-ttk)](https://github.com/azure/arm-ttk), [Checkov](https://www.checkov.io/) | See JSON formatters | +| **C**, **C++++** | [cpp-lint](https://github.com/cpplint/cpplint) | [clang-format](https://clang.llvm.org/docs/ClangFormatStyleOptions.html) | +| **C#** | | [dotnet format whitespace command](https://github.com/dotnet/format) | +| **CSS**, **SCSS**, **Sass** | [stylelint](https://stylelint.io/) | [Prettier](https://prettier.io/) | +| **Clojure** | [clj-kondo](https://github.com/borkdude/clj-kondo) | | +| **CoffeeScript** | [coffeelint](https://coffeelint.github.io/) | | +| **Copy/paste detection** | [jscpd](https://github.com/kucherenko/jscpd) | N/A | +| **Dart** | [dart analyze command](https://dart.dev/guides/language/analysis-options) | | +| **Dockerfile** | [Haskell Dockerfile Linter (Hadolint)](https://github.com/hadolint/hadolint), [Checkov](https://www.checkov.io/) | | +| **EditorConfig** | [editorconfig-checker](https://github.com/editorconfig-checker/editorconfig-checker) | | +| **.env** | [dotenv-linter](https://github.com/dotenv-linter/dotenv-linter) | | +| **Gherkin** | [gherkin-lint](https://github.com/vsiakka/gherkin-lint) | | +| **GitHub Actions** | [actionlint](https://github.com/rhysd/actionlint) | See YAML formatters | +| **Golang** | [golangci-lint](https://github.com/golangci/golangci-lint) | | +| **GoReleaser** | [GoReleaser](https://github.com/goreleaser/goreleaser) | See YAML formatters | +| **GraphQL** | | [Prettier](https://prettier.io/) | +| **Groovy** | [npm-groovy-lint](https://github.com/nvuillam/npm-groovy-lint) | | +| **Helm charts** | [Checkov](https://www.checkov.io/) | See YAML formatters | +| **HTML** | [HTMLHint](https://github.com/htmlhint/HTMLHint) | [Prettier](https://prettier.io/) | +| **Java** | [checkstyle](https://checkstyle.org) | [google-java-format](https://github.com/google/google-java-format) | +| **JavaScript** | [ESLint](https://eslint.org/), [standard js](https://standardjs.com/) | [Prettier](https://prettier.io/) | +| **JSON** | [eslint-plugin-jsonc (configured for JSON)](https://www.npmjs.com/package/eslint-plugin-jsonc) (default), [eslint-plugin-json](https://www.npmjs.com/package/eslint-plugin-json) | [Prettier](https://prettier.io/) | +| **JSONC**, **JSON5** | [eslint-plugin-jsonc](https://www.npmjs.com/package/eslint-plugin-jsonc) | | +| **JSX**, **TSX** | [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y), [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) | [Prettier](https://prettier.io/) | +| **Kubernetes** | [kubeconform](https://github.com/yannh/kubeconform), [Checkov](https://www.checkov.io/) | See YAML formatters | +| **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) | | +| **LaTeX** | [ChkTex](https://www.nongnu.org/chktex/) | | +| **Lua** | [luacheck](https://github.com/luarocks/luacheck) | | +| **Markdown** | [markdownlint](https://github.com/igorshubovych/markdownlint-cli) | [Prettier](https://prettier.io/) | +| **Natural language** | [textlint](https://textlint.github.io/) | N/A | +| **OpenAPI** | [spectral](https://github.com/stoplightio/spectral) | See YAML formatters | +| **Perl** | [perlcritic](https://metacpan.org/pod/Perl::Critic) | | +| **PHP** | [PHP built-in linter](https://www.php.net/manual/en/features.commandline.options.php), [PHP CodeSniffer](https://github.com/PHPCSStandards/PHP_CodeSniffer), [PHPStan](https://phpstan.org/), [Psalm](https://psalm.dev/) | | +| **PowerShell** | [PSScriptAnalyzer](https://github.com/PowerShell/Psscriptanalyzer) | | +| **Protocol Buffers (Protobuf)** | [protolint](https://github.com/yoheimuta/protolint) | | +| **Python3** | [pylint](https://pylint.pycqa.org/), [flake8](https://flake8.pycqa.org/en/latest/), [isort](https://pypi.org/project/isort/), [ruff](https://github.com/astral-sh/ruff) | [black](https://github.com/psf/black) | +| **R** | [lintr](https://github.com/jimhester/lintr) | | +| **Raku** | [Raku](https://raku.org) | | +| **Renovate** | [renovate-config-validator](https://docs.renovatebot.com/config-validation/) | N/A | +| **Ruby** | [RuboCop](https://github.com/rubocop-hq/rubocop) | | +| **Rust** | [Rustfmt](https://github.com/rust-lang/rustfmt), [Clippy](https://github.com/rust-lang/rust-clippy) | | +| **Scala** | | [scalafmt](https://github.com/scalameta/scalafmt) | +| **Secrets** | [GitLeaks](https://github.com/zricethezav/gitleaks) | N/A | +| **Shell** | [ShellCheck](https://github.com/koalaman/shellcheck), `executable bit check` | [shfmt](https://github.com/mvdan/sh) | +| **Snakemake** | [snakemake --lint](https://snakemake.readthedocs.io/en/stable/snakefiles/writing_snakefiles.html#best-practices) | [snakefmt](https://github.com/snakemake/snakefmt/) | +| **SQL** | [sqlfluff](https://github.com/sqlfluff/sqlfluff) | | +| **Tekton** | [tekton-lint](https://github.com/IBM/tekton-lint) | See YAML formatters | +| **Terraform** | [tflint](https://github.com/terraform-linters/tflint) , [terrascan](https://github.com/accurics/terrascan), [Checkov](https://www.checkov.io/) | [terraform fmt](https://developer.hashicorp.com/terraform/cli/commands/fmt) | +| **Terragrunt** | [terragrunt](https://github.com/gruntwork-io/terragrunt) | N/A | +| **TypeScript** | [ESLint](https://eslint.org/), [standard js](https://standardjs.com/) | [Prettier](https://prettier.io/) | +| **Vue** | | [Prettier](https://prettier.io/) | +| **XML** | [LibXML](http://xmlsoft.org/) | | +| **YAML** | [YamlLint](https://github.com/adrienverge/yamllint) | [Prettier](https://prettier.io/) | ## Get started