2010-08-04 7 views
9

Intenté encontrar una solución por ahora ~ 30min y no pude encontrar ninguna. Estoy tratando de configurar el estilo de código en CDT por lo que me da:Lista de inicialización del constructor de formato (línea) en Eclipse CDT

MyClass::MyClass() :  
var1(1), 
var2(2), 
var3(3){ 

} 

en lugar de

MyClass::MyClass() :  
var1(1), var2(2), var3(3){ 

} 

pero no pude encontrar una opción para hacerlo.

La única opción de "lista de inicializadores" que pude encontrar es en realidad para las matrices y, por lo tanto, no es útil para mí.

Mi pregunta es: ¿Me falta el lugar correcto? ¿Hay un complemento que mejor formatee el código de C++ que el CDT?

+0

¿Alguna vez encontrar una solución a esto? De ser así, ¿podrías publicarlo como respuesta a tu pregunta? – Catskul

+0

Perdón por el comentario tardío: no, nunca he encontrado una respuesta. – DragonTux

+0

eche un vistazo a la respuesta ... ¡solo un poco tarde! (: –

Respuesta

1

@Eric proporciona una solución manual, pero para que esto auomatic entorno, es necesario modiy preferencias de Eclipse.

Haga clic en:
Ventana -> Preferencias

Ir a:
C/C++ -> estilo de código -> Formateador

Aquí, como lo primero que tienen que crear una nuevo perfil.

ficha Selección:
el ajuste de línea

Ir a:
declaraciones de función -> Constructor lista de inicialización

en la parte inferior, usted tiene que establecer:

  • Política de envoltura de línea: Envuelva todos los elementos, cada elemento t en una nueva línea.
  • cheque "Fuerza de división, incluso si la línea es más corta que la máxima" la política
  • abolladuras: guión en la columna
+0

Esto parece de hecho la forma correcta de hacer esto. ¿Se ha agregado esto en 4.3 o lo extrañé por completo? – DragonTux

+0

No puedo verificar esto ... ¿qué versión usaste? –

+0

Acabo de encontrar a alguien en mi oficina que todavía tenía 4.2 (Juno) instalado. Esta fue la versión para la que hice la pregunta. Y, de hecho, su solución está disponible incluso en 4.2. ¡Muchas gracias! – DragonTux

1

Bueno, no puedo decirte exactamente cómo hacer esto, pero si no te importa un poco de espacio en blanco puedo acercarte. Ingrese una línea en blanco entre cada línea. Es decir:

MyClass::MyClass() :  
var1(1), 

var2(2), 

var3(3){ 
} 

Ahora cuando vuelva a formatear, este diseño se pegará. Sé que no es exactamente lo que quieres, pero pensé que publicaría en caso de que no supieras sobre este trabajo.

+0

Gracias por publicar esto. Tiene razón, no es perfecto, pero es adecuado para listas cortas. Esto funcionará para algunas de mis clases, thx! – DragonTux

+0

Siempre puede agrupar varios elementos relacionados (que son lo suficientemente cortos) en una línea y luego use esta técnica para separar grupos. Me encuentro usando esto cada vez más para * controlar * manualmente mis listas de inicializadores. Para mí, es ** muy ** importante poder escanear y modificar rápidamente mis listas de inicializadores Mi configuración de pelusa está configurada de modo que tengo que inicializar todos los miembros vars en el orden correcto en la lista de inicialización. Me resulta útil establecer mi ancho máximo de línea en 120. – Tod

1

Pruebe esto. No tengo el paquete CDT, así que no puedo probar esto, pero el formateo hace algo similar en Java.

Si pones un comentario al final de una línea, que se mantendrá la nueva línea

MyClass::MyClass() : // 
var1(1), // 
var2(2), // 
var3(3){ // 

} 
+0

El primer inicializador tiene una sangría diferente a todas las demás. No es ideal, pero es mucho mejor que el método de espaciado. Con mucho gusto lo acepto como una solución :). – DragonTux

Cuestiones relacionadas