Formateo automático de la fuente Xcode
formatting keyboard-shortcuts (19)
Como desarrollador de C #, me he vuelto altamente dependiente del formato automático en Visual Studio 2008. Específicamente, usaré el atajo de teclado CTRL + K , D para forzar las cosas a su forma luego de mi implementación descuidada.
Ahora estoy tratando de aprender Objective-C y me faltan ciertas características en Xcode, pero probablemente ninguna es tan dolorosa como el atajo de formato. Mis búsquedas de Google no arrojaron nada incorporado, aunque parece que hay algunos hacks. ¿Me estoy perdiendo algo o esta característica no existe de forma nativa en Xcode?
Considere la posibilidad de comprar una licencia para AppCode , un Objective-C IDE inteligente que ayuda a los desarrolladores de iOS / OS X. AppCode es totalmente compatible con Xcode, pero va más allá de Xcode para agregar funciones potentes .
AppCode una variante Objective-C del Intellij IDEA IDE de JetBrains . También son autores de la popular extensión de ReSharper para Visual Studio, cuyo propósito principal desde aquí parece ser un intento desesperado de dar un toque de experiencia IDEA a un producto de Microsoft.
AppCode está utilizando su propio analizador de código que proporciona una refactorización casi perfecta y soporte de navegación por código. Existe la posibilidad de volver a crear sangrías y reformatear completamente el código también (aunque sigo perdiendo un par de configuraciones de formato en casos difíciles, pero la mayoría funciona bien).
Puede probar la versión de prueba, por supuesto.
En primer lugar, examine la sección "Sangría" de Preferencias de XCode. Puedes personalizar las cosas bastante allí ...
Para obtener un control más detallado, consulte el documento de valores predeterminados de usuario de XCode de Apple. (Puede requerir un inicio de sesión de desarrollador para ver). Por ejemplo, pude inhabilitar el "sangrado al pegar" al ingresar lo siguiente en la terminal:
defaults write com.apple.XCODE PBXIndentOnPaste No
para volver a leer su configuración:
defaults read com.apple.XCODE PBXIndentOnPaste
En xcode, puede usar este atajo para formatear (volver a sangrar) su código fuente
Comando + A para seleccionar todos los códigos fuente
Ctrl + I para volver a sangrar
Espero que esto ayude.
Eso es Ctrl + i .
O para baja tecnología, corte y luego pegue. Volverá a formatear en pegar.
Esto solo funciona para idiomas con espacios no delineados, pero mi solución es eliminar todos los espacios en blanco excepto los espacios, luego agregar una línea nueva después de los caracteres que generalmente delinean EOL (por ejemplo, reemplazar '';'' con ''; / n'') y luego hacer lo ubicuo ^ + i solución.
Yo uso Python.
Código de ejemplo, simplemente reemplace los nombres de archivo:
python -c "import re; open(outfile,''w'').write(re.sub(''[/t/n/r]'','''',open(infile).read()).replace('';'','';/n'').replace(''{'',''{/n'').replace(''}'',''}/n''))"
No es perfecto (Ejemplo: para bucles), pero me gusta.
Me gustaría recomendar dos opciones que vale la pena considerar. Ambos completamente nuevos y en evolución.
ClangFormat-Xcode (gratuito): en cada archivo cmd + s se reformatea a un estilo específico y se guarda, es fácil de implementar dentro del equipo
Un complemento de Xcode para formatear tu código usando las herramientas de formato de Clang, por @travisjeffery.
Con el formato clang, puede usar Clang para formatear su código en estilos como LLVM, Google, Chromium, Mozilla, WebKit o su propia configuración.
Objective-Clean (pagado, no lo intenté todavía): la aplicación aumenta los errores de compilación si se infringen las reglas de estilo predefinidas, lo que es bastante difícil de usar dentro del equipo, por lo que no lo probé.
Con una configuración mínima, puede hacer que Xcode use nuestra aplicación para hacer cumplir sus reglas. Si alguna vez te atrapan violando una de tus reglas, Xcode arrojará un error de construcción y te llevará directamente a la línea ofensiva.
Mi favorito personal PrettyC wantabe es uncrustify: http://uncrustify.sourceforge.net/ . Sin embargo, tiene algunos miles de millones de opciones, así que también sugiero que descargue UniversalIndentGUI_macx, (también en sourceforge) una GUI que alguien escribió para ayudarlo a establecer las opciones de la manera que le gusta.
A continuación, puede agregar esta secuencia de comandos de usuario personalizada para desclasificar el texto seleccionado:
#! /bin/sh
#
# uncrustify!
echo -n "%%%{PBXSelection}%%%"
/usr/local/bin/uncrustify -q -c /usr/local/share/uncrustify/geo_uncrustify.cfg -l oc+ <&0
echo -n "%%%{PBXSelection}%%%"
Podemos usar Xcode Formatter que usa uncrustify para formatear fácilmente su código fuente ya que su equipo exactamente lo quiere.
Instalación La forma recomendada es clonar el proyecto GitHub o descargarlo desde https://github.com/octo-online/Xcode-formatter y agregar el directorio CodeFormatter en su proyecto Xcode para obtener: Formato de código basado en atajos Xcode: un acceso directo a formatee las fuentes modificadas en el espacio de trabajo actual formateo automático de códigos: agregue una fase de compilación a su proyecto para formatear las fuentes actuales cuando la aplicación construya todas las fuentes formato: formatee todo su código con una línea de comando sus reglas de formato compartidas por proyecto: edite y use una misma configuración archivo con el equipo de desarrollo de su proyecto 1) Cómo configurar el formateador de código para su proyecto Instalar uncrustify La forma más sencilla es usar brew: $ brew install uncrustify
Para instalar brew: $ ruby -e "$ (curl -fsSkl raw.github.com/mxcl/homebrew/go)"
Verifique que la opción de eliminación de errores se encuentre en / usr / local / bin $, que no se ha decruzar
Si su versión sin corrección es inferior a 0.60, es posible que deba instalarla manualmente, ya que la sintaxis moderna de Objective-C se ha agregado recientemente. Agregue el directorio CodeFormatter al lado de su archivo .xcodeproj
Verifique que su aplicación Xcode se llame "Xcode" (nombre predeterminado). Puede ver este nombre en el directorio Aplicaciones / (o en su directorio personalizado de instalación de Xcode). Tenga cuidado si tiene varias instancias de Xcode en su mac: ¡asegúrese de que el proyecto se llame realmente "Xcode"! (¿Por qué?) Este nombre se utiliza para encontrar archivos Xcode actualmente abiertos. Consulte CodeFormatter / Uncrustify_opened_Xcode_sources.workflow appleScript). Instale el servicio del automatizador Uncrustify_opened_Xcode_sources.workflow Copie este archivo a su carpeta ~ / Library / Services / (cree esta carpeta si es necesario). Tenga cuidado: al hacer doble clic en el archivo .workflow, lo instalará pero el archivo se eliminará. Asegúrese de dejar una copia para otros usuarios.
Cómo formatear los archivos abiertos al construir el proyecto Agregue un "script de ejecución" de fase de construcción que contenga la siguiente línea:
sh CodeFormatter / scripts / formatOpendSources.sh
Cómo formatear archivos en la línea de comando
Para formatear archivos actualmente abiertos, use formatOpenedSources.sh:
$ sh CodeFormatter / scripts / formatOpendSources.sh
Para formatear todos los archivos, use formatAllSources.sh:
$ sh CodeFormatter / scripts / formatAllSources.sh RUTA
PATH debe ser reemplazada por la ruta de su fuente.
P.ej; si el nombre del proyecto es TestApp, entonces el comando será
$ sh CodeFormatter / scripts / formatAllSources.sh TestApp
buscará todos los archivos en el proyecto y formateará todos los archivos como están configurados en el archivo uncrustify_objective_c.cfg.
Cómo cambiar las reglas del formateador
Editar CodeFormatter / uncrustify_objective_c.cfg abrir con TextEdit
Podrías probar ese plugin de XCode https://github.com/benoitsan/BBUncrustifyPlugin-Xcode
Simplemente clone el repositorio de Github, abra el proyecto de complemento en XCode y ejecútelo. Se instalará automáticamente. Reinicie Xode antes de usar el complemento de formateador.
No te olvides de instalar la utilidad sin censura antes. Homebrew, por ejemplo
brew install uncrustify
PD: puede activar la función "después de guardar el formato" en Edición> Código de formato> Preferencias de BBUncrustifyPlugin> Formato al guardar
Espero que esto te sea útil ;-)
Puede usar Comando + A para seleccionar todo el contenido y luego Ctrl + I para formatear el contenido seleccionado.
Puede ver y cambiar cualquier acceso directo en esta ruta: Xcode -> Preferencias -> Enlaces de teclas.
Si su Xcode versión 3.x, debe usar "User Script" con http://uncrustify.sourceforge.net/ , aquí este un Ejemplo:
#!/bin/sh
echo -n "%%%{PBXSelection}%%%"
$YOURPATH_TO_UNCRUSTIFY/uncrustify -q -c $YOURPATH_TO_UNCRUSTIFY_CONFIG/CodeFormatConfig.cfg -l OC+
echo -n "%%%{PBXSelection}%%%"
agregue arriba a su "Script de usuario" de Xcode.
si Xcode versión 4.x, creo que deberías leer este blog: Formato de código en Xcode 4 ,
De esta manera, usó los "Servicios de Apple", pero no es lo suficientemente bueno, causa una experiencia demasiado lenta, ¿alguien tiene la misma cosa?
¿Por qué Apple drop "script de usuario" .... xD
Sugiero usar ClangFormat. Para instalar, siga estos pasos:
- Instalar el administrador de paquetes Alcatraz para XCode Admite Xcode 5+ y OS X 10.9+
- Después de la instalación, reinicie XCode.
- Abre XCode -> Menú Ventana -> Administrador de paquetes
- Busque (encuentre) ClangFormat e instálelo. Después de la instalación, reinicie XCode.
- Ahora, en el menú XCode, puede usar Editar -> Submenú Formato Clang para formatear.
Puede elegir diferentes tipos de formateo. Además, al habilitar Formato al guardar puede obtener la capacidad de formato automático.
También puede echarle un vistazo a https://github.com/octo-online/Xcode-formatter que es un formateador basado en Uncrustify e integrado en Xcode. Funciona de maravilla.
CTRL + i
Eso es.
(sin comando + i )
Cmd A + Ctrl I
O Cmd A y luego clic derecho . Ir a Estructura -> Volver a Sangre
Desafortunadamente, Xcode no tiene nada tan extenso como VS o Jalopy para Eclipse disponible. Hay ALGUNAS características dispares, tales como Structure > Re-Indent
, así como el auto-formateo que se usa cuando pega código en su archivo fuente. Sin embargo, estoy totalmente contigo; definitivamente debería haber algo allí para ayudar con los problemas de formato.