¿Es posible automatizar comentarios para clases, métodos, constructores, etc. en Eclipse?

4


Digamos que si creo una nueva clase en Eclipse llamada "MyClass", el código se generará de la siguiente manera:

public class MyClass
{

}


Por convención personal, siempre termino el último paréntesis con un comentario como este:

public class MyClass
{

} // end of class MyClass



  • Entonces, ¿sería posible insertar dicho comentario para cada clase, método, constructor, etc.?
  • ¿Y sería posible "sembrar" el comentario con el nombre relevante?

... como :  // end of class (class name here) 

Ian Campbell
fuente

Respuestas:

2

Sí, casi, si ignora un retorno de carro.

Vaya a Ventana -> Preferencias -> Java -> Estilo de código - Plantillas de código

Esto está en Eclipse Indigo; puede ser diferente en otras versiones.

Ahora en el panel "Configurar código generado ..." a la derecha, abra la rama "Código" y seleccione y edite la entrada "Nuevos archivos Java".

En el cuadro de diálogo Editar, en el cuadro de texto Patrón, verá lo siguiente:

${filecomment}
${package_declaration}

${typecomment}
${type_declaration}

que debes modificar para esto:

${filecomment}
${package_declaration}

${typecomment}
${type_declaration}//end of ${type_name}

y luego guardar y cerrar. Intenta crear una nueva clase y verás que sale así:

package com.nomadsoft.cortex.application;

public class AdamsClass {

}
//end of AdamsClass

Desafortunadamente, no puede deshacerse del retorno de carro que coloca el comentario que desea en la siguiente línea. Está codificado dentro de Eclipse.

Dependiendo de cuánto esfuerzo desee realizar, puede elegir cómo obtener el comentario en la misma línea que el corchete final:

(Opción 1) puede editar los archivos de plantilla en el jar JDT:

eclipse\plugins\org.eclipse.jdt.ui_*.jar

abra templates / default-codetemplates.xml y busque la plantilla "newtype" en el xml, y reemplace "$ {type_declaration}" con

public class ${type_name} \{
\} // end of ${type_name}

(Opción 2) escriba un complemento completo para hacer esto. Me encantaría tener tiempo para hacer eso. Tal vez lo hagas. Ver ingrese la descripción del enlace aquí

Adán
fuente
Gracias @ Adam! Estas son soluciones excelentes, muy interesantes ... Estoy usando Eclipse Indigo, así que podré experimentar con esto. Me da un poco de miedo meterme con el JDT jar, pero definitivamente lo miraré, aunque la edición que sugieres parece mínima. Y no tengo tiempo para escribir un complemento, ¡pero ese sería un proyecto increíble! Sin embargo, Mechanical snailaquí está sugiriendo un complemento que parece hacer esto también.
Ian Campbell
¿Alguna idea sobre cómo generar un comentario similar para el final del método principal? (como en " // end of main method")
Ian Campbell
1
Pensé que podría haber una solución, porque si nos fijamos en Preferencias -> Java -> Plantillas, hay un "principal", pero los dos marcos no están vinculados: el marco de generación de código no usa la plantilla de teclas de acceso rápido marco de referencia. Entonces, si crea su método principal como parte de la generación del archivo de clase, entonces no, no puede hacerlo. Pero puede editar la plantilla de teclas de acceso rápido y usar "main ctrl-space" para insertarla después de haber creado la clase.
Adam
3

En mi opinión, esta es una mala práctica, porque los comentarios pueden no estar sincronizados.

Sin embargo , puede obtener el mismo efecto visual utilizando el complemento Bracketeer (consulte también esta publicación de blog ). El complemento muestra automáticamente los comentarios de cierre, como desee:

Ejemplo de bracketeer

sin guardarlos en el archivo fuente. Por lo tanto, los comentarios "fantasmas" siempre reflejan el estado actual del código, ofreciéndole lo mejor de ambos mundos.

El estilo de comentario es configurable .

Caracol mecánico
fuente
Buena respuesta, aunque estoy de acuerdo, es una mala idea. Su código debe dejar en claro qué se está terminando, mediante sangría o algo similar sin recurrir a esto.
soandos
Gracias @Mechanicalsnail! Mi pregunta puede ser algo engañosa, ya que en realidad no comento los corchetes finales de todo , sino en general solo de la clase y el método principal. Estoy seguro de que ese código debe ser claro y organizado para que se explique por sí mismo. Sin embargo, a veces comentaré los anidamientos externos si hay muchos anidamientos internos. Pero sí, es bueno tener un complemento que te dé la opción. ;)
Ian Campbell