En realidad es algo que sí sabía que estaba, porque muchas veces cuando uno empieza a escribir algo, le aparece código automáticamente para completar.
Por ejemplo, si uno escribe "if", aparece
if (<#condition#>) {y apretando Enter o Space se agrega el código permitiendo completar las cosas que faltan.
<#statements#>
}
Lo que no sabía, es que podía definir mis propios macros y como usarlos...
Hay una explicación muy completa de como hacerlo en esta nota, pero a mi me gusta más editarlo en modo texto que usando el editor de propiedades, así que acá va como lo hice yo...
En una ventana del Terminal.app:
cd /Developer/Applications/Xcode.app/Contentsdonde "edit" se puede cambiar por cualquier editor de texto de su agrado (en mi caso en particular abre TextWrangler).
cd PlugIns/TextMacros.xctxtmacro/Contents/Resources
edit ObjectiveC.xctxtmacro
Ir al final del archivo, y agregar lo siguiente:
{Esto agrega un nuevo text macro, que se activa escribiendo "singleton" seguido de Ctrl-. o de la tecla Escape, y que se expande a
Identifier = objc.singleton;
BasedOn = objc;
IsMenuItem = NO;
Name = "Singleton Pattern";
TextString = "#pragma mark -\n#pragma mark Singleton pattern\nstatic <#class#> *instance = nil;\n+ (<#class#> *) shared {\n @synchronized(self)\n {\n if (instance == nil) {\n instance = [[self alloc] init];\n }\n }\n return instance;\n}";
CompletionPrefix = singleton;
OnlyAtBOL = YES;
},
#pragma mark -
#pragma mark Singleton pattern
static <#class#> *instance = nil;
+ (<#class#> *) shared {
@synchronized(self)
{
if (instance == nil) {
instance = [[self alloc] init];
}
}
return instance;
}
Una explicación de los campos que se deben configurar en el archivo xctxtmacro:
- Identifier: el identificador del macro
- BasedOn: por lo que vi, vale siempre "objc"
- IsMenuItem: si debe aparecer en el menú Edit -> Insert Text Macro en XCode
- Name: nombre del macro
- TextString: el texto que se va a expandir cuando se ejecute el macro, se pueden agregar "placeholders" encerrándolos entre <# y #>
- CompletionPrefix: el texto que se tiene que digitar para que se dispar el macro
- OnlyAtBOL: si solo es válido en una linea vacía o no (BOL = begin of line)
Eso es todo. Una vez agregados los nuevos macros, hay que reiniciar XCode y ya quedan disponibles.
No hay comentarios.:
Publicar un comentario