2010-04-10 13 views
10

Sé que este es un problema bastante polémico entre los programadores, pero al desarrollar me gusta mi IDE para colocar la llave de apertura debajo del método/interfaz/declaración de control, a efectos ilustrativos: -¿Cómo puedo configurar Xcode para poner '{' donde lo quiero en los archivos generados

Ésta es la forma en Xcode genera automáticamente métodos esqueleto con el {al final: -

-(void) isTrue:(BOOL)input { 
    if(input) { 
     return YES; 
    } 
    else { 
     return NO; 
    } 
} 

Así es como me gusta exponer mi código (que creo que es llamado Allman style): -

-(void) isTrue:(BOOL)input 
{ 
    if(input) 
    { 
     return YES; 
    } 
    else 
    { 
     return NO; 
    } 
} 

Me pregunto si hay algún cambio de configuración en Xcode para habilitar este estilo de desarrollo. Es realmente molesto cuando escribe if/else declaraciones, ya que tiende a autocompletar la cláusula else con el { al final de la línea, que simplemente parece tonto si le gusta desarrollar con ellos debajo.

¿O estoy siendo poco razonable? ¿Se supone que Objective-C se adhiere a un estándar definido por Apple?

Respuesta

2

Después de digerir la información útil de torbellino anterior (gracias), el fragmento resultante (acaba de cortar y pegar en el terminal) es:

defaults write com.apple.Xcode XCCodeSenseFormattingOptions -dict BlockSeparator "\ \ n " PreMethodDeclSpacing" "

Comillas invertidas estúpidas. Cuando se escribe en la terminal, debe haber DOS exactamente DOS barras diagonales inversas en el separador de bloques.

+0

Sí, me confundí un poco al respecto, hice algo similar a lo anterior pero utilicé el distintivo -dict-add para cada par de clave/valor – djhworld

0

Incluso con esas configuraciones, no parece funcionar con las plantillas. Si se establece este y luego escribe "init" en un archivo .m que se obtiene:

- (id)init 
{ 
    self = [super init]; 
    if (self) { 
    <#initializations#> 
    } 
    return self; 
} 

Nota del "si (auto) {" línea.

0

creo que "defaults write com.apple.Xcode" no funciona en las últimas versiones de Xcode (7.x)

Aquí están las soluciones que conozco:

  1. Snippet Edit - Este pequeño programa permitirá editar los fragmentos de código predeterminados de Xcode. Por lo tanto, podrá abrir llaves desde una nueva línea en su if, for, while, etc. Sin embargo, esto no permite cambiar la sangría del bloque.

  2. Uncrustify - esto también puede resolver su problema, pero no parece fácil de configurar. Y solo formatea el código después de ya está escrito, en lugar de formatear 'on the go'.

Cuestiones relacionadas