NetBeans代码模板扩展;字符串操作

时间:2013-10-17 16:58:25

标签: templates netbeans-7 freemarker

我正在尝试在NetBeans(7.3)中使用PHP的Code Templates功能,但我发现它相当有限。给出以下期望的输出:

public function addFoo(Foo $foo) { 
    $this->fooCollection[] = $foo;
}

我试图让“foo”/“Foo”的每个实例都是可变的;所以我用了一个变量:

public function add${name}(${name} $$${name}) {
    $this->${name}Collection[] = $$${name};
}

当然,在扩展时,没有考虑到所需的大写规则,因为我找不到实现它的方法;结果是(给定我填充${name}Foo):

public function addFoo(Foo $Foo) { // note the uppercase "Foo" in the argument
    $this->FooCollection[] = $Foo; // and collection property names...
}                                  // not what I had in mind

现在,我已经读过NetBeans在其模板中支持FreeMarker,但这似乎仅适用于 file -templates而不是 snippet -templates喜欢这些。

据我所知,FreeMarker版本看起来如下所示;但是,它不起作用,${name?capitalize}只是被视为另一个变量名。

public function add${name?capitalize}(${name?capitalize} $$${name}) {
    $this->${name}Collection[] = $$${name};
}

传递“foo”,允许大写来修改类型名称,第二个单词等。

有没有办法在这里获得FreeMarker支持,还是替代方案?

我对任何建议都持开放态度;包括第三方插件。我只是不想放弃NetBeans。


附录

给出的例子是微不足道的;一个明显的解决方案特别是:

public function add${upperName}(${upperName} $$${lowerName}) {
    $this->${lowerName}Collection[] = $$${lowerName};
}

上/下分别为“Foo”/“foo”。然而,这仅仅是一个例子,我正在寻找一些更强大的东西(,例如FreeMarker支持

0 个答案:

没有答案