IntelliJ IDEA 11.1 Web Help

Some features described here are available in Ultimate edition only.

This section provides a collection of structural search and replace examples:

One statement

$Statement$;
        

Increasing the number of occurrences count to a certain number, you can find sequences of statements that contain up to the specified number of elements.

Method call

$Instance$.$MethodCall$($Arguments$)
        

This template matches method call expressions. If the number of occurrences is zero, it means that a method call can be omitted.

If statement

if ($Expr$) {
    $ThenStatements$;
}
else {
    $ElseStatements$;
}
        

Search in comments and/or string literals

Consider one wants to find comments or literal containing 'foo'. Search template would be like $SomethingWeWantToFind$ or "$SomethingWeWantToFind$". In case one wants to find comments/string containing some particular words (say, foo as a word), this should be specified as a text constraint.

Add try/catch/finally code

If one wants to replace a statement with a try/catch/finally construct, the following pair of search and replace templates can be suggested. The search template is:

$Statements$;
        

with a certain maximum number of occurrences specified as a constraint.

The replacement template is:

try {
    $Statements$;
}
catch(Exception ex) {
}
        

Finding all descendants of a class or all classes that implement a certain interface

Consider the following search templates:

class $Clazz$ extends $AnotherClass$ {}
        

or

class $Clazz$ implements $SomeInterface$ {}
        

As the text constraint for the variables $AnotherClass$ or $SomeInterface$, specify the name of the base class or implemented interface.

Finding all such methods

To look for the different implementations of the same interface method, use the following search template:

class $a$ {
    public void $show$();
}
        

Specify text constraint for the $show$ variable, and enable the option This variable is the target of the search.

Using @modifier for finding package local and instance methods

IntelliJ IDEA suggests pre-defined templates for the package local and instance fields of a class. These templates make use of the @Modifier annotation, which helps describe search target, when there is no way to express it using the natural language means.

However, if you need to search for package local or instance methods, you will have to create the corresponding search templates yourself, applying the @Modifier annotation.

To specify criteria for finding all methods with the visibility modifiers package local and instance, use the following search template:

class $Class$ {
    @Modifier("packageLocal") @Modifier("Instance" ) $ReturnType$ $MethodName$($ParameterType$ $Parameter$);
    }
    }
        

See Also

Reference:

Web Resources: