Skip to content

Supported languages and tools#

Codacy uses industry-leading tools to perform automatic static code analysis over 40 supported languages:

  • For programming languages, Codacy provides static analysis as well as code duplication, code complexity, secret detection, dependency vulnerability scanning, and code coverage metrics for key languages.

  • For cloud infrastructure-as-code platforms, Codacy provides static analysis and secret detection to enforce security and compliance best practices.

The sections below group the tools that Codacy uses by scan type. Besides this, Codacy uses cloc to calculate the source lines of code for all supported languages and supports multiple code coverage report formats.

Important

Codacy runs security and other analysis tools when code changes are pushed to your repositories. These tools don't scan code for issues continuously.

Overview#

Language File extensions Supported scans
Apex .cls
.trigger
Static analysis, Secret detection, Duplication
AsyncAPI - Static analysis
AWS CloudFormation - Static analysis, Secret detection
Azure Resource Manager Templates - Static analysis
C .c
.h
Static analysis, Suggested fixes, Secret detection, Dependency vulnerability scanning, Duplication, Complexity, License scanning
C++ .cpp
.hpp
.cc
.cxx
.ino
Static analysis, Secret detection, Dependency vulnerability scanning, Duplication, Complexity, License scanning
C# .cs Static analysis, Suggested fixes, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
CoffeeScript .coffee Static analysis, Duplication
Crystal .cr Static analysis
CSS .css Static analysis
Dart .dart Static analysis, Secret detection, Dependency vulnerability scanning, Duplication, License scanning
Dockerfile .dockerfile Static analysis, Suggested fixes, Secret detection
Elixir .ex
.exs
Static analysis, Secret detection, Dependency vulnerability scanning, Duplication, License scanning
GitHub Actions - Static analysis, Secret detection
Go .go Static analysis, Suggested fixes, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
Groovy .groovy Static analysis, Duplication
Helm - Secret detection
Java .java Static analysis, Suggested fixes, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
JavaScript .js
.jsx
.jsm
.vue
.mjs
Static analysis, Suggested fixes, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
JSON .json Static analysis, Secret detection
JSP .jsp Static analysis, Duplication
Kotlin .kt
.kts
Static analysis, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
Kubernetes - Static analysis, Suggested fixes, Secret detection, Complexity
Less .less Static analysis
Markdown .md
.markdown
.mdown
.mkdn
.mkd
.mdwn
.mkdown
.ron
Static analysis, Suggested fixes
Objective-C .m Static analysis, Duplication, Complexity
OpenAPI - Static analysis
PHP .php Static analysis, Secret detection, Dependency vulnerability scanning, Duplication, Complexity, License scanning
PL/SQL .trg
.prc
.fnc
.pld
.pls
.plh
.plb
.pck
.pks
.pkh
.pkb
.typ
.tyb
.tps
.tpb
Static analysis
PostgreSQL - Static analysis
PowerShell .ps1
.psc1
.psd1
.psm1
.ps1xml
.pssc
.cdxml
.clixml
Static analysis
Python .py Static analysis, Suggested fixes, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
Ruby .rb
.gemspec
.podspec
.jbuilder
.rake
.opal
Static analysis, Suggested fixes, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
Rust .rs
.rlib
Static analysis, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
Sass .scss Static analysis
Scala .scala Static analysis, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
Serverless Framework - Static analysis
Shell .sh
.bash
Static analysis, Secret detection
Swift .swift Static analysis, Secret detection, Dependency vulnerability scanning, Duplication, Complexity, License scanning
SQL .sql Static analysis
Terraform .tf Static analysis, Secret detection
Transact-SQL .tsql Static analysis
TypeScript .ts
.tsx
Static analysis, Suggested fixes, Secret detection, Dependency vulnerability scanning, Malicious packages detection, Duplication, Complexity, License scanning
Unity - Static analysis
Velocity .vm Static analysis
Visual Basic .vb Static analysis, Duplication
Visualforce .component
.page
Static analysis, Duplication
XML .xml
.xsl
.wsdl
.pom
Static analysis, Secret detection
XSL .xsl Static analysis
YAML .yaml
.yml
.env
.env.production
.env.prod
.env.staging
.env.dev
.env.development
Secret detection

Static analysis#

See how Codacy calculates static analysis issues.

