Hacer que el formateador de código Java de Eclipse ignore los comentarios de bloque

78

¿Hay alguna manera de hacer que el formateador de código Java incorporado de Eclipse ignore los comentarios? Siempre que lo ejecuto, convierte esto:

    /*
     * PSEUDOCODE
     * Read in user's string/paragraph
     * 
     * Three cases are possible
     * Case 1: foobar
     *         do case 1 things
     * Case 2: fred hacker
     *         do case 2 things
     * Case 3: cowboyneal
     *         do case 3 things
     *         
     * In all cases, do some other thing
     */

dentro de esto:

    /*
     * PSEUDOCODE Read in user's string/paragraph
     * 
     * Three cases are possible Case 1: foobar do case 1 things Case 2: fred
     * hacker do case 2 things Case 3: cowboyneal do case 3 things
     * 
     * In all cases, do some other thing
     */

Ya he jugado con la configuración de Windows> Preferences> Java> Code Style> Formatter pero no puedo encontrar una para mantener el formato de los comentarios. Estoy usando Eclipse 3.4.0.

Pops
fuente
Está ahí en la configuración del formateador, no sé cómo te lo estás perdiendo. Edite el perfil, hay un cuadro de diálogo con 8 pestañas, la última pestaña es para formatear los comentarios.
skaffman
Veo la pestaña de comentarios, pero los problemas de formato ocurren sin importar la combinación de casillas de verificación que use.
Pops el
Tengo el mismo problema con Scala en Eclipse, pero las siguientes soluciones son específicas de Java, ya que la pestaña del formateador de código Scala tiene diferentes opciones. ¿Hay alguna forma de desactivar el reformateo de comentarios para Scala?
Glenn Strycker

Respuestas:

40

Actualice 2010, como lo señaló el OP y en esta respuesta , la cadena especial // @formatter:offen Eclipse 3.6 es suficiente.

No estaba disponible en el momento de la pregunta.


Respuesta original: junio de 2009, Eclipse 3.4 / 3.5

Con Java Formatter ( Windows > Preferences > Java > Code Style > Formatter), puede crear un nuevo perfil de formateador.

En la pestaña Comentarios (en eclipse3.5), puede asegurarse, en " Javadoc comment settings", desmarcar " Format HTML tags".
Consulte también el " Never join lines" en la General settingssección " ".

Entonces su comentario debe escribirse como:

/**
 * PSEUDOCODE
 * Read in user's string/paragraph
 * 
 * Three cases are possible:
 * <dl>
 *   <dt>Case 1: foobar</dt>
 *     <dd>        do case 1 things</dd>
 *   <dt>Case 2: fred hacker</dt>
 *     <dd>        do case 2 things</dd>
 *   <dt>Case 3: cowboyneal</dt>
 *     <dd>        do case 3 things</dd>
 * </dl>        
 * In all cases, do some other thing
 */

Nota: He hecho un comentario de Javadoc , y no un comentario simple, ya que creo que un comentario con tanto texto puede estar mejor ubicado frente a un método. Además, las secciones de Javadoc tienen más parámetros de formato para jugar.
Si está en frente de un método (verdadero Javadoc), las etiquetas HTML <dl>, <dt>y<dd> ayudará a presentar de forma adecuada dentro de la vista de Javadoc.

VonC
fuente
1
La parte relevante de esta respuesta, para mí, fue que las etiquetas HTML NO se insertan automáticamente en los saltos de línea y similares. Probablemente sea obvio para la mayoría, pero no me di cuenta de que tenía que codificar manualmente cosas como <br> hasta que lo vi aquí.
Pops el
@Lord Torgamus: no solo tienes que agregar esas etiquetas, sino que la primera oración requiere un período y un espacio, antes del <br />! (ver bugs.sun.com/bugdatabase/view_bug.do?bug_id=4165985 )
VonC
Tengo el mismo problema con Scala en Eclipse, pero las siguientes soluciones son específicas de Java, ya que la pestaña del formateador de código Scala tiene diferentes opciones. ¿Hay alguna forma de desactivar el reformateo de comentarios para Scala?
Glenn Strycker
1
esto no responde a la pregunta formulada
Enerccio
183

Existe otra solución que puede utilizar para suprimir el formato de comentarios de bloques específicos. Use /*-(observe el guión) al principio del comentario del bloque y el formato no se verá afectado si formatea el resto del archivo.

/ * -
 * Aquí hay un comentario de bloque con algunos muy especiales.
 * formato que quiero que indent (1) ignore.
 *
 * uno
 * dos
 * Tres
 * /

Fuente: http://www.oracle.com/technetwork/java/javase/documentation/codeconventions-141999.html#350

Michelle Crane
fuente
Nunca había visto eso antes, incluso fuera de contexto. +1!
Pops
16
Lamentablemente, esto solo funciona con comentarios de bloque "regulares", no con comentarios de Javadoc.
Pops
Perfecto para la versión: Juno Service Release 1. ¡Gracias, mi salvador!
Hong
1
e incluso esto es útil cuando tiene su propio formateador que agrega estrellas para cada inicio de línea y no desea que el formateador predeterminado lo haga, entonces puede usar / * - ...... * / que es muy útil
Shiva Komuravelly
Todavía funciona en 2020 (Versión: 2020-06 (4.16.0)) :-) muy agradable
rustyx
25

Acabo de enterarme por un compañero de trabajo que Eclipse ofrece etiquetas de formato especiales que se pueden usar para esto:

// @formatter:off
/*
 * ╔════════╦═══════╦══════════╗
 * ║ Month  ║ Sales ║ Position ║
 * ╠════════╬═══════╬══════════╣
 * ║ June   ║ 44k   ║ 2nd      ║
 * ║ July   ║ 39k   ║ 2nd      ║
 * ║ August ║ 49k   ║ 4th      ║
 * ╚════════╩═══════╩══════════╝
 *
 * This comment shouldn't be formatted, and will now be ignored by the formatter.
 */
