2

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

Example template:
$var1$ = $impl$

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

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

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

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

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

4

1 回答 1

1

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

于 2010-07-23T12:00:21.630 回答