Giter Site home page Giter Site logo

monits / pmd Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pmd/pmd

0.0 13.0 0.0 341.34 MB

Home Page: https://pmd.github.io

License: Other

XSLT 0.77% CSS 0.01% JavaScript 0.17% Java 75.23% HTML 0.29% C++ 0.01% Batchfile 0.07% Shell 0.54% PLSQL 0.95% Scala 0.08% Apex 9.97% TypeScript 0.01% ANTLR 2.84% Ruby 0.04% Kotlin 9.00% Modelica 0.01% C# 0.01%

pmd's Introduction

PMD - source code analyzer

PMD Logo

Join the chat 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, HTML, XML and XSL. Scala is supported, but there are currently no Scala rules available.

Additionally, it includes CPD, the copy-paste-detector. CPD finds duplicated code in C/C++, C#, Dart, Fortran, Gherkin, Go, Groovy, HTML, Java, JavaScript, JSP, Kotlin, Lua, Matlab, Modelica, Objective-C, Perl, PHP, PLSQL, Python, Ruby, Salesforce.com Apex and Visualforce, Scala, Swift, T-SQL, Apache Velocity, 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/pmd check or bin\pmd.bat check.

See also Getting Started

Demo:

This shows how PMD analyses openjdk:

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

pmd's People

Contributors

aaronhurst-google avatar adangel avatar akshatbahety avatar borovikovd avatar djydewang avatar drofff avatar eklimo avatar gibarsin avatar gwilymatgearset avatar jbartolotta-sfdc avatar jeffhube avatar jonathanwiesel avatar josephallen avatar jsotuyod avatar kris-scheibe avatar lynnbroe avatar maikelsteneker avatar matthargett avatar oowekyala avatar piotrszymanski-sc avatar pmd-bot avatar prophet1906 avatar rpelisse avatar rsoesemann avatar scwells72 avatar sergeygorbaty avatar sturton avatar tprouvot avatar wener-tiobe avatar xenoamess avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.