Android studio 从结构上替换参数名称以开头的方法

Android studio 从结构上替换参数名称以开头的方法,android-studio,intellij-idea,structural-search,Android Studio,Intellij Idea,Structural Search,因此,在我的代码中有以下实例 view1.setBackgroundResource(R.drawable.is_bag); view2.setBackgroundResource(R.drawable.is_bag); view3.setBackgroundResource(R.color.red); 我正在尝试对所有.setBackgroundResource(R.drawable.方法进行结构替换。以下是我目前正在尝试的内容: 搜索模板: $Instance$.setBackground

因此,在我的代码中有以下实例

view1.setBackgroundResource(R.drawable.is_bag);
view2.setBackgroundResource(R.drawable.is_bag);
view3.setBackgroundResource(R.color.red);
我正在尝试对所有
.setBackgroundResource(R.drawable.
方法进行结构替换。以下是我目前正在尝试的内容:

搜索模板:

$Instance$.setBackgroundResource($Parameter$)
编辑变量:

$Instance$  -> Text/regexp   = <empty> (which i understand = .*)
$Parameter$ -> Text/regexp   = .*R\.drawable\..*
           Minimum count = 1     // Minimum one Foo parameter
           Maximum count = 1     // Maximum one Foo parameter
$Instance$->Text/regexp=(我理解为=*)
$Parameter$->Text/regexp=.*R\.可绘制\*
最小计数=1//最小一个Foo参数
最大计数=1//最大一个Foo参数
由于某种原因,它拒绝匹配任何内容。如果我将
$Parameter$
更改为空或
*
则它匹配所有
setBackgroundResource
方法

有人知道我做错了什么吗?

试试看

$Instance$.setBackgroundResource(R.drawable.$Parameter$)

使用
实例
参数
为空。

hmm我确实尝试过,出于某种原因,当我切换到该选项时,
setBackgroundResource(R.color.*)
也会被标记。我想知道这是否与Android Studio中的R.x.x等资源常量有关?我想这不会解释为什么R.drawable会显式标记这两者。嗯,潜在的bug?很有可能出现bug。只是用不在R中的内部静态类进行了测试。得到了整个en的结果当我搜索一个特定的内部类时关闭类。看起来内部静态类在搜索中被忽略了,它搜索在最顶层类中声明的所有内容(例如,在您的例子中为R)Bug report!@KaushikGopalSome在刚刚发布的IntelliJ IDEA 2017.2中对该区域进行了一些修复,因此有可能该查询在该区域正确运行。我假设这些修复也会在某个时候出现在Android Studio中。奇怪的是,$Parameter$的Text/regexp似乎只对实际变量名有效(包含静态类型(即R.drawable)之后的所有内容)。如果将Text/regexp设置为
is\u-bag
,它将发现所有以
is\u-bag
结尾的内容。好奇……可能只是使用正则表达式搜索并替换此内容。