# Extending PMD

Edit me

The following pages and posts are tagged with

Title | Type | Excerpt
--- | --- | ---
How to add a new CPD language | Page | How to add a new CPD language
Adding PMD support for a new language | Page | How to add a new language to PMD.
Adding support for metrics to a language | Page | PMD's Java module has an extensive framework for the calculation of metrics, which allows rule developers to implement and use new code metrics very simply. ...
Index of Apex code metrics | Page | Index of the code metrics available out of the box to Apex rule developers.
Defining rule properties | Page | Learn how to define your own properties both for Java and XPath rules.
The rule designer | Page | Learn about the usage and features of the rule designer.
Index of Java code metrics | Page | Index of the code metrics available out of the box to Java rule developers.
Using and defining code metrics for custom rules | Page | Since version 6.0.0, PMD is enhanced with the ability to compute code metrics on Java and Apex source (the so-called Metrics Framework). This framework provi...
Rule guidelines | Page | Rule Guidelines, or the last touches to a rule
Testing your rules | Page | Learn how to use PMD's simple test framework for unit testing rules.
Writing a custom rule | Page | Learn how to write a custom rule for PMD
Writing a custom rule | Page | The information on this page has been split into several separate pages. Please update your bookmarks: * [Introduction to writing rules](pmd_userdocs_extending_writing_rules_intro.html) * [Your First Rule](pmd_userdocs_extending_your_first_rule.html) introduces the basic development process of a rule with a running example * [Writing XPath Rules](pmd_userdocs_extending_writing_xpath_rules.html) explains a bit more about XPath rules and our...
Introduction to writing PMD rules | Page | Writing your own PMD rules
Writing XPath rules | Page | This page describes XPath rule support in more details
Your first rule XPath | Page | Introduction to rule writing through an example.