Search templates, modifiers, and script constraints
When you construct a template for a structural search you are basically writing a script. To simplify your scripting process, GoLand offers you a list of predefined search templates that you can use as prototypes for your search template.
![Existing search templates for HTML Existing search templates for HTML](https://resources.jetbrains.com/help/img/idea/2024.3/go_ssr_list_of_templates.png)
On how to access the list of the existing search and replace templates, see the structural search and replace section.
Each search or replace template consists of variables $variable_name$
to which you can add a condition (modifier) to narrow your search results. Modifiers depend on a variable in your search template.
The Count modifier specifies a number of occurrences.
If you do not set the Count modifier explicitly, the IDE looks for only one template match. In other words, when the Count modifier is not applied, the default values for the modifier are min = 1
and max = 1
.
GoLand adds [0,∞]
to the variable and searches for the specified range of numbers.
The Script modifier adds Groovy script constraints to the search template. Script constraints are used when you search for certain language constructs.
All variables used in a template can be accessed from script constraints. When you add a script constraint to your variable, GoLand matches it against the PSI tree, this variable is in fact a node in the PSI tree.
![The Script modifier The Script modifier](https://resources.jetbrains.com/help/img/idea/2024.3/db_templates_with_constraints.png)
note
You can refer to any normal variable, for example,
$a$
in a template from a script modifier by using its name, for example,a
, and do something with its value on any match.With __context__, you can refer to the entire template (complete match).
Thanks for your feedback!