Ayrıca bunu istiyorum ve bunu yapmak için özel bir TemplateVariableResolver
oluşturmaya çalıştım. (Zaten yeni UUIDs a la http://dev.eclipse.org/blogs/jdtui/2007/12/04/text-templates-2/ üretir yerinde bir özel çözümleyicim var.)
Ben
capitalize
bağlı özel çözümleyicinizi yaptı:
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));
}
}
(plugin.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>
Bu şekilde kullanacağım: (Java'da çalışıyorum; göründüğünüzü görmüyorum)
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'ten itibaren sahip olduğum sorun, özel çözümleyicimin property
değişken için bir değer belirttikten sonra yeniden çözme şansı elde etmemesidir. Görünüşe göre, Java Geliştirme Araçları (Eclipse JDT), JavaContext
içinde MultiVariableGuess
(addDependency()
) 'a bakın. Ne yazık ki bizim için, bu mekanizma açığa çıkmıyor gibi görünüyor, bu yüzden onu aynı şeyi yapmak için kullanamayız (kopyalayıp yapıştırmadan veya diğer gereksiz işlerden faydalanmadan).
Bu noktada, bir süre daha vazgeçiyorum ve önde gelen küçük harf ve büyük harfli adları iki bağımsız şablon değişkenine ayrı ayrı yazmayı sürdüreceğim.
Bu harika bir cevaptır. Teşekkürler. – Michal