Quiero crear un complemento que defina una nueva plantilla de código (like this blog post). ¿Cómo puedo pasar un parámetro a la plantilla? como ${name:param}
?Cómo pasar el parámetro a la plantilla de código en eclipse-plugin
Respuesta
No hay muchas cosas que pueda pasar a una plantilla de código. Por ejemplo, ${word_selection}
contiene la selección actual.
Pero lo que muchas personas están desaparecidas es que se puede definir sus propias variables:
private static final ${type} ${name} = new ${type} (${cursor});
Ni ${type}
${name}
ni están en la lista de la que se obtiene cuando se hace clic en el botón "Insert variable ...". Eclipse lo nota y le permite recorrerlos con Tab y mantendrá el contenido de estos "campos de plantilla" personalizados sincronizados (para que la parte siguiente al new
se complete si escribe en el primer campo).
See this answer for other useful Eclipse templates.
[EDITAR] Según las respuestas en la publicación de blog que mencionas, esto solo es posible en este momento con plantillas de editor, no plantillas de código. Sugiero archivar un error contra el texto JDT para abrir la API para esto.
Esta solución está dirigida a Eclipse 4.2 Juno, no he probado esto en ningún otro entorno.
Todo lo que tienes que hacer es pasar tus parámetros, y entonces los tendrás disponibles.
Digamos que queríamos crear un TemplateVariableResolver que marque la primera letra de un parámetro pasado.
Vas a rellenar su primera plugin.xml de la siguiente manera:
<extension point="org.eclipse.ui.editors.templates">
<resolver class="org.eclipse.ui.templates.UppercaseResolver"
contextTypeId="java"
description="${Uppercase(word[, word...])} uppercase's the provided words"
name="Uppercase words" type="Uppercase"/>
</extension>
También crearía su resolución personalizada:
public void resolve(TemplateVariable variable, TemplateContext context) {
if (variable.getVariableType().getParams().size() > 0) {
StringBuffer result = new StringBuffer();
for(String value : (List<String>) variable.getVariableType().getParams()) {
value = value.substring(0,1).toUpperCase() + value.substring(1);
result.append(value);
}
variable.setValue(result.toString());
}
}
Finalmente en la plantilla de código:
String name = ${Uppercase(james,laPenn)};
- 1. Cómo pasar el parámetro a Ext.data.Store?
- 2. Pase el parámetro a una plantilla personalizada
- 3. JasperReports: Cómo pasar el parámetro a subReport
- 4. cómo pasar el parámetro a jsp: incluir
- 5. Pasar una función como un parámetro de plantilla explícita
- 6. Cómo pasar el parámetro a mi código de manejo de eventos para imprimir la imagen
- 7. Plantilla de parámetro predeterminada frente a plantilla variadic: ¿cuál es el último parámetro de plantilla?
- 8. ¿Cómo pasar parámetros a la plantilla PHP procesada con 'incluir'?
- 9. Restringir el parámetro de plantilla de C++ a la subclase
- 10. Cómo pasar el parámetro url a reverse_lazy en Django urls.py
- 11. Parámetro de la plantilla de la plantilla en la función
- 12. ¿Cómo pasar el parámetro a las secuencias de comandos ant?
- 13. Cómo pasar el parámetro a sql 'en' instrucción?
- 14. Cómo pasar el parámetro a un archivo HTML de android
- 15. Cómo especializar miembro de la clase de plantilla con el parámetro de plantilla de plantilla
- 16. ¿Cómo pasar el parámetro a un servicio web usando ksoap2?
- 17. Cómo pasar el parámetro n a printf ("% nd", some_int);
- 18. ¿Cómo puedo pasar un parámetro a una vista en iOS?
- 19. Cómo utilizar un parámetro de plantilla en otro parámetro de plantilla declarado ante
- 20. Pasar una variable a la plantilla en Middleman 2
- 21. Cómo pasar un valor de parámetro a a4j: jsFunction
- 22. Datatables - cómo pasar el parámetro de búsqueda en una url
- 23. ¿Cómo pasar array como parámetro en el método java?
- 24. parámetro de plantilla Opcional
- 25. ¿Por qué no puedo pasar los parámetros de la plantilla a otra plantilla?
- 26. ¿Cómo configurar la plantilla de control en el código?
- 27. Cómo pasar la matriz de objetos como parámetro en Java
- 28. Función de plantilla C++ tomando clase de plantilla como parámetro
- 29. rieles pasar parámetro adicional a un modelo
- 30. C++ 11 `using` palabra clave: especialice el alias de la plantilla del parámetro de la plantilla
quise decir del complemento eclipse, cuando defino mi propia plantilla. – IAdapter
¿Cuál es la diferencia de plantillas de código y editor? – fastcodejava
El IDE utiliza las plantillas de código cuando genera código para usted (como en "Generar compiladores y ajustadores"). Las plantillas del editor es lo que obtienes cuando escribes una palabra clave (que defines) y presionas Ctrl + Espacio. –