2010-02-07 12 views
12

He desmarcado tanto "Mostrar argumentos en la lista emergente" e "Insertar marcadores de posición de argumento para terminaciones" en las preferencias de Xcode Code Sense, pero cuando escribo "else" (por ejemplo) en el editor, Xcode sigue volcando en un pre -formateado bloque "else".¿Hay alguna forma de desactivar o modificar la finalización del código de Xcode?

¿Hay alguna manera de deshabilitar esta característica por completo o (mejor aún) modificar el bloque que inserta Xcode? El bloque predeterminado "else" de Xcode no coincide con mi estilo de codificación, por lo que el marcador de posición realmente obstaculiza mi productividad en lugar de ayudar.

ACTUALIZACIÓN: simplemente me encontré this question que describe cómo cambiar la indentación por defecto y los espacios en blanco utilizado para la finalización de código, por lo que las respuestas a la segunda parte de mi pregunta.

ACTUALIZACIÓN # 2: Setting "sugerirá automáticamente" a "nunca", como suggested by outis desactiva efectivamente la finalización de código completo. Supongo que lo que estoy buscando es una manera de desactivar específicos complementos de código, (como el bloque "else") manteniendo todas las terminaciones habituales para nombres de variables y métodos.

+0

¿Qué versión de Xcode está usando? – outis

+0

Estoy usando la versión 3.2 –

+0

¿Está XCode insertando el bloque o simplemente sugiriéndolo? – outis

Respuesta

8

Puede anular cualquiera de las terminaciones de código existentes, copiar cualquiera de los archivos de .xtcmacro:

/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro 

(que tendrá que hacer clic derecho sobre Xcode.app y decir "Mostrar contenido del paquete" proceder más abajo en la cadena de directorio si no se está utilizando Terminal)

en un directorio local:

~/Library/Application Support/Developer/Shared/Xcode/Specifications 

(Es probable que tenga que hacer el directorio Especificaciones). Luego, simplemente revise todas las definiciones, para eliminar una finalización molesta, puede sacar el CompletionPrefix para cualquier entrada, o edite el código que se va a insertar para que funcione como prefiera.

En una nota lateral, puede poner cualquier archivo llamado .xctxtmacro y ponerlo en ese directorio de especificaciones y se leerá, lo que le permite definir algunas macros personalizadas muy útiles.

+0

Eso parece prometedor. ¿Volverán a aparecer los archivos .xctxtmacro originales en el 'Xcode.app/contents' cuando actualice Xcode más adelante en la línea? –

+0

Sí, de hecho, no debe sacarlos de XCode, simplemente cópielos en Especificaciones ya que cualquier cambio que haga los anulará ... cuando actualice XCode, anulará todas esas configuraciones, pero no lo hacen. cambiar a menudo Todavía sería mejor anular las entradas específicas que le molestan y no anular nada más (eliminar de los archivos que tiene en las especificaciones). –

+1

el directorio de PlugIns no existe para mí en xcode 4.5.2. ¿Se ha movido? –

5

Las secciones de preferencias "Edición de texto" y "Sangría" pueden tener la configuración que busca.

Puede establecer "Sugerir automáticamente" en "nunca".

+0

Una conjetura razonable, pero no he encontrado nada en esos paneles que afecte la finalización del código. –

+0

Al establecer "Sugerir automáticamente" a "nunca" se eliminan las terminaciones del código * todo *, incluidas las variables y los métodos, y todas esas cosas buenas que utilizo regularmente ': (' –

+0

¿Qué hay de establecerlo en "con retraso"? ? También puede usar F5, alt-esc o "^" para obtener la lista de finalización. – outis

1
+0

Parece que ese artículo hace las mismas sugerencias que Kendall Helmstetter Gelner en su respuesta (a menos que me falta algo extra). * Es * un buen artículo, así que gracias por publicarlo. +1 –

+0

Desde el artículo, utilicé esto para mi configuración (en Terminal.app): valores predeterminados escriba com.apple.Xcode XCCodeSenseFormattingOptions '{"PreExpressionsSpacing" = ""; "BlockSeparator" = "\ n"; } ' – Eljay

4

Puede activar/finalización código de desactivación en Xcode mediante el siguiente pasos:

  1. Haga clic en Xcode menú en la esquina superior izquierda
  2. Seleccionar Preferences... (Preferencia pop-up aparece)

Screenshot-1 for steps

  1. Seleccionar Text Editing menú
  2. Ver Code Completion.
  3. Desmarque la opción Suggest completion while typing.

Screenshot-2 for steps

Cuestiones relacionadas