502 votos

¿Cómo desactivar el formateador de código de Eclipse para ciertas secciones del código de Java?

Tengo un poco de código Java con SQL declaraciones escritas como Java las cadenas (por favor, no O/M flamewars, el SQL incrustado es lo que es - no es mi decisión).

He roto las instrucciones SQL semánticamente en varias cadenas concatenadas a través de diversas líneas de código para facilidad de mantenimiento. Así que en lugar de algo como:

String query = "SELECT FOO, BAR, BAZ FROM ABC WHERE BAR > 4";

Tengo algo así como:

String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";

Este estilo hace que el SQL mucho más fácil de leer y de mantener (en mi humilde opinión), especialmente para las consultas más grandes. Por ejemplo, puedo poner mi editor en "sobrescribir" y modificar el texto en el lugar con bastante facilidad.

Tenga en cuenta que este problema se generaliza más allá de la particular ejemplo de SQL. Cualquier código que está escrito con cualquier formato vertical, particularmente tabular de las construcciones, es susceptible a la destrucción por un bonito impresora.

Ahora, algunos miembros del proyecto utilizar el editor de Eclipse y la semántica de formato es a menudo destruyen al formato de un archivo de código fuente completo.

Hay una manera de instruir a Eclipse para ignorar ciertas líneas de la fuente con respecto a formatear?

Estoy buscando algo como un comentario especial que se activa o desactiva el Eclipse formateador. Idealmente, un comentario puede ser configurable para ser lo que elija, y otros formateadores podría ser programado para respetar así:

// STOP-ECLIPSE-FORMATTING
String query =
    "SELECT FOO, BAR, BAZ" +
    "  FROM ABC          " +
    " WHERE BAR > 4      ";
// START-ECLIPSE-FORMATTING

Obviamente, una de las "soluciones" tienen los miembros de nuestro equipo de estandarizar en algunos externo formateador como Jalopy o JIndent, pero eso no es lo que trata esta cuestión (que también, no es mi decisión sobre este proyecto): estoy en busca de un camino para evitar el Eclipse formateador sobre una base ad-hoc.

Idealmente, una solución que me permita insertar instrucciones para el Eclipse formateador sin necesidad de los miembros del equipo usando Eclipse para hacer cualquier IDE de reconfiguración (aparte de, posiblemente, la elección de un formateador de agnóstico comando comentario: STOP-ECLIPSE-FORMATTINGSTOP-FORMATTING).

880voto

xpmatteo Puntos 4850

Eclipse 3.6 permite desactivar el formato mediante la colocación de un comentario especial, como

// @formatter:off
...
// @formatter:on

El encendido/apagado de las características a ser "activadas" en Eclipse preferencias: Java > Estilo de Código > Formateador. Haga clic en el botón "Editar", "Off/On " Etiquetas", marcar "Activar/Desactivar las etiquetas".

Es posible cambiar las cadenas mágicas en las preferencias:

http://archive.eclipse.org/eclipse/downloads/drops/R-3.6-201006080911/eclipse-news-part2.html#JavaFormatter

Más Información

Java -> Code Style -> Formatter -> Edit -> Off/On Tags

Esta preferencia le permite definir una etiqueta para deshabilitar y una etiqueta para habilitar el formateador (ver el encendido/Apagado De la ficha Etiquetas en su formateador de perfil): enter image description here También es necesario habilitar las banderas de Java Formatting

61voto

jitter Puntos 35805

Que yo sepa de Eclipse 3.5 M4 en el formateador tiene una opción "Nunca unirse a líneas" que preserva usuario líneas se rompe. Tal vez eso es lo que quieres.

Si existe este hack feo

String query = //
    "SELECT FOO, BAR, BAZ" + //
    "  FROM ABC"           + //
    " WHERE BAR > 4";

16voto

ZilWerks Puntos 131

Tienes que activar la posibilidad de añadir las etiquetas del formateador. En la barra de menú:

Windows → Preferencias → Java → código estilo → formateador

Presione el botón "Editar". Elija la última ficha, en Off y les permiten con una casilla de verificación.

14voto

CPerkins Puntos 5209

Si pones el signo en el principio de la línea, lo formatos diferentes:


  String query = 
    "SELECT FOO, BAR, BAZ" 
    +    "  FROM ABC"           
    +    " WHERE BAR > 4";

4voto

Robin Puntos 15032

@xpmatteo tiene la respuesta a la desactivación de las porciones de código, pero además de esto, el valor predeterminado eclipse configuración debe ser ajustado a formato de sólo editado líneas de código en vez de todo el archivo.

Preferences->Java->Editor->Save Actions->Format Source Code->Format Edited Lines

Esto habría impedido que esta sucediendo en el primer lugar desde su compañeros de trabajo son volver a formatear el código que en realidad no cambia. Esta es una buena práctica para evitar accidentes que hacen diff en el control de código fuente inútil (cuando un archivo completo se vuelve a formatear porque de menor ajuste del formato de las diferencias).

También evitaría que la de volver a formatear si el on/off opción de etiquetas que estaba desactivada.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X