结构搜索和替换为 Groovy 脚本约束

Structural Search and Replace with Groovy Script constraints

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

例如:假设我有 100 次使用此方法

public void sendString(String msg, int interfaceId){ //doing stuff... }

我想检查传递给 interfaceId 的固定(none 可变数字)是否大于或等于给定数字。

是的,你可以。结构搜索很强大:

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)
  }
}

搜索结构设置:

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

编辑变量对话框:

  • val变量:

    • Text/regexp: \d*
  • Complete Match变量:

    • 脚本约束
      • 脚本文本:Integer.parseInt(val.getText()) > 1

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

    String.format("%s",3)
    String.format("%s",5)

所以它发现所有调用 String.format 的第二个参数大于 1。因此,您可以通过编辑 Script Text 设置来根据您的情况进行调整。