Language Tools
Apex PMD, Opengrep 1
AsyncAPI Spectral
AWS CloudFormation Checkov
Azure Resource Manager Templates Checkov
C Clang-Tidy 3, Cppcheck, Flawfinder, Opengrep 1
C++ Clang-Tidy 3, Cppcheck 4, Flawfinder, Opengrep 1
C# Opengrep 1, SonarC#
CoffeeScript CoffeeLint
Crystal Ameba
CSS BiomeJS, Stylelint
Dart dartanalyzer 5
Dockerfile Hadolint, Opengrep 1
Elixir Credo, Opengrep 1
GitHub Actions Opengrep 1
Go aligncheck 3, deadcode 3, Gosec 3, Revive, Opengrep 1, Staticcheck 3, GolangCI Lint3
Groovy CodeNarc
Java Checkstyle, PMD, Opengrep 1, SpotBugs 3
JavaScript BiomeJS, ESLint, PMD, Opengrep 1
JSON BiomeJS, Jackson Linter
JSP PMD
Kotlin detekt, Opengrep 1, PMD
Kubernetes Checkov, Opengrep 2
Less Stylelint
Markdown remark-lint, markdownlint, AgentLinter
Objective-C Clang-Tidy 3
OpenAPI Spectral
PHP PHP CS Fixer, PHP_CodeSniffer, PHP Mess Detector, Opengrep 1
PL/SQL PMD
PostgreSQL SQLint
PowerShell PSScriptAnalyser
Python Bandit, Prospector, Pylint, Ruff, Opengrep 1
Ruby Reek, Brakeman 7, RuboCop, Opengrep 1
Rust Opengrep 1
Sass Stylelint
Scala Codacy Scalameta Pro, Scalastyle, Opengrep 1, SpotBugs 3
Serverless Framework Checkov
Shell ShellCheck, Opengrep 1
Swift Opengrep 1, SwiftLint, PMD
SQL PMD, SQLint, TSQLLint, SQLFluff, Opengrep 1
Terraform Checkov, Opengrep 1
Transact-SQL TSQLLint
TypeScript BiomeJS, ESLint, Opengrep 1
Unity Unity Roslyn Analyzers 3
Velocity PMD
Visual Basic SonarVB
Visualforce PMD
XML PMD
XSL PMD

Secret detection#

Language Tools
Apex Opengrep
AWS CloudFormation Checkov, Opengrep 2, Trivy 2
C Opengrep, Trivy
C++ Opengrep, Trivy
C# Opengrep, Trivy
Dart Trivy
Dockerfile Opengrep, Trivy
Elixir Trivy
GitHub Actions Opengrep, Trivy
Go Opengrep, Trivy
Helm Opengrep 2, Trivy 2
Java PMD, Opengrep, Trivy
JavaScript Opengrep, Trivy
JSON Checkov, Trivy
Kotlin Opengrep
Kubernetes Checkov, Opengrep 2, Trivy 2
PHP Opengrep, Trivy
Python Bandit, Prospector, Opengrep, Trivy
Ruby Opengrep, Trivy
Rust Opengrep, Trivy
Scala Opengrep, Trivy
Shell Opengrep
Swift Opengrep, Trivy
Terraform Checkov, Opengrep, Trivy
TypeScript Opengrep, Trivy
XML Trivy
YAML Trivy

Dependency vulnerability scanning#

Language Tools
C Trivy, scans conan.lock (Conan)
C++ Trivy, scans conan.lock (Conan)
C# Trivy, scans .deps.json (.Net), packages.lock.json (NuGet)
Dart Trivy, scans pubspec.lock
Elixir Trivy, scans mix.lock (Mix)
Go Trivy, scans go.mod
Java Trivy, scans pom.xml and gradle.lockfile
JavaScript Trivy, scans package.json and package-lock.json (npm), yarn.lock (Yarn)
Kotlin Trivy, scans pom.xml and gradle.lockfile
PHP Trivy, scans composer.lock (Composer)
Python Trivy, scans requirements.txt (pip), Pipfile.lock (pipenv), poetry.lock (Poetry), uv.lock (UV)
Ruby Trivy, scans Gemfile.lock (Bundler)
Rust Trivy, scans Cargo.lock (Cargo)
Scala Trivy, scans build.sbt.lock (sbt) 9
Swift Trivy, scans Package.resolved (SwiftPM)
TypeScript Trivy, scans package.json and package-lock.json (npm), yarn.lock (Yarn)

Malicious packages detection#

Malicious packages identified in the OpenSSF Malicious Packages database.

Language Tools
C# Trivy, scans packages.lock.json for malicious packages published in NuGet
Go Trivy, scans go.mod for malicious packages published in github.com
Java Trivy, scans pom.xml and gradle.lockfile for malicious packages published in maven
JavaScript Trivy, scans package.json and package-lock.json for malicious packages published in npm
Kotlin Trivy, scans pom.xml and gradle.lockfile for malicious packages published in maven
Python Trivy, scans requirements.txt (pip), Pipfile.lock (pipenv) for malicious packages published in PyPI
Ruby Trivy, scans Gemfile.lock for malicious packages published in rubygems.org
Rust Trivy, scans Cargo.lock for malicious packages published in crates.io
Scala Trivy, scans build.sbt.lock for malicious packages published in maven 9
TypeScript Trivy, scans package.json and package-lock.json for malicious packages published in npm

License scanning#

Language Package managers
C Conan
C++ Conan
C# NuGet
Dart Pub
Elixir Hex
Go Go modules
Java Maven
JavaScript npm
Kotlin Maven
PHP Composer
Python PyPI
Ruby Gem
Rust Cargo
Scala Maven
Swift SwiftPM
TypeScript npm

Suggested fixes#

Codacy can suggest fixes for issues identified by these tools:

Language Tools
C Opengrep
C# Opengrep
Dockerfile Opengrep
Go Opengrep
Java Opengrep
JavaScript ESLint
Kubernetes Opengrep
Markdown markdownlint
Python Opengrep
Ruby Opengrep
TypeScript ESLint

