范围语言语法参考
最后修改时间:2023 年 9 月 5 日您可以使用范围语言来指定项目范围:文件、目录和子目录集。
类集
单个类由类名定义,例如:
com.intellij.openapi.MyClass
包中所有类的集合(不分解为子包)由点后的星号定义,例如:
com.intellij.openapi.*
包中所有类的集合,包括子包的内容,由双点后的星号定义,例如
com.intellij.openapi..*
文件集
要添加单个文件,请使用文件名(例如,
MyDir/MyFile.txt
)要添加不带子目录的目录中的所有文件,请在斜杠后使用星号(例如:
file:src/main/myDir/*
)要添加包含子目录的目录中的所有文件,请在双斜杠后使用星号(例如,
file:src/main/myDir//*
)
修饰符
位置修饰符
位置修饰符可帮助您指定必要文件的位置:
src:
– 对于源文件lib:
– 用于图书馆课程test:
– 用于测试代码
例如,该src:com.intellij.openapi.*
模式将包中源根下的所有类com.intellij.openapi
(不包括子包)放置在一个范围内。默认位置是模块根目录。
模块修饰符
模块修饰符通过指定相关模块的名称来帮助您缩小范围:
src[module name]:<E>
lib[module name]:<E>
test[module name]:<E>
例如,该模式将与包中模块src[MyModule]:com.intellij.openapi.*
相关的源文件夹下的所有类放入范围内,不包括子包。MyModule
com.intellij.openapi
逻辑运算符
定义范围时,可以使用逻辑运算符:
&& for AND
|| for OR
! for NOT
此外,您还可以使用括号将逻辑运算符连接到组中。例如,以下范围包括 <a> 和 <c>,或 <b> 和 <c>:
(<a>||<b>)&&<c>
另一个例子
file[*web*]:src/main/java//*
表示名称包含的所有模块的范围,以及目录src /main /javaweb
中递归的所有文件。
从现有范围创建新范围
您可以从多个现有范围创建新范围。在这种情况下,您可以使用 来引用现有范围$
$MyScope
。
例如,该模式将来自和 的$Scope1||$Scope2
所有文件放入一个范围内。Scope1
Scope2
例子
file[MyMod]:src/main/java/com/example/my_package//*
– 在项目中包含模块“MyMod”中位于指定目录和所有子目录中的所有文件。src[MyMod]:com.example.my_package..*
- 递归地将包中的所有类包含在模块的源目录中。lib:com.company..*||com.company..*
- 递归地将项目和库中的所有类包含在包中。test:com.company.*
- 将所有测试类包含在包中,但不包含在子包中。[MyMod]:com.company.util.*
- 包含指定模块的包中的所有类和测试类。file:*.js||file:*.coffee
- 包括所有 JavaScript 和 CoffeeScript 文件。file:*js&&!file:*.min.*
- 包括除通过扩展名指示的缩小生成的文件之外的所有 JavaScript 文件min
。从缩小 JavaScript中了解更多信息。!file:*/.npm//*
- 排除所有.npm文件夹。
感谢您的反馈意见!