riders online lion jetbrain data objective-c xcode osx refactoring

objective-c - online - jetbrain riders



¿Algún equivalente de ReSharper para Xcode? (5)

Soy un novato completo de Xcode / Objective-C / Cocoa, pero estoy aprendiendo rápido y realmente estoy empezando a disfrutar de un nuevo lenguaje, plataforma y paradigma.

Sin embargo, una cosa es que, después de haber estado usando Visual Studio con R # durante tanto tiempo, me he echado a perder con las herramientas de codificación, como refactorizaciones y completitud, etc. y, por lo que puedo decir, Xcode tiene bastante limitado soporte integrado para esto. cosas.

En ese sentido, ¿alguien sabe si hay complementos o lo que esté disponible para el entorno de Xcode que agrega ayudantes de codificación como la generación automática de esqueletos de implementación a partir de una definición de interfaz de clase, etc.?

Sospecho que no, pero supongo que no puede ayudar preguntar.


Encontré algunos archivos xtmacro en el paquete Xcode.app : /Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources

Instalado Xcode ver. 3.2.5.


Estoy emocionado de decir que JetBrains ha decidido hacer un IDE decente para codificadores Objective-C.

Se llama AppCode y se basa en sus otras herramientas, como RubyMine y Resharper. No es un cacao nativo, pero tiene un montón de poder de refactorización sin procesar.

http://www.jetbrains.com/objc/index.html

Empecé a usarlo para mi proyecto principal Objective C y ya estoy enamorada. Aún está en su infancia, pero para la edición de código y la refactorización ya se lleva Xcode.

Actualizar

Ahora está a una velocidad totalmente utilizable. Lo cambié a tiempo completo y todavía me sorprende lo increíble que se compara la refacturación y la codificación con Xcode. Simplemente maneja mucho para usted: importación automática, personalización casi infinita. Hace que Xcode parezca un juguete.


Para que la gente sepa, Accessorizer hace algo más que generar accesodores (tanto 1.0 como propiedades para 2.0), también genera código de Datos Core para persistentes atributos no estándar, sus accesadores NSSet para relaciones personalizadas a múltiples.

De hecho, Accessorizer lo ayudará a proporcionarle los accesos inicializados, keypath, keyed-archiving, indexados, accessors para colecciones no ordenadas como NSSet, copyWithZone, KVO, validación de clave, overrides singleton, dealloc, setNilForKey, persistencia de atributos no estándar ( Core Data), locking, headerdoc, método de conversión a selector, métodos NSUndoManager y más.


Suena como si estuviera buscando tres cosas principales: plantillas de códigos, herramientas de refactorización y finalización automática.

La buena noticia es que Xcode 3 y posteriores vienen con excelente autocompletado y soporte de plantillas. De manera predeterminada, debe solicitar completar explícitamente presionando la tecla de escape. (Esto realmente funciona en todos los NSTextView , ¡pruébelo!) Si desea que las terminaciones aparezcan automáticamente, puede ir a Preferencias -> Code Sense y configurar el pop-up para que aparezca automáticamente después de unos segundos. Debería encontrar buenas terminaciones para el código C y Objective-C, y terminaciones bastante buenas para C ++.

Xcode también tiene un sistema de plantilla / esqueleto sólido que puede usar. Puede ver qué plantillas están disponibles por defecto yendo a Editar -> Insertar macro de texto. Por supuesto, no desea insertar macros de texto con el mouse; eso derrota el punto. En cambio, tienes dos opciones:

  1. Vuelva a las Preferencias , vaya a Enlaces de teclas y luego, bajo Enlaces de teclas de menú , asigne un acceso directo específico a las macros que usa con frecuencia. Personalmente, no me molesto en hacer esto, pero conozco a muchos desarrolladores de Mac que hacen
  2. Use el CompletionPrefix . Por defecto, casi todas las plantillas tienen un prefijo especial que, si escribe y luego pulsa la tecla de escape, dará como resultado que se inserte la plantilla. Puede usar Control- / para moverse entre los campos de finalización.

    Puede ver una lista completa de las macros predeterminadas de Xcode y sus Preferencias de CompletionPrefix asociadas en Crooked Spin .

    También puede agregar sus propias macros o modificar las predeterminadas. Para hacerlo, edite el archivo /Developer/Library/Xcode/Specifications/{C,HTML}.xctxtmacro . La sintaxis debe ser autoexplicativa, si no terriblemente amigable.

Desafortunadamente, si eres adicto a R #, estarás decepcionado con tus opciones de refactorización. La refactorización básica se proporciona dentro de Xcode a través del menú contextual o presionando Shift-Apple-J. A partir de ahí, puede extraer y cambiar el nombre de los métodos, promoverlos y degradarlos a través de la jerarquía de clases y algunas otras operaciones comunes. Desafortunadamente, ni Xcode ni las utilidades de terceros ofrecen nada que se acerque a Resharper, por lo que en ese frente, actualmente no tienes suerte. Afortunadamente, Apple ya ha demostrado las versiones de Xcode en las obras que han mejorado enormemente las capacidades de refactorización, por lo que es de esperar que no tenga que esperar demasiado antes de que la situación comience a mejorar.


Xcode tiene una refactorización para C y Objective-C integrado. Simplemente selecciona lo que deseas refactorizar, elige "Refactorizar ..." desde la barra de menú o el menú contextual, y obtendrás una ventana que incluye las refactorizaciones disponibles y un área de vista previa.

Xcode actualmente no tiene una API pública de plug-in; si hay tipos específicos de complementos que desea que Apple habilite, solicite mejoras de archivos en Bug Reporter . De esa forma, Apple puede contar y rastrear tales solicitudes.

Sin embargo, hay herramientas de terceros como Accessorizer y mogenerator (la última versión es mogenerator 1.10 ) que puede usar para acelerar varias tareas de desarrollo. Accessorizer lo ayuda a crear métodos de acceso para sus clases, mientras que mogenerator hace una generación de código más avanzada para las clases de objetos gestionados de Core Data que se modelan utilizando las herramientas de modelado de Xcode.