结构搜索和Groovy Script约束替换

Jav*_*Guy 3 java search groovy intellij-idea structural-search

在结构搜索和替换中,如何搜索给定的整数给定方法参数是否大于或等于给定值?或者这甚至可能吗?

例如:假设我有100个这种方法的用法

public void sendString(String msg, int interfaceId){ //doing stuff... }
Run Code Online (Sandbox Code Playgroud)

我想检查一个固定的(无变量号)是否传递给interfaceId是否大于或等于给定的数字.

Str*_*lok 7

是的你可以.结构搜索非常强大:

Test.groovy

class Test {
  def test() {
    String.format("%s",1)
    String.format("%s","x")
    String.format("%s",3)
    String.format("%s","x")
    String.format("%s",5)
  }
}
Run Code Online (Sandbox Code Playgroud)

搜索结构设置:

  • 搜索模板: String.format($str$,$val$)
  • 文件类型: Groovy

编辑变量对话框:

  • val 变量:

    • 文/正则表达式: \d*
  • Complete Match 变量:

    • 脚本限制
      • 脚本文字: Integer.parseInt(val.getText()) > 1

搜索结果,找到的匹配项:

    String.format("%s",3)
    String.format("%s",5)
Run Code Online (Sandbox Code Playgroud)

所以它发现String.format的所有调用都带有大于的第二个参数1.因此,您可以通过编辑Script Text设置将其调整为您的案例.