如何排除Intellij IDEA Structural Replace中的代码块
How to exclude code block in Intellij IDEA Structural Replace
我正在基于结构替换创建自己的检查。
例如,我想检查转换代码,如:
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
和
if ($Map$.get($key$) == null){
$Map$.put($key$, $value$);
}
进入
$Map$.putIfAbsent($key$, $value$);
但我不希望它对以下代码做出反应:
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
else {
// any logic
}
我尝试使用
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
$else$
带有选项文本 "else" 但它不起作用。
可能吗?我还必须进行两次具有相同替换结果的不同检查。我们可以使用多个搜索模式吗?
更新:
我尝试替换下一个模式
$Iterable$.forEach($value$ -> {
if ($condition$) {
$statement$;
}
});
进入
$Iterable$.stream()
.filter($value$ -> $condition$)
.forEach($value$ -> $statement$);
但替换后我得到:
$Iterable$.stream()
.filter($value$ -> $condition$)
.forEach($value$ -> $statement$;);
是否可以删除“;”来自替换结果?
使用这样的搜索模板:
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
} else {
$statement$;
}
编辑变量并将 statement
的最小和最大计数设置为 0
。
目前无法对单个结构搜索检查使用多个搜索模式。
我正在基于结构替换创建自己的检查。 例如,我想检查转换代码,如:
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
和
if ($Map$.get($key$) == null){
$Map$.put($key$, $value$);
}
进入
$Map$.putIfAbsent($key$, $value$);
但我不希望它对以下代码做出反应:
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
else {
// any logic
}
我尝试使用
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
}
$else$
带有选项文本 "else" 但它不起作用。
可能吗?我还必须进行两次具有相同替换结果的不同检查。我们可以使用多个搜索模式吗?
更新:
我尝试替换下一个模式
$Iterable$.forEach($value$ -> {
if ($condition$) {
$statement$;
}
});
进入
$Iterable$.stream()
.filter($value$ -> $condition$)
.forEach($value$ -> $statement$);
但替换后我得到:
$Iterable$.stream()
.filter($value$ -> $condition$)
.forEach($value$ -> $statement$;);
是否可以删除“;”来自替换结果?
使用这样的搜索模板:
if (!$Map$.containsKey($key$)){
$Map$.put($key$, $value$);
} else {
$statement$;
}
编辑变量并将 statement
的最小和最大计数设置为 0
。
目前无法对单个结构搜索检查使用多个搜索模式。