IntelliJ IDEA 2024.2 Help

Scope language syntax reference

You can use the scopes language to specify project scopes: sets of files, directories, and subdirectories.

Sets of classes

  • Single class is defined by a class name, for example: com.intellij.openapi.MyClass

  • Set of all classes in a package, not recusing into subpackages, is defined by an asterisk after dot, for example: com.intellij.openapi.*

  • Set of all classes in a package including contents of subpackages, is defined by an asterisk after double dot, for example com.intellij.openapi..*

Sets of files

  • To add a single file, use a filename (for example, MyDir/MyFile.txt)

  • To add all the files in a directory without subdirectories, use an asterisk after a slash (for example: file:src/main/myDir/*)

  • To add all the files in a directory with subdirectories, use an asterisk after a double slash (for example, file:src/main/myDir//*)

Modifiers

Location modifiers

Location modifiers help you specify location of the necessary file:

  • src: – for source files

  • lib: – for library classes

  • test: – for test code

For example, the src:com.intellij.openapi.* pattern places in a scope all classes under the source root in the com.intellij.openapi package, excluding subpackages. The default location is the module root.

Module modifiers

Module modifiers help you narrow down the scope by specifying the name of the related module:

  • src[module name]:

  • lib[module name]:

  • test[module name]:

For example, the src[MyModule]:com.intellij.openapi.* pattern places in a scope all classes under the source folders related to the MyModule module in the com.intellij.openapi package, excluding subpackages.

Logical operators

When you define scopes, you can use logical operators:

&& for AND || for OR ! for NOT

Also, you can use parentheses to join logical operators into groups. For example, the following scope includes either and , or and :

Another example

denotes a scope of all modules whose name contains web, and all the files recursively in the directory src/main/java.

Create a new scope from existing scopes

You can make a new scope from several existing scopes. In this case, you can reference the existing scopes by using $ $MyScope.

For example, the $Scope1||$Scope2 pattern places in a scope all files from Scope1 and Scope2.

Examples

Last modified: 26 May 2024