2008-10-04 8 views
15

Tengo una base de código Objective-C algo formateada desordenadamente. ¿Hay alguna manera de hacer que Xcode vuelva a formatear todo un proyecto para que se ajuste a un estándar de codificación (es decir, sangría adecuada, espacios v. Pestañas, etc.)? ¿Hay otras herramientas que puedan lograr esto?Objective-C Tidy

Respuesta

22

Uncrustify: http://uncrustify.sourceforge.net/

Fuente Código Beautifier para C, C++, C#, ObjectiveC, D, Java, Hipoteca y VALA

Si quieres algo más sencillo, que probablemente podría consiga algo de camino simplemente eliminando todos los espacios en blanco/saltos de línea, y agregando un nuevo salto de línea en ;{}, y vuelva a aplicar el código manualmente. No estará en ningún lugar cerca del código perfectamente diseñado, y la reinfección podría ser un dolor en el código grande, pero será consistente.

+1

desenterrar únicamente por el nombre del proyecto – slf

+0

ahora también estoy usando uncrustify por un tiempo, y puedo votarlo también. – Moszi

7

De acuerdo con este blog post, bcpp funciona con Objective-C.

Además, la sangría de la herramienta podría ayudarlo. Está dirigido a la C sencilla, pero tiene muchas opciones que podrían ayudar. No sé si viene de manera predeterminada en OS X.

NAME 
     indent - changes the appearance of a C program by inserting or deleting 
     whitespace. 

SYNOPSIS 
     indent [options] [input-files] 

     indent [options] [single-input-file] [-o output-file] 

     indent --version 

DESCRIPTION 
     This man page is generated from the file indent.texinfo. This is Ediâ 
     tion of "The indent Manual", for Indent Version , last updated . 

     The indent program can be used to make code easier to read. It can 
     also convert from one style of writing C to another. 

     indent understands a substantial amount about the syntax of C, but it 
     also attempts to cope with incomplete and misformed syntax. 
+0

Está en mi máquina OS X 10.5.5. Me imagino que se puede instalar como parte de las herramientas de desarrollador. – dbr

+0

Está instalado en 10.6 – Joe

8

Una solución simple, pero limitada, es Editar-> Formato-> Volver a Sangría en Xcode, que aplicará su configuración de sangría actual (Xcode-> Preferences ... -> Sangría).

+0

Rellenar las elipsis: Xcode-> Preferences-> Text Editing-> Indentation – tomblah

5

De Xcode:

1) Cambiar las preferencias de sangría para que coincida con lo que usted quiere.

2) Seleccione un archivo para trabajar y Seleccionar todo (cmd-A)

3) se desplazan a izquierda (cmd- [) varias veces hasta que todas las líneas están en el borde izquierdo de la ventana.

4) Usar selección Re-sangría (de Editar-> Formato> o haga clic en el botón derecho del menú contextual)

sólo funciona en un archivo al mismo tiempo, no todo el proyecto. También solo trata con sangría.

2

Después de retocar con los formateadores externos múltiples y el formateador externo débil de xcode, finalmente resolví con uncrustify. Uncrustify tiene bastante buena compatibilidad con Objective-C, puede integrarse fácilmente con xcode como script de usuario y proporciona un formateador centralizado para casi todos los idiomas soportados por xcode.

El obstáculo más grande con uncrustify es el desalentador archivo de configuración. Mi recomendación, tomar una de las configuraciones de muestra suministradas (ben2.cfg es muy buena), combinar en la muestra objc.cfg y modificar según sea necesario.

0

La única función de la "GTMXcodePlugin", también conocido como Google caja de herramientas para Mac Xcode Plugin - hace un gran trabajo de ordenando el código objetivo-c, recortando espacios en blanco de manera efectiva y segura.

The GTM Xcode 4 plugin actualmente sólo añade un elemento de menú "limpiar espacios en blanco" al final del menú "Editar" para eliminar extremo innecesario de la línea de espacio en blanco de archivos de texto. Esperemos que agreguemos más características pronto. Solo se ha probado contra Xcode 4.2.

0

La forma más nueva y mejor de hacer esto, al momento de escribir esto, es SpaceCommander. Se basa en la parte superior de clang, y tiene muchas otras características geniales, y se mantiene y activa a medida que escribo esto.

Cuestiones relacionadas