我正在尝试在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支持)