2009-06-23 13 views

Respuesta

8

La documentación de XCode de Apple contiene un full list of user preferences, muchos de ellos que no tienen una IU correspondiente. Sin embargo, no veo nada que sea específico del espacio de nombres, así que creo que es posible que no tenga suerte.

Sin embargo, pensé en pasar la lista de preferencias en caso de que fuera útil.

+2

Amigo, el enlace está roto :( – 8090PZ

4

Paso por alto la sangría de Xcode por completo, y tengo una secuencia de comandos de usuario que llama al uncrustify en el documento que se muestra actualmente.

#!/bin/sh 
#echo -n "%%%{PBXSelection}%%%" 
uncrustify -q -c ~/.uncrustify/sample.cfg -l oc+ 
#echo -n "%%%{PBXSelection}%%%" 

Notas:

  • Uncrustify debe estar en su PATH
  • es posible que tenga que ajustar la ubicación de su archivo de configuración
  • si usted quiere tener el nuevo código seleccionado en Xcode, elimine el comentario de las dos instrucciones de eco (esto también se puede usar para crear una secuencia de comandos "Formato de selección", en lugar de "Formatear todo"

script Ajustes:

  • de entrada: todo el documento
  • Directorio: Directorio principal
  • de salida: Reemplazar documento Contenido
  • Errores: exhibición en alerta
6

también he intentado hacer esta.

La respuesta es que quien hizo el formateo del código en XCode parece ignorar por completo que hay otros lenguajes además de Objective C, o estilos de codificación distintos a los de Apple.

Aquí hay una lista de cosas que uno querría hacer que no se pueden hacer en XCode.

  1. Sangría pública: o privada: solo un espacio.
  2. Sangrar espacios de nombres cero espacios.
  3. Indentación alternativa para argumentos NO relativa al paréntesis de apertura.

El último necesita una pequeña discusión. A veces, un nombre de función o método puede ser bastante largo, así como su primer argumento, por lo que desea también poder aplicar la sangría así:

someExcitingClass->AVeryLongMethodNameTraLaLaLaLa(
    someLongExpressionOrVariableNameGoesHere, 
    anotherNameHere); 

Por supuesto, es posible que desee ser la extracción de subexpresiones hacer la línea es más corta, pero en el código del mundo real esto aparece todo el tiempo, y crear subexpresiones solo para ajustar todo en una longitud de línea razonable es molesto.

Es una pena terrible y realmente no tengo ni idea de qué hacer.Personalmente escribo en emacs y solo me meto en XCode como un sistema de compilación, pero :-D eso no es para todos.

4

A partir de Xcode 4.3.1 sin opciones de espacio de nombres personalizado de sangría están disponibles, sin embargo superé esta irritación navegando a Preferencias-> Texto Edición-> Sangría y deshabilitación de "Sangrado con sintaxis".

3

Como el indenter de Xcode usa solo el lexer, y no el AST, puede 'engañar' el formato definiendo las llaves.

que tengo:

#define NAMESPACE_OPEN(_name) namespace _name { 
#define NAMESPACE_CLOSE(_name) } 

#define dsmsg_namespace_open NAMESPACE_OPEN(dsmsg) 
#define dsmsg_namespace_close NAMESPACE_CLOSE(dsmsg) 

es decir, un genérico 'NAMESPACE_OPEN/CLOSE' definen, y una específica para definir mi espacio de nombres 'dsmsg' más utilizado. Entonces, cada vez que quiero abrir el espacio de nombres, yo uso

dsmsg_namespace_open 

... code ... 

dsmsg_namespace_close 

truco feo, pero me gusta bastante tener una específica, llamada 'cerca'

Cuestiones relacionadas