2008-12-09 3 views
38

Recuerdo que había una forma de marcar una sección de código en eclipse (comentario especial o anotación?) Que hacía que el autoformatter ignorara esa sección. O puedo haber eliminado esto ...¿Cómo puedo hacer que el autoformatter de eclipse ignore una sección de código?

Se utiliza principalmente cuando tengo cadenas que se envuelven en varias líneas y no quiero que el autoformatter reorganice esto.

+4

Se busca: Eclipse @AutoFormatIgnore anotación! –

Respuesta

56

Desde eclipse 3.5 (o 3.6) esto es posible: - Ir a las propiedades del proyecto - Estilo de código Java - Formateador - Editar ... - seleccione la pestaña marcada "Off/On Etiquetas", - incluyen las etiquetas de comentarios en el código fuente, como

/* @formatter:on */ 
+1

Desde 3.6 (Helios). Consulte la página nueva y destacada para obtener más información: http://download.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-news-part2.html#JavaFormatter –

2

Sólo sé la respuesta a los comentarios:

Eclipse es lo suficientemente inteligente como para solamente volver a formatear los comentarios donde el JavaDoc generada no iba a cambiar (es decir, donde los espacios en blanco no importa):

/** 
* foo <i> 
* bar </i> 
* 
* <pre> 
* foo 
* bar 
* </pre> 
*/ 

tendrá un nuevo formato en

/** 
* foo <i> bar </i> 
* 
* <pre> 
* foo 
* bar 
* </pre> 
*/ 

Nota cómo el contenido de las etiquetas <pre> no se vuelve a formatear.

Para los literales largos de cadena, sugiero que pueden ser un indicio de que debe externalizar algunos de ellos.

+0

Tenga en cuenta que Eclipse formateará el contenido de la etiqueta

 si lo ve como un código Java (a menos que desactive Ventana-> Preferencias-> Java-> Estilo de código-> Formateador-> Editar ... [Botón] -> Comentarios [ Tab] -> "Formatear fragmentos de código Java dentro de las etiquetas 'pre'") –
                        
                            
    gswierczynski
                                
                            
                        
                    

0

Puede marcar el código que desea formatear y seleccionar el formato con el botón derecho del mouse en esta sección. Esta es una solución "whitlist", quizás ayude ...

1

No estoy seguro de la función exacta a la que se refiere, pero puede cambiar la política de expresiones de línea, lo que puede ayudarlo con sus cadenas problema. Ver:

Ventana-> Preferencias> Java> Código Style-> Formateador

Haga clic en "Editar ..." Botón

Haga clic en "el ajuste de línea" Tab

En el árbol, elija Expresiones-> Asignaciones, luego cambie la política de sangrado en la parte inferior de la ventana.

Por supuesto, hay muchas otras opciones dentro del formateador, puede encontrar muchas de ellas útiles para otras reglas, como dónde colocar las llaves o cómo aplicar sangría a los bloques de control.

1

Acabo de encontrar esta pregunta porque también me molesta la falta de esta característica.

Una pequeña búsqueda mostraron esta pregunta y la respuesta siguiente: Stop eclipse from line wrapping?

Eclipse 3.5 es compatible con esta. (Llegó al lanzamiento del candidato hace unos días, así que podría valer la pena visitarlo)

¡Buena suerte con esto! :)

+0

Buena referencia, aunque no podré usarlo porque estoy trabajando en un marco estúpido construido sobre eclipse 3.2 –

1

Me encontré con esto, porque me encantaría ver el color de la sección en Eclipse. Imagina que simplemente puedes dar un color de fondo a las secciones dentro de tu código. ¿No lo haría más accesible, especialmente cuando te desvanezcas a las 4 a.m.? :)

+0

¡buena idea! También me encantaría poder descifrar los bits de código poco interesantes para llamar la atención sobre los bits importantes. ¡incluso una característica 'audaz' sería buena para esto! –

9

Usted puede envolver el código que no quiere auto-formateado entre estos comentarios especiales :

normal code 

/* @formatter:off */ 
strangely laid out code 
/* @formatter:on */ 

normal code 

Aquí hay un ejemplo básico de uso que hace una cadena JSON (ligeramente) más legible:

public class SomeTest { 

    @Test 
    public void can_deserialize_json() { 
     /* @formatter:off */ 
     String json = "" + 
     "{" + 
     "   \"id\" : 123," + 
     "   \"address1\" : blah," + 
     "   \"shippingInfo\" : {" + 
     "      \"trackingUrl\" : null," + 
     "      \"price\" : 350" + 
     "   }," + 
     "   \"errorMessage\" : null" + 
     "}"; 
     /* @formatter:on */ 
     MyClass.deserializeJson(json); 
    } 
} 
Cuestiones relacionadas