All Projects â†’ pmd â†’ Pmd

pmd / Pmd

Licence: other
An extensible multilanguage static code analyzer.

Programming Languages

java
68154 projects - #9 most used programming language
Apex
172 projects
ANTLR
299 projects
PLSQL
303 projects
kotlin
9241 projects
XSLT
1337 projects

Projects that are alternatives of or similar to Pmd

static-code-analysis-plugin
A plugin to simplify Static Code Analysis on Gradle. Not restricted to, but specially useful, in Android projects, by making sure all analysis can access the SDK classes.
Stars: ✭ 36 (-99.02%)
Mutual labels:  static-code-analysis, linter, static-analysis, code-analysis, code-quality
Reviewdog
đŸļ Automated code review tool integrated with any code analysis tools regardless of programming language
Stars: ✭ 4,541 (+23.83%)
Mutual labels:  static-analysis, linter, static-code-analysis, code-quality
Pep8speaks
A GitHub app to automatically review Python code style over Pull Requests
Stars: ✭ 546 (-85.11%)
Mutual labels:  static-analysis, linter, static-code-analysis, code-quality
Wotan
Pluggable TypeScript and JavaScript linter
Stars: ✭ 271 (-92.61%)
Mutual labels:  static-analysis, linter, code-quality, code-analysis
Static Analysis
⚙ī¸ A curated list of static analysis (SAST) tools for all programming languages, config files, build tools, and more.
Stars: ✭ 9,310 (+153.89%)
Mutual labels:  static-analysis, linter, static-code-analysis, code-quality
codeclimate-eslint
Code Climate Engine for ESLint
Stars: ✭ 86 (-97.65%)
Mutual labels:  static-code-analysis, linter, static-analysis, code-quality
Pylint
It's not just a linter that annoys you!
Stars: ✭ 3,733 (+1.8%)
Mutual labels:  static-analysis, linter, static-code-analysis, code-quality
Cflint
Static code analysis for CFML (a linter)
Stars: ✭ 156 (-95.75%)
Mutual labels:  static-analysis, linter, static-code-analysis, code-quality
Spotbugs
SpotBugs is FindBugs' successor. A tool for static analysis to look for bugs in Java code.
Stars: ✭ 2,569 (-29.94%)
Mutual labels:  static-analysis, linter, static-code-analysis, code-analysis
codeclimate-duplication
Code Climate engine for code duplication analysis
Stars: ✭ 96 (-97.38%)
Mutual labels:  static-code-analysis, static-analysis, code-quality
tryceratops
A linter to prevent exception handling antipatterns in Python (limited only for those who like dinosaurs).
Stars: ✭ 381 (-89.61%)
Mutual labels:  static-code-analysis, linter, static-analysis
lints
Lint all your JavaScript, CSS, HTML, Markdown and Dockerfiles with a single command
Stars: ✭ 14 (-99.62%)
Mutual labels:  static-code-analysis, linter, static-analysis
unimport
A linter, formatter for finding and removing unused import statements.
Stars: ✭ 119 (-96.75%)
Mutual labels:  static-code-analysis, linter, static-analysis
codeclimate-apexmetrics
ApexMetrics - Code Climate engine for Salesforce [DISCONTINUED use CC PMD instead)
Stars: ✭ 46 (-98.75%)
Mutual labels:  static-code-analysis, linter, apex
Revive
đŸ”Ĩ ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint
Stars: ✭ 3,139 (-14.4%)
Mutual labels:  static-analysis, linter, static-code-analysis
elm-review
Analyzes Elm projects, to help find mistakes before your users find them.
Stars: ✭ 195 (-94.68%)
Mutual labels:  static-code-analysis, linter, code-quality
Larastan
⚗ī¸ Adds code analysis to Laravel improving developer productivity and code quality.
Stars: ✭ 3,554 (-3.08%)
Mutual labels:  static-analysis, static-code-analysis, code-analysis
sonar-css-plugin
SonarQube CSS / SCSS / Less Analyzer
Stars: ✭ 46 (-98.75%)
Mutual labels:  linter, static-analysis, code-quality
Pytype
A static type analyzer for Python code
Stars: ✭ 3,545 (-3.33%)
Mutual labels:  static-analysis, linter, static-code-analysis
sonar-gherkin-plugin
SonarQube Cucumber Gherkin Analyzer
Stars: ✭ 33 (-99.1%)
Mutual labels:  linter, static-analysis, code-quality

PMD - source code analyzer

Join the chat at https://gitter.im/pmd/pmd Build Status Maven Central Reproducible Builds Coverage Status Codacy Badge Contributor Covenant Documentation (latest)

PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It supports many languages. It can be extended with custom rules. It uses JavaCC and Antlr to parse source files into abstract syntax trees (AST) and runs rules against them to find violations. Rules can be written in Java or using a XPath query.

It supports Java, JavaScript, Salesforce.com Apex and Visualforce, Modelica, PLSQL, Apache Velocity, XML, XSL, Scala.

Additionally it includes CPD, the copy-paste-detector. CPD finds duplicated code in C/C++, C#, Dart, Fortran, Go, Groovy, Java, JavaScript, JSP, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL, Python, Ruby, Salesforce.com Apex, Scala, Swift, Visualforce and XML.

In the future we hope to add support for data/control flow analysis and automatic (quick) fixes where it makes sense.

🚀 Installation and Usage

Download the latest binary zip from the releases and extract it somewhere.

Execute bin/run.sh pmd or bin\pmd.bat.

See also Getting Started

Demo:

This shows how PMD can detect for loops, that can be replaced by for-each loops.

Demo

There are plugins for Maven and Gradle as well as for various IDEs. See Tools / Integrations

ℹī¸ How to get support?

🤝 Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Our latest source of PMD can be found on GitHub. Fork us!

The rule designer is developed over at pmd/pmd-designer. Please see its README for developer documentation.

đŸ’ĩ Financial Contributors

Become a financial contributor and help us sustain our community. Contribute

✨ Contributors

This project follows the all-contributors specification. Contributions of any kind welcome!

See credits for the complete list.

📝 License

BSD Style

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].