# PMD-JEdit Plug-in User's Guide

PMD is a Java source code analyzer - it finds unused variables, questionable design decisions, empty catch blocks, and so forth. You can read much more about PMD here - http://pmd.sf.net/.

### Installation

- Uninstall any old PMD-JEdit plugins
- Unzip the PMD-JEdit-bin-2.6.zip file into your JEdit directory; it'll put a couple of jar files into your jars directory.
- Restart JEdit and you'll be ready to go.

### Integration

There's a new 'PMD' menu item in the Plugins menu. This has several submenu options

- "Check current file" checks your currently displayed Java code
- "Check all files in current directory" does just that
- "Check directory recursively" does just that, too!
- Detect Duplicate Code
  - "In current file" checks your currently displayed Java code for duplicates
  - "In directory" same thing for the directory. On the resulting File Browser you can select "Recursive" to scan the selected directory recursively.

All those options put any errors into the ErrorList so you can then go jumping around your project fixing stuff.

There's a section in the Utilities->Global Options->Plugins configuration panel that lets you pick which rule sets you want to use.

Note that the configuration panel also contains the minimum tile size for CPD to turn up a duplicate chunk. Take a look at the Release Notes and Changelog for more details on new features in this release.

Starting 2.1, you can now add Custom Defined Rulesets with PMD plugin. Previously, if you want to use your own rulesets with the PMD plugin, you had to unjar the pmd.jar file & add your ruleset defination in the jar file & re-jar it & use it. But this procedure had to be repeated whenever a new PMD is out. But not anymore. Now you can simply point PMD plugin to your custom rulesets.xml file & drop your custom ruleset jars in either of jEdit jars directory(either system or user). Once this is done, you will be able to manipulate your Custom Rulesets just the way like the built-in ones.

PMD jEdit 2.2 adds updates PMD plugin to the latest and the greatest PMD release, updates to Dynamic class loading feature of jEdit and adds PMD to jEdit's File System Browser for easy access.

PMD jEdit plugin 2.5 updates to the latest PMD release, remove redundant menu options and makes usage of the plugin more compact. Look at the details Release notes and Changelog below.

## Release Notes & Changelog

### 2.7

1. Updated to PMD 3.8
2. Fixed Bug [1501422] PMD Plugin: example box is not updated when new items hover filed in jEdit Plugins Bug tracker.
3. Changed the way Rules are managed and given for execution to PMD due to addition of new languages to PMD and was giving error due to language mismatch.
4. Added new option "Print Rulename in ErrorList" which is helpful to trace down what rule is generating this error.

### 2.6

1. Updated to PMD 3.4
2. Updated to jEdit 4.3pre3
3. Added "Ignore Literals & identifiers" option for CPD.

### 2.5

1. Updated to PMD 1.9
2. Removed Recursive Directory options and integrated them into FileChooser itself.
3. Complete redesign of the way PMD Rules and Copy/Paste Detector are used.
4. Fixed improper highlighting of Rule Violations. Because of this bug, any open file in jEdit was showing errors of other files too.
5. Lots of code cleanup and optimizations.

### 2.4

1. Optimized usage of ErrorSource for faster Error Highlighting.
2. Updated to PMD 1.6
3. Fixed Run on save running when the buffer is non Java also.
4. Added option to export PMD results to a file in various formats such as HTML, XML, Text, CSV etc.
5. Added a new feature to show Progressbar when working on Large file sets.
6. Made Progress bar color user-configurable.
7. Improvement in Copy/Paste Detector.

### 2.3

1. Updated to PMD 1.3

### 2.2

1. Updated to PMD 1.2.1
2. Updated to jEdit 4.2 API changes
3. Added PMD in jEdit's File System Browser Plugins Menu.

### 2.1

1. Added "clear ErrorList" option.
2. Added "check all open buffers" option.
3. Added support to define Custom RuleSets thereby facilitating integration of Custom Rulesets with built-in rulesets & their independent development.
4. Added C/C++, PHP support to Copy/Paste Detector. Now you can find out duplicate code in your C/C++ & PHP code besides the usual Java code.

### 2.0

1. Integrated Copy/Paste Detector(CPD) in jEdit.
2. Updated to use pmd-1.05

### License

The PMD-JEdit plugin is free software released under the Apache license.