// @formatter:on

Tenga en cuenta que puede que tenga que habilitar manualmente esta función a través del menú Preferencias → Java> Estilo de Código> formateador, al hacer clic en Editar , seleccionar el apagado / encendido Etiquetas ficha y comprobar Habilitar No / etiquetas ( fuente ).

Un Google rápido para la cadena @formatter: off me llevó a esta otra respuesta SO , que mencionaba esta característica en el contexto de deshabilitar el formateador para bloques de código. He confirmado que funciona para comentarios de línea, comentarios de bloque "normales" y comentarios de bloque de Javadoc también.

Pops
fuente
¿Cómo lo hiciste funcionar para los comentarios de JavaDoc? Descubrí que tenía que poner comentarios de línea antes y después de los comentarios de JavaDoc para que esto funcione, como lo hizo para el comentario de bloque en esta respuesta. Esperaba poder desactivar el formateo solo para una sección de un comentario de JavaDoc.
Michael Scheper
@MichaelScheper ha pasado un tiempo, y no recuerdo exactamente ... ¿ Probaste el consejo de VonC ?
Pops
Esto es excelente, porque le dice a eclipse que no formatee el código también. Útil cuando desea mantener su propio formato.
Martin Wickman
18

Otra posibilidad es usar HTML's <pre> en Javadoc:

/**
 * <pre>
 *    this
 *   is
 *      kept
 *  as
 *    is
 * </pre>
 */

Al menos así es como tiendo a incrustar mi arte ASCII en los comentarios del código fuente :)

Thomas Keller
fuente
1
Tenga en cuenta que Eclipse formateará el contenido de la etiqueta <pre> </pre> si lo ve como un código java (a menos que desmarque Ventana-> Preferencias-> Java-> Estilo de código-> Formateador-> Editar ... [Botón ] -> Comentarios [Tab] -> "Formato de fragmentos de código Java dentro de las etiquetas 'pre'")
gswierczynski
9

Rodee el texto específico con <pre> </pre>etiquetas.

Felipe
fuente
2

En Eclipse 3.4: Preferencias, Java-> Estilo de código-> Formateador, luego editar perfil, pestaña de comentarios. Hay un montón de opciones para controlar el formato de los comentarios.

skaffman
fuente
1

Si desea suprimir el formato en eclipse, siempre puede envolver el contenido que está destinado a NO SER FORMADO en una <pre>UNFORMATTED CONTENT</pre>etiqueta. El formateador Javadoc detectará esa etiqueta y dejará todo entre esas etiquetas sin formato.

Pros:

  • El resto de Javadoc todavía está formateado
  • La salida html de Javadoc también estará "sin formato" debido a las etiquetas previas

Contras:

  • No ver uno
Antoniossss
fuente
1

una solución alternativa es agregar una etiqueta previa para los comentarios que no desea que eclipse formatee

/**
 * <pre>
 *    this part
 *   is
 *      out of
 *  format
 *    
 * </pre>
 */
K. Andy Wang
fuente
2
Es cierto ... pero no veo qué agrega esto a lo que Philip o Thomas Keller ya dijeron en sus respuestas hace años.
Pops
1

Prueba este. Esto funcionó para mí. Con Java Formatter (Windows> Preferencias> Java> Estilo de código> Formateador), puede crear un nuevo perfil de formateador existente y luego editarlo.

Si Eclipse no permite guardar esto, cree uno nuevo y guárdelo. ingrese la descripción de la imagen aquí

Milán Kamboya
fuente
Esta es la respuesta con Eclipse reciente: ahora puede deshabilitar cualquier formato de comentario (javadoc, bloque o en línea).
Tristan
0

Depende del idioma.

Por ejemplo, si trabaja con javascript, debe ir a "Ventana -> Preferencias -> Javascript -> Estilo de código -> Formateador" y luego editar las opciones del formateador.

Editar (reflejando cambios en Preguntas OP

Para editar el formato de código Java, vaya a "Ventana -> Preferencias -> Java -> Estilo de código -> Formateador"

En la parte superior del panel verá

Perfil activo:
Eclipse [integrado]

Desde allí tiene un botón a la derecha, "Editar", y dos debajo, "Nuevo ..." e "Importar ...". Recomendaría editar el perfil existente.

En el cuadro de diálogo Editar perfil, hay una serie de pestañas en la parte superior. La última pestaña es "Comentarios". Para deshabilitar por completo el formato de comentarios, desmarque "Habilitar formato de comentario Javadoc", "Habilitar formato de comentario de bloque", "Habilitar formato de comentario de línea" y "Habilitar formato de comentario de encabezado".

Jonathan Fingland
fuente
0

Puede cambiar esto en Windows - Preferencias - Java - Estilo de código - Formateador, luego haga clic en el botón Editar ..., busque Comentarios, elija Nunca unir líneas.

Entonces, debería estar bien.

GH Dev
fuente