Duplication#

See how Codacy calculates duplication.

Language Tools
Apex PMD CPD 10
C PMD CPD 10
C++ PMD CPD 10
C# PMD CPD 10
CoffeeScript jscpd
Dart jscpd
Elixir jscpd
Go PMD CPD 10
Groovy jscpd
Java jscpd
JavaScript PMD CPD 10
JSP PMD CPD 10
Kotlin jscpd
Objective-C jscpd
PHP PHPCPD
Python PMD CPD 10
Ruby Flay
Rust jscpd
Scala PMD CPD 10
Swift PMD CPD 10
TypeScript jscpd
Visual Basic jscpd
Visualforce PMD CPD 10

Complexity#

See how Codacy calculates complexity.

Language Tools
C Lizard
C++ Lizard
C# Lizard
Go Lizard
Java Lizard
JavaScript Lizard
Kotlin detekt 10
Kubernetes Lizard
Objective-C Lizard
PHP Lizard
Python Lizard
Ruby Lizard
Rust Lizard
Scala Lizard
Swift Lizard
TypeScript Lizard

Docker images of supported tools#

Codacy adds support for new languages and tools by using a Docker image to run each tool.

The following table lists the Codacy GitHub repositories corresponding to each supported tool. Use these repositories to check the extra plugins supported by each tool or to submit GitHub issues related to each tool. To learn more about the tool versions used by Codacy, see the latest release notes.

Tool name Codacy GitHub repository
AgentLinter codacy/codacy-agentlinter
aligncheck 3 codacy/codacy-aligncheck
Ameba codacy/codacy-ameba
Bandit codacy/codacy-bandit
BiomeJS codacy/codacy-biomejs
Brakeman 7 codacy/codacy-brakeman
Checkov codacy/codacy-checkov
Checkstyle codacy/codacy-checkstyle
Clang-Tidy 3 codacy/codacy-clang-tidy
Codacy Scalameta Pro codacy/codacy-scalameta
CodeNarc codacy/codacy-codenarc
CoffeeLint codacy/codacy-coffeelint
Cppcheck 4 codacy/codacy-cppcheck
Credo codacy/codacy-credo
dartanalyzer 5 codacy/codacy-dartanalyzer
deadcode 3 codacy/codacy-deadcode
detekt codacy/codacy-detekt
ESLint 6 codacy/codacy-eslint
Flawfinder codacy/codacy-flawfinder
Gosec 3 codacy/codacy-gosec
Hadolint codacy/codacy-hadolint
Jackson Linter codacy/codacy-jackson-linter
Lizard codacy/codacy-lizard
markdownlint codacy/codacy-markdownlint
PHP CS Fixer codacy/codacy-php-cs-fixer
PHP_CodeSniffer codacy/codacy-codesniffer
PHP Mess Detector codacy/codacy-phpmd
PMD 6 codacy/codacy-pmd7
Prospector codacy/codacy-prospector
PSScriptAnalyser codacy/codacy-psscriptanalyzer
Pylint codacy/codacy-pylint-python3
remark-lint codacy/codacy-remark-lint
Revive codacy/codacy-gorevive
RuboCop 6 codacy/codacy-rubocop
Ruff codacy/codacy-ruff
Scalastyle codacy/codacy-scalastyle
Opengrep 1 codacy/codacy-opengrep
ShellCheck codacy/codacy-shellcheck
SonarC# codacy/codacy-sonar-csharp
SonarVB codacy/codacy-sonar-visual-basic
Spectral codacy/codacy-spectral
SpotBugs 3 codacy/codacy-spotbugs
SQLint codacy/codacy-sqlint
SQLFluff codacy/codacy-sqlfluff
Staticcheck 3 codacy/codacy-staticcheck
Stylelint codacy/codacy-stylelint
SwiftLint 6 8 codacy/codacy-swiftlint
Trivy codacy/codacy-trivy
TSQLLint codacy/codacy-tsqllint
Unity Roslyn Analyzers 3 codacy/codacy-roslyn

See also#


  1. This tool doesn't support custom file extensions

  2. Currently, only YAML file scanning is supported on this platform. 

  3. Supported as a client-side tool

  4. Currently, Cppcheck only supports the MISRA guidelines for C. 

  5. Currently, Codacy only supports including the packages lints and flutter_lints on dartanalyzer configuration files. 

  6. Doesn't calculate the number of methods and the complexity per method for each file. 

  7. Due to licensing limitations, Codacy doesn't support the latest version of Brakeman. To analyze your Ruby code for the latest security vulnerabilities, use Opengrep, which provides comprehensive and up-to-date security scanning. 

  8. Supports reporting warnings or errors on functions above specific complexity thresholds. Enable the rule Cyclomatic Complexity on the Code patterns page, or use a configuration file to customize the thresholds. 

  9. Requires the sbt-dependency-lock plugin for generating the lockfile. 

  10. Codacy may use a different version of this tool for measuring complexity and duplication. 

Was this page helpful?

Your feedback helps us improve the documentation.