有没有一种简单的方法来捕获类型?我似乎无法做一些基本的事情,例如并排使用变量表达式,例如$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();
显然,我需要以某种方式捕获“ Array”,以及仅捕获没有参数的那些类型。
最佳答案
SSR与每个变量匹配一种或多种语言构造,它不会将多个变量($ mapType $$ mapEnd $)捕获到类型引用(或任何语言词典)中。
对于像这样的代码List<String> someName = new ArrayList<String>();
一个需要有搜索模式List<$Type$> $variable$ = new $ListType$<$Type$>()
并相应地更换它。
对于更复杂的泛型表达式,需要考虑几个泛型类型变量,例如Map<$Key$, $Value$>
可能会发现本文很有用(许多具体的SSR示例模式)
http://www.jetbrains.com/idea/documentation/ssr.html