Xcode 4 con abrazadera de apertura en una nueva línea

Parece que el nuevo Xcode 4 ya no aplica XCCodeSenseFormattingOptions . Al menos para mi 🙁

De todos modos, ¿sabes cómo colocar la abrazadera de apertura en la nueva línea para autocompletar en Xcode 4? Solía ​​escribir esto en la terminal, pero no funciona para el nuevo Xcode.

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

XCode 4 utiliza “fragmentos de código” para completar automáticamente y se envía con una biblioteca incorporada de ellos: puede ver la Biblioteca de fragmentos de código haciendo clic en el icono { } en el panel de la biblioteca, que probablemente esté en la esquina inferior derecha. lado de la ventana principal de XCode.

Todos los fragmentos de código incorporados de XCode 4 ponen la llave de apertura en la misma línea que la statement: este es el fragmento de código de XCode 4 para una sentencia if , por ejemplo:

 if (< #condition#>) { < #statements#> } 

Entonces, si desea que XCode 4 se autocomplete de la siguiente manera:

 if (< #condition#>) { < #statements#> } 

… entonces tendría que editar el fragmento de código en consecuencia. Esto, a su vez, conduce a dos problemas:

  1. Hay 44 fragmentos de código integrados en XCode 4, y tendría que editar cada uno por separado.
  2. XCode 4 no le permitirá editar los fragmentos de código incorporados.

Estos problemas son más difíciles que el comando de defaults write simple que funcionó en XCode 3, pero es posible , si está decidido y puede editar listas de propiedades, profundizar en las tripas de XCode 4 y cambiar estos fragmentos de código uno por uno .

/Developer/Library/Xcode/PrivatePlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets contiene la biblioteca de XCode 4 de fragmentos de código incorporados. Probablemente esto sea evidente, pero debe hacer una copia de seguridad de este archivo antes de cargar y editar, y luego debe hacer otra copia de seguridad y reservar una copia del archivo con los fragmentos de código nuevos y mejorados, porque tendrá Es casi seguro que sobrescribes el contenido de /Developer/Library/Xcode cuando instalas la próxima versión de XCode 4. (También es posible que Apple cambie el formato de este archivo, agregue nuevos fragmentos de código o haga cualquier cantidad de cosas que podrían hacer que esta respuesta sea ineficaz).

Si tienes Xcode 4.3 o posterior instalado directamente desde App Store, todo está dentro del paquete Xcode.app. La ruta a SystemCodeSnippets.codesnippets es /Applications/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets .

De todos modos, encontrará que el archivo anterior contiene varias entradas como esta:

  IDECodeSnippetVersion 1 IDECodeSnippetCompletionPrefix if IDECodeSnippetContents if (<#condition#>) { <#statements#> } IDECodeSnippetIdentifier D70E6D11-0297-4BAB-88AA-86D5D5CBBC5D IDECodeSnippetLanguage Xcode.SourceCodeLanguage.C IDECodeSnippetSummary Used for executing code only when a certain condition is true. IDECodeSnippetTitle If Statement IDECodeSnippetCompletionScopes  CodeBlock   

Este es el fragmento de código para autocompletar una instrucción if . Edite el IDECodeSnippetContents para colocar la llave de apertura en una nueva línea, guarde su trabajo y luego reinicie XCode 4; si todo va bien, debería poder escribir una instrucción if y ver los resultados.

Tendrá que hacer al menos media docena más ediciones para cubrir las autocompletas más comunes ( for , while , etc.), y si quiere ser exhaustivo, le tomará alrededor de 40 ediciones separadas. Es mucho trabajo, pero si realmente quieres que el autocompletado de XCode 4 coloque tus llaves de apertura en una línea separada, se puede hacer.

No hay forma de hacerlo en Xcode 4. Por favor, presente un error .

Mira mis fragmentos modificados (de todo el sistema) para Xcode 4.2 aquí:

http://forrst.com/posts/Put_that_where_it_belongs_Xcode-PNL

Debería ocuparse de todas las llaves de apertura relevantes para el desarrollo de iOS.

En Xcode 4.3.1, si edita el siguiente archivo como sudo desde el terminal, como describió Scott Forbes anteriormente, puede cambiar dónde aparece el paréntesis de apertura. Se iría con nuevas instalaciones de Xcode, me imagino, así que votaría que esto también es un error con Apple.

/Aplicaciones/Xcode.app/Contents/PlugIns/IDECodeSnippetLibrary.ideplugin/Contents/Resources/SystemCodeSnippets.codesnippets

Leslie

Usé SnippetEdit para Xcode4 y funciona increíblemente. Básicamente, le permite reemplazar fragmentos viejos dados por xcode con los nuevos definidos por usted mismo. Vea más aquí: https://www.macupdate.com/app/mac/43352/snippet-edit

Simplemente haga que se elimine un código de usuario que anula la versión de Apple. Para ello, ingrese en el campo Acceso directo a la finalización el mismo nombre que en el recorte predeterminado. Mira este video para ver un tutorial: http://s3.amazonaws.com/screencasts.pragmaticstudio.com/017_custom_code_snippets.mov