2010-09-20 7 views
34

El formateador de Eclipse predeterminado formatea mi código de Java de una manera realmente divertida.¿Mejores formateadores de código Eclipse?

Por ejemplo: hello.show().x().y() se formatearía extrañamente como x() y .y(), y se colocaría en una línea separada.

¿Hay otros formateadores básicos que puedan hacer un mejor trabajo?

Ejemplos y enlaces son bienvenidos.

+5

¿Definir "muy divertido"? Como en: ¿Qué no te gusta de él? – Blam

+1

No me gustaría que esas llamadas de método en líneas separadas, ¿verdad? – duffymo

+2

Eso sucede cuando la línea es demasiado larga. Si x(). Y() está sobre el margen derecho, consideraría dividir las líneas un poco. –

Respuesta

27

Siempre cambio el formateador en Eclipse a Convención de Java Y modifique la política de tabulación para usar siempre espacio en lugar de tabulación o mezcla de tabulación y espacio. En algún momento cambio también el ancho de línea para que sea de 100 o 120 (80 caracteres es demasiado estrecho en mi monitor).

Según su petición específica: sí, puede cambiar este comportamiento. Ve a la preferencia de formateador y crea tu propio perfil. Modifíquelo en la pestaña Ajuste de línea y desmarque Prefer wrapping outer expressions (keep nested expression on one line).

Más información sobre: ​​https://bugs.eclipse.org/bugs/show_bug.cgi?id=313524

+0

exactamente lo que estaba buscando –

+0

El único problema con las líneas anchas es cuando le pides a Eclipse que las imprima ... –

+0

Hilo viejo, pero aún responderá. La impresión es un problema. Estoy de acuerdo. Estoy finalizando un formateador aquí para el equipo. Estoy a favor de la Convención de Java con solo espacios, el formato de comentarios de bloque y línea está desactivado y 120 líneas. Nosotros, como programadores, necesitamos alejarnos de la convención de las 80 líneas. En estos días donde las pantallas LCD anchas son muy comunes en las empresas de desarrollo de software, debemos comenzar a pasar a la convención de 120 líneas y disminuir el dolor en nuestros ojos. – RuntimeException

5

¿Ha considerado las preferencias del formateador? Básicamente puede configurarlo para hacer lo que quiera.

Sin embargo, consideraría seriamente el formato Eclipse estándar. Ayuda mucho usar el estándar y luego ajustar su estilo de codificación para que funcione bien con eso.

+0

[Casi] (http://stackoverflow.com/q/8686252/403455) lo que quieras. :( –

8

Además de la posibilidad de personalizar el formateador, según lo indicado por Thorbjørn, también es posible importar las convenciones de proyectos específicos, especialmente los de los marcos y bibliotecas que son la codificación trabajando en.

Por ejemplo, Spring framework coding conventions están disponibles, como en el caso de Android. Eventualmente, es mejor comenzar con las convenciones de codificación de Sun (que con una versión completamente hecha a mano), con algunas modificaciones hechas para adaptarse al estilo de codificación y los requisitos de legibilidad de su organización.

65

Recomiendo encarecidamente el google's style guide, es una colección de guías de estilo de programación para lenguajes de programación de uso común.

La guía de Java configurable de eclipse se puede encontrar en here. Instalación de la guía es bastante simple, ahorre el xml estilo a un archivo e importarlo utilizando el siguiente cuadro de diálogo:

Ventana -> Preferencias -> Java -> Estilo de código -> Formateador

último seleccione el perfil activo como GoogleStyle.

+6

Esto arroja un error en la importación ahora con Eclipse Mars. Detalles específicos: 'Problemas al leer perfiles de XML El nombre de atributo" data-pjax-transient "asociado con un elemento tipo" meta "debe ir seguido del carácter '='. – anon58192932

+2

https://github.com/google/google -java-format prueba esta solución en su lugar – vikramvi

+1

@ anon58192932 El error "data-pjax-transient" ocurre si descargas el archivo desde la página web de github (por ejemplo, guardar como). ¡El contenido es HTML y ** NO ** el archivo XML! Si realiza una descarga real del archivo sin procesar, funciona ... – Lonzak

Cuestiones relacionadas