IntellijJavascript多行结构搜索和替换
Intellij Javascript multiline structural search and replace
在我们的项目中,许多角度单元测试包含以下语法:
inject(['dependency1', 'dependency2', function(_dependency1_, _dependency2_) {
dependency1 = _dependency1_;
dependency2 = _dependency2_;
}]);
在测试中,用字符串值列出依赖项的数组是过时的,因为这只在使用缩小时有用。因此,我们发布了一个编码约定,将此语法更改为:
inject(function(_dependency1_, _dependency2_) {
dependency1 = _dependency1_;
dependency2 = _dependency2_;
});
现在,当我遇到它们时,我已经在现有代码中替换了其中的几个,但我真的厌倦了手动操作。所以我试图在IntelliJ中使用结构搜索和替换来解决这个问题。这是我迄今为止的搜索模板:
inject([$injection$, function($argument$) {
$statement$;
}]);
发生次数:
- $injection$:1到无穷大
- $argument$:1到无穷大
- $语句$:1到无穷大
替换模板定义如下:
inject(function($argument$) {
$statement$;
});
这对我在开头定义的示例不起作用,但是,它只对函数体中的单行语句进行正确匹配和替换,因此以下示例被正确替换:
inject(['dependency1', 'dependency2', function(_dependency1_, _dependency2_) {
dependency1 = _dependency1_;
}]);
我是不是错过了什么?当我在Jetbrains网站上查看这个简单的if-else示例时,我觉得这应该有效。
我尝试删除$statement$变量后面的分号,这与多行不匹配,导致分号在替换后被删除。我还尝试过将正则表达式应用于$statement$变量,但这些都没有帮助。
((.*)=(.*);'n)+
不匹配,可能是因为在执行实际regex匹配之前,IntelliJ结构搜索已过滤掉分号。
(.*)=(.*)
匹配,但它替换为与不使用regex相同的行为。
由于一个错误,JavaScript中的多个语句与一个变量的匹配目前已中断。
相关文章:
- Javascript搜索和替换需要包含更多内容
- 搜索并用jQuery替换整个HTML字符串
- javascript:搜索并用不同的颜色代码替换十六进制颜色代码
- IntellijJavascript多行结构搜索和替换
- 可以用两个搜索值替换JavaScript.replacement函数
- RegExp-替换搜索时的“html”标记并突出显示
- 在搜索表单中,替换空格或仅使用正则表达式的隐词和数字
- 如何使用regex在以前的搜索结果中进行搜索和替换
- JQuery 在渲染后搜索 dom 元素,并用其相应的值替换键
- 搜索/将自定义标记替换为 javascript 正则表达式
- 搜索与搜索和替换
- jQuery搜索和替换不起作用(Wordpress)
- javascript 或 PHP 来执行搜索和替换功能
- 多个下拉列表搜索替换字符串
- Javascript - 搜索网站的 HTML 并替换它
- 根据搜索/替换对替换字符串中的多个值
- 如何使用jquery/javascript搜索字符串并在页面加载时进行替换
- 捆绑前在Javascript中进行搜索和替换
- 在javascript/nodejs中搜索并替换所有内容
- javascript indexOf/替换多个搜索词