sangre roja lunas lunar luna julio fechas java eclipse code-formatting

java - lunas - luna roja 2018 fechas



Configuración del formateador de Eclipse para el patrón de Constructor (5)

AFAIK, este es un problema conocido con Eclipse Formatter: https://bugs.eclipse.org/bugs/show_bug.cgi?id=59891

Estoy extremadamente frustrado con las reglas de formato de Eclipse para una serie de invocaciones calificadas (es decir, el estilo de patrón de Builder). Por ejemplo, aquí está mi formato preferido para algún código que crea un nuevo objeto Options CLI de Apache Commons:

Options options = new Options() .addOption(OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information") .addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false, "print version and exit") .addOption(OptionBuilder.withLongOpt(OPTION_PROPERTIES) .hasArg() .withArgName("FILE") .withType(File.class) .withDescription("specify a user properties file") .create());

Es decir, los parámetros se envuelven y sangran si es necesario y todas las invocaciones calificadas excepto la primera, a menos que sea necesario, se envuelven y sangran si hay más de una. Si una lista de parámetros se ajusta dentro de una invocación calificada, la invocación debe cerrarse primero.

El formato predeterminado en Eclipse ("Ajustar solo cuando sea necesario" para argumentos e invocaciones) genera el siguiente problema:

Options options = new Options().addOption( OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information") .addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false, "print version and exit").addOption( OptionBuilder.withLongOpt(OPTION_PROPERTIES).hasArg().withArgName( "FILE").withType(File.class).withDescription( "specify a user properties file").create());

Entrando en "Java Code Style -> Formatter -> Line Wrapping" y la configuración de ajuste de línea a "Ajustar todos los elementos, excepto el primer elemento si no es necesario" para las invocaciones produce:

Options options = new Options().addOption( OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information") .addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false, "print version and exit") .addOption( OptionBuilder.withLongOpt(OPTION_PROPERTIES).hasArg().withArgName( "FILE").withType(File.class).withDescription( "specify a user properties file").create());

No me gusta que la expresión de OptionBuilder no esté siendo ajustada, o que el "FILE" quede envuelto sin que también se withArgName .

Cambiar la sangría a "Sangría en columna" produce:

Options options = new Options().addOption(OPTION_HELP_SHORT, OPTION_HELP, false, "print usage information") .addOption(OPTION_VERSION_SHORT, OPTION_VERSION, false, "print version and exit") .addOption( OptionBuilder.withLongOpt( OPTION_PROPERTIES) .hasArg() .withArgName("FILE") .withType(File.class) .withDescription( "specify a user properties file") .create());

Está rompiendo las líneas donde preferiría, pero empujando las cosas demasiado a la derecha.

¿Hay alguna forma de convencer a Eclipse para que aplique mi estilo de formato preferido o algo más cercano a él que cualquiera de los anteriores?


Desactivar el formateo con comentarios o insertar comentarios de línea es demasiado tedioso.

La mejor manera se describe here :

... o puede seleccionar "Envoltura de línea> Nunca unirse a líneas ya envueltas" globalmente. Luego, puede dividirlo manualmente y el formateador solo formateará las líneas (o agregará saltos de línea adicionales si es necesario).

Con esta configuración, el formateador Eclipse dejará de arruinar las instrucciones de su constructor.



En el menú, seleccione Ventana -> Preferencias cuando se abra la ventana, seleccione Java -> Estilo de código -> Formateador y desde allí puede crear su propio estilo de formato para usar seleccionando la opción nueva o editar. Al editar un perfil de formato, se abre una nueva ventana que le brinda muchas opciones diferentes para usar.


Use comentarios:

Object o = foo() // .bar() // .toString();