-
Notifications
You must be signed in to change notification settings - Fork 19
Add or improve existing PMD rules
PMD is a Maven project and composed of different modules. Beside some general modules like the pmd-core module, there are modules for every supported language, for example pmd-apex. This modules vary in complexity. Some of them just offer a simple Copy/Paste Detector (CPD), like pmd-perl. Others provide complete language-specific static code analysis tools, like pmd-apex.
This modules are all designed the same. A Parser parses the source code into a abstract syntax tree (AST), every generated node have to be represented as a Java class. Based on this ASTs and their nodes it is possible to apply rules. The Avoid-deeply-nested-if-statements rule for example checks if there are if-statement nodes with more than one if-statement node above them in the tree. If that is true the rule adds a violation.
If you want to add rules that work similarly to the ones we already have you will have to extend PMD itself. Those are the steps you need to do:
