This topic describes the comparing_references_inspection, a sample plugin that creates a custom inspection for Java code. In addition, the sample plugin contains a JUnit-based test.

About Code Inspections

The IntelliJ Platform provides tools designed for static code analysis (so called code inspections) that help you maintain and clean up your code without actually executing it. For more information, refer to Code Inspection in the IntelliJ IDEA Web Help. In IntelliJ IDEA you will find a set of built-in inspections that are grouped by their goals and sense.

You can create custom inspections through the IntelliJ IDEA interface (see Creating Custom Inspections). Alternatively, you can develop a plugin to implement a custom inspection.

Techniques Used

The comparing_references_inspection sample plugin illustrates the use of the following techniques:

Sample Plugin

The comparingReferences sample plugin is available in the <%IntelliJ SDK Docs project%>/code_samples/comparing_references_inspection directory. When launched, this plugin adds the '==' or '!=' instead of 'equals()' item to the Probable bugs node in the Inspections list.

Running the Plugin

To run the sample plugin

  1. Start IntelliJ IDEA and open the comparingReferences plugin project saved into the <%IntelliJ SDK Docs project%>/code_samples/comparing_references_inspection directory.
  2. Open the Project Structure dialog and ensure that the project settings are valid for your environment.
  3. If necessary, modify the Run/Debug Configurations and Run the plugin by choosing the Run | Run on the main menu.

Configuring the Plugin

Once the plugin is launched, you can set the plugin options. You can specify the Java classes to be participated in the code inspection and the severity level of the found probable bugs.

To configure the sample plugin

  1. On the IDEA main menu, choose File | Settings, and then under Project Settings, click Inspections.
  2. In the list of the IntelliJ IDEA inspections, expand the Probable bugs node, and then click '==' or '!=' instead of 'equals()'.

  1. Under Options, you can specify the following plugin settings:
    • From the Severity list, select the severity level of probable bugs the plugin will find (such as Warning, Info, etc.)
    • In the text box under Severity, specify the semicolon separated list of Java classes to be participated in this code inspection.
  2. When finished, click OK.

How does it work?

The plugin inspects your code opened in the IntelliJ IDEA editor or the code you are typing. The plugin highlights the code fragments where two variables of the reference type are separated by == or != and proposes to replace this code fragment with .equals():

In this example, the s1 and s2 are variables of the String type. Clicking Use equals() replaces

return (s1==s2);

with the code:

return (s1.equals(s2));

Testing the Plugin

The sample plugin contains the TestThisPlugin Java class in the testSource/testPlugin package and the test data in the testData directory. This test adds two test cases to this plugin project. To run test cases, run the YourTest.test() or YourTest.test1() method, respectively.

For detailed information about testing and all related procedures, refer to Testing in the IntelliJ IDEA Web Help.

results matching ""

    No results matching ""