IntelliJ结构搜索和替换问题

时间:2010-07-21 17:52:18

标签: java regex replace intellij-idea structural-search

有没有一种简单的方法来捕捉类型?我似乎无法做基本的事情,比如使用变量表达式,例如$mapType$$mapEnd$来做一个简单的替换。这可能有什么原因吗?也就是说,如果我有一个表达式,比如.*\s*.*abc,我将其分为两个变量.*\s*.*abc,表达式与任何文本都不匹配。可能出现什么问题?

Example template:
$var1$ = $impl$

Example second template:
$var1$ = $type$$implEnd$

如果$impl$是一个完整的正则表达式,则将$type$$implEnd$与一半匹配的正则表达式放在一起会导致模式不匹配。可能出现什么问题?

我正在尝试进行这种转变:

List<String,Object> list = new ArrayList<String,Object>();
List<String,Object> list = Lists.newArrayList();

显然,我需要以某种方式捕获“数组”,以及只有那些没有参数的类型。

1 个答案:

答案 0 :(得分:1)

SSR匹配每个变量的一个或多个语言结构,它不会将几个变量($ mapType $$ mapEnd $)捕获到类型引用(或lexem的任何语言)中。 对于像

这样的代码

List<String> someName = new ArrayList<String>();

一个人需要有搜索模式

List<$Type$> $variable$ = new $ListType$<$Type$>()

并相应地更换它。 对于更复杂的通用表达式,需要考虑几个泛型类型变量,如Map<$Key$, $Value$> 人们可能会发现这篇文章很有用(许多具体的SSR示例模式)

http://www.jetbrains.com/idea/documentation/ssr.html