gpt4 book ai didi

eclipse - 有没有办法在 Eclipse(Helios)代码模板中将变量值的第一个字母大写

转载 作者:行者123 更新时间:2023-12-03 14:55:52 25 4
gpt4 key购买 nike

我有一个带有变量的代码模板,我想仅在某些情况下将这个变量的值大写(只是第一个字母)。有没有办法做到这一点?

模板代码如下 - 我想在我的函数名中将 Property Name 大写...

private $$${PropertyName};
${cursor}
public function get${PropertyName}()
{
return $$this->${PropertyName};
}

public function set${PropertyName}($$value)
{
$$this->${PropertyName} = $$value;
}

请注意:这是一个在 IDE(不是 PHP)中与代码模板一起使用的模板。详情见: http://www.ibm.com/developerworks/opensource/tutorials/os-eclipse-code-templates/index.html

最佳答案

我也想要这个并尝试构建一个自定义 TemplateVariableResolver去做吧。 (我已经有了一个自定义解析器,可以生成新的 UUID,例如 http://dev.eclipse.org/blogs/jdtui/2007/12/04/text-templates-2/。)

我做了一个绑定(bind)到 capitalize 的自定义解析器:

public class CapitalizingVariableResolver extends TemplateVariableResolver {
@Override
public void resolve(TemplateVariable variable, TemplateContext context) {
@SuppressWarnings("unchecked")
final List<String> params = variable.getVariableType().getParams();

if (params.isEmpty())
return;

final String currentValue = context.getVariable(params.get(0));

if (currentValue == null || currentValue.length() == 0)
return;

variable.setValue(currentValue.substring(0, 1).toUpperCase() + currentValue.substring(1));
}
}

(插件.xml :)
<extension point="org.eclipse.ui.editors.templates">
<resolver
class="com.foo.CapitalizingVariableResolver"
contextTypeId="java"
description="Resolves to the value of the variable named by the first argument, but with its first letter capitalized."
name="capitalized"
type="capitalize">
</resolver>
</extension>

我会这样使用:(我在 Java 中工作;我看到你似乎不是)
public PropertyAccessor<${propertyType}> ${property:field}() {
return ${property};
}

public ${propertyType} get${capitalizedProperty:capitalize(property)}() {
return ${property}.get();
}

public void set${capitalizedProperty}(${propertyType} ${property}) {
this.${property}.set(${property});
}

从 Eclipse 3.5 开始,我遇到的问题是,一旦我为 property 指定了一个值,我的自定义解析器就没有机会重新解析。多变的。 Java 开发工具 (Eclipse JDT) 似乎通过一种名为 MultiVariableGuess 的机制重新解析了这个依赖模板变量。在 JavaContext 内(见 addDependency())。对我们来说不幸的是,该机制似乎没有公开,所以我/我们不能用它来做同样的事情(没有大量的复制和粘贴或其他冗余工作)。

在这一点上,我再次放弃一段时间,并将继续将前导小写和前导大写名称分别输入到两个独立的模板变量中。

关于eclipse - 有没有办法在 Eclipse(Helios)代码模板中将变量值的第一个字母大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4664989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com