Boh*_*ian 9 java regex syntax-highlighting intellij-idea
Intellij为期望正则表达式的参数提供正则表达式"帮助"(语法检查),例如编码:
String[] array = string.split("(*.");
Run Code Online (Sandbox Code Playgroud)
将在正则表达式下标记错误并提供工具提示错误:
未公开组
这也适用于变量,例如
String myVar = "(*."; // shows above error here
String[] array = string.split(myVar);
Run Code Online (Sandbox Code Playgroud)
但是,如果我创建自己的方法,期望正则表达式,我不会得到这种帮助,例如:
String[] myMethod(String regexParameter) {
return someString.split(regexParameter);
}
myMethod("(*."); // no "error" marker like above
Run Code Online (Sandbox Code Playgroud)
尽管Intellij可以确定regexParameter
应该是一个有效的正则表达式,但它并不像JDK参数那样检查它.
如何获得我自己的方法参数的正则表达式帮助?
理想情况下,会有一个基于注释的解决方案或类似方法,其中方法的参数被"定义"为Intellij的正则表达式,因此所有开发人员在加载代码库时自动获得帮助.
Baj*_*jal 13
要在IDE中激活参数的正则表达式语言,请双击正则表达式字符串并按AltEnter(意图操作的快捷方式)并选择"注入语言或引用",然后在结果列表中选择" 正则表达式":
这将永久地将正则表达式附加到所有呼叫站点的参数.
要对多个文本片段执行此操作,请按住ShiftAlt键并继续双击所有实例(IntelliJ中的多选功能).
要创建一个自动具有Intellij语言辅助功能的参数,所以您的其他开发团队成员也可以自动获得正则表达式帮助,使用IntelliJ的IntelliLang插件,将jetbrains的注释库添加为编译依赖项,例如gradle:
dependencies {
...
compile 'org.jetbrains:annotations:15.0'
}
Run Code Online (Sandbox Code Playgroud)
然后使用它,指定"RegExp"
为@Language
参数:
import org.intellij.lang.annotations.Language;
void myMethod(@Language("RegExp") String regex) {
// some impl
}
Run Code Online (Sandbox Code Playgroud)
传递给该方法的字符串的正则表达式验证现在可以通过编辑Intellij中的源代码的任何人调用任何方法.
注意:不建议在构建中添加依赖项(如果有的话),并且知道效果仅在IDE中,并且您必须在IDE中编译,Intellij允许您执行此操作这个:
@Language("RegExp")
向方法参数添加注释 归档时间: |
|
查看次数: |
738 次 |
最近记录: |