2011-05-04 8 views
33

Comencé a usar las etiquetas FIXME, TODO, ??? y !!! en XCode pero me resulta doloroso que no reconozca las etiquetas cuando están dentro de una función. Las etiquetas solo se reconocen fuera de una función determinada.Xcode usando FIXME, TODO, ???,?

¿Cómo puedo obtener estas etiquetas se reconocen dentro de una función (ya que es donde los errores son)?

+1

Tal vez sea porque todavía estoy en Xcode 3.2.6, pero esos aparecen bien en la lista de funciones ... ¿Estás buscando algún tipo de sangrado para mostrar membresía en la función? – Richard

+1

¿Podrías indicar en qué versión de Xcode estás y (si no es Obj-C) en qué idioma estás escribiendo? –

+0

te recomiendo la presentación de un informe de error con Apple solicitando esta función si no lo ha hecho: http://bugreport.apple.com –

Respuesta

16

Editado 2016-02-02

Xcode ahora soporta // MARK :, // TODO: // y ARREGLAME: puntos de referencia para anotar el código y los enumera en la barra de salto.


Para encontrar esas marcas especiales (y en realidad ningún márgenes especificados a sí mismo), puede utilizar el navegador de búsqueda, introduzca la siguiente cadena y luego elegir la opción "Proyecto A, igualando la expresión regular" ... ", ignorar el caso ":

(//FIXME|//!!!|//\?\?\?|//TODO) 

Esto buscará en su proyecto todas esas marcas especiales. Incluso puede agregar cualquier marcado que desee, p. Ej. "// REVISIÓN: revise el siguiente código". Esta sería entonces la siguiente cadena de búsqueda:

(//FIXME|//!!!|//\?\?\?|//TODO|//REVIEW) 

he creado una pestaña en mi espacio de trabajo que tiene el navegador de búsqueda siempre abierta, llena de esta cadena. Desafortunadamente, XCode algunas veces eliminará esta cadena del cuadro de búsqueda, por lo que debe tenerla copiada & pegada siempre que la necesite.

36

Una solución es utilizar un script de construcción que marca los avisos como:

KEYWORDS="TODO|FIXME|\?\?\?:|\!\!\!:" 
find "${SRCROOT}" \(-name "*.h" -or -name "*.m" \) -print0 | \ 
xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | \ 
perl -p -e "s/($KEYWORDS)/ warning: \$1/" 

crédito a Benjamin Ragheb.

+11

la secuencia de comandos se encuentra [aquí] (http://www.benzado.com/blog/post/329/make-xcode-nag-you-about-unfinished-todos) por Benjamin Ragheb – KDaker

+3

este script falla si su código está almacenado en una ruta de archivo que contiene directorios con espacios en ellos. Por ejemplo "/ Inicio/John/Aplicaciones de iPhone/Código". Solución simple, en la segunda línea, ponga comillas alrededor de $ {SRCROOT} – john

+0

Pongo esto en un script de ejecución en Xcode pero de alguna manera no está recogiendo ninguno de mis TODO. Cualquier idea por qué –

48

en Xcode 4.1 (no sé si esto funciona en las versiones anteriores) escribo

#warning TODO: fix this later... 

para obtener una advertencia de compilación o

#error FIXME: fix now! 

para obtener un error de compilación.

También añadirlos a la biblioteca de fragmento de código para que sea realmente a aliviar añadir todos.

+0

¿Cómo lo agrega a la biblioteca de fragmentos? –

+2

Desafortunadamente, esto no es bueno si configuras "mostrar advertencias como errores" en tu configuración de compilación, ¡ya que todo se convierte en un error! –

+0

@RaffiKhatchadourian - Para agregar un fragmento, simplemente arrastre su código fuente. http://stackoverflow.com/questions/6784627/how-to-add-custom-code-snippets-to-xcode-4 –

8

El ARREGLAME :, TODO :, ???: y !!!: trabaja en 4.3.3 dentro y fuera de las funciones.

Usted puede tener cualquier número de espacios en blanco antes o después de la doble barra, pero usted tiene que utilizar mayúsculas y seguir la etiqueta con dos puntos.

Sólo para que quede claro - todos estos trabajos:

//   FIXME: This works. 
    //TODO: This works. 
    //     !!!: Working. 
// // //???: Works as well. 
+1

Parece que no funciona todo el tiempo. Presentando un error yo mismo. – Johan

+0

Gatada, ¿puede explicar el error que aún encuentra? – Ben

+0

También funciona en #Xcode 5 – g212gs

2

Sólo una cabeza, pero me he dado cuenta del TODO: 's no funcionan dentro de los bloques de cualquier tipo. Solo muévelo justo arriba o debajo de su bloque.

4

la forma de este plugin Xcode?->https://github.com/trawor/XToDo

+0

Está bien, se estrelló contra mí varias veces en XCode 5.0.2. Debe crear la carpeta de plug-ins manualmente en XCode 5 si aún no tiene una. Es muy básico, crea una lista de los 4 marcadores predeterminados: TODO, FIXME, ??? Y !!! y pone todo lo marcado con esos, en una lista desplegable en una ventana separada de XCode: sin embargo, me gustaría poder crear mis propios marcadores, como "MARCADOR:" y "VER:" y hacer que aparezcan también - no hay una manera simple de hacer eso con el complemento. – OverToasty

+0

@OverToasty revisa la nueva confirmación, las horquillas hacen algunos cambios importantes –

3

xCode 6 beta 4 debe apoyar MARK, TODO y FIXME puntos de referencia.

Xcode ahora es compatible con // MARK :, // TODO: y // FIXME puntos de referencia para anotar su código y los enumera en la barra de salto. (14768427)!

+1

El enlace está roto. –

Cuestiones relacionadas