Pregunta

Tenemos aquí en el trabajo una convención de codificación muy extraña, y no logré configurar el Java Formatter en Eclipse Derecho de hacer lo que quiero. La convención dice:

  • Antes de un aparato ortopédico rizado "{" siempre debe haber una nueva línea

Actualizar] No hay una regla en nuestra convención que dice, si después de un "{" debería ser una ruptura de línea o no. Los ejemplos en realidad usan un descanso de línea (y casi cualquier convención que vi hasta ahora dice o implica que después de un "{" y un "}" siempre debe ser un descanso de línea). Entonces, la muestra 1 y 2 son "sintácticamente correctas". [/ACTUALIZAR

Como esto sopla el código, nuestro equipo ha decidido escribir un código como este (¡no, esta no fue mi elección!):

public void methode(final boolean b)
{ if (b)
  { do.something();
  }
  else
  { do.somethingElse();
  }
}

Pero en el formateador solo logré obtener esto:

public void methode(final boolean b)
{
  if (b)
  { 
    do.something();
  }
  else
  { 
    do.somethingElse();
  }
}

o esto:

public void methode(final boolean b) { 
  if (b) { 
    do.something();
  }
  else {
    do.somethingElse();
  }
}

¿Hay alguna forma de decirle al formateador que rompa las líneas antes de un "{" pero no después de eso? Sé que el primer estilo es horrible, y me complacería usar uno de los dos últimos, pero esta es una decisión de la compañía.

¿Fue útil?

Solución

Entonces, aquí una información sobre este tema. He investigado más. El estilo de abrazadera So abominado aquí (muestra 1) tiene un nombre: El estilo de Brace Horstman o aquí Horstman. Hay un pequeño grupo de personas que lo defienden, ya que combina las ventajas del estilo K&R y Allman (Muestra 2). A medida que los aparatos ortopédicos están alineados, y no hay "desechos" de espacio.

Pero este no es el único verdadero. Este estilo miserable para los VC. Si necesita agregar una línea entre el aparato ortopédico y la primera declaración, primero necesita romper la línea y colocar su nueva línea allí. En la diferencia o la fusión, verá que no "se ha agregado una línea", sino "una línea ha sido intercambiada por dos líneas". Pero la declaración realmente antigua fue cambiada por usted.

Entonces, otro argumento, no para usar este estilo.

Otros consejos

¿Podría desactivar las partes relevantes del formato de código y utilizar las plantillas en su lugar? Por ejemplo al escribir

private_

y golpear el espacio CTRL+invocaría la plantilla privada_method. Luego podría modificar la plantilla privada para que sea algo como esto,

private ${return_type} ${name}(${}) 
{ ${cursor}
}

Tendría que hacer cosas similares a las otras declaraciones de bloque y tendría que modificar su estilo de codificación para comenzar a usar las plantillas con más frecuencia, pero creo que podría funcionar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top