¿Cómo puedo marcar comentarios de "Tareas pendientes" en Xcode?


111

Actualmente estoy trabajando en una tarea de manipulación de imágenes basada en iOS.

Problema:

Estoy trabajando en diferentes módulos. Entonces, si necesito agregar algo en un módulo en el futuro, quiero marcarlo como una nota para hacer. ¿Hay otras macros o similares para agregar una nota para hacer en Xcode?

Lo intenté:

Para esto actualmente estoy usando #pragmacomo:

#pragma mark -
#pragma mark To do: Add the Image processing methods.

Tengo:

Pero se enumera en la sección Método como:

Que hacer

Lo que realmente necesito:

El problema es que aparece en la lista de métodos, por lo que a veces me olvidé de eliminarlo de la sección y es muy difícil encontrarlo en todo el código fuente. (Buscando resultados de #pragma para mostrar listas completas)

Detalles técnicos:

Estoy usando Xcode versión 4.6.2.


¿Cómo llego a esa vista en particular donde Xcode enumera todos los métodos, marcas de pragma y anotaciones TODO?
Mischa

@Mischa: Comprueba mi respuesta, está debajo de la barra de lista de métodos.
Midhun MP

Verifiqué su respuesta y no encontré una pista de cómo mostrar esa ventana emergente. Pero creo que lo encontré ahora: está encima del editor de código en esa barra de "navegación", ¿verdad?
Mischa

Por cierto: ¿Hay alguna forma de mostrar todos los TODO del proyecto a la vez?
Mischa

@Mischa: Sí, está en la parte superior del editor de código, y que yo sepa, no hay forma de mostrar todos los comentarios para hacer a la vez (en lugar de buscar en todo el proyecto)
Midhun MP

Respuestas:


133

Lo tengo.

Escribir un comentario como:

// TODO: Do something

Hará el truco.

Tengo algo como:

QUE HACER


También hay muchas opciones como :

  1. // FIXME: Midhun

  2. // ???: Midhun

  3. // !!!: Midhun

  4. // MARK: Midhun

16
también puede usar // FIXME: o #warning. cuando usa #warning, recibe una advertencia en Xcode y puede saltar directamente a esa parte.
brush51

6
¿No es eso lo que @ Dev2rights publicó una hora antes que tú? ¿Por qué no acepta su respuesta?
trojanfoe

@trojanfoe: sí. Pero tengo una solución más adecuada para mí // MARK: y #warning. Por eso no lo acepté
Midhun MP

1
Bueno // FIXME, // MARKy #warningno son los mismos que // TODOy para que no responde a su pregunta.
trojanfoe

1
@Domsou: Actualmente no hay otras opciones disponibles además de las enumeradas. Actualizaré mi respuesta si obtengo alguna.
Midhun MP

129
// TODO: the thing todo

Es la forma de mostrar las tareas pendientes.


10
También puede usar // FIX: Everything crashes all the timepara facilitar el regreso a partes de su código que generan problemas usando la barra de salto.
Maarten

Extrañamente, el uso de esto no muestra el comentario en XCode 5.1.1
loretoparisi

2 marcadores más que parecen relevantes aquí son #warning y #error i.imgur.com/KVjrVwG.png
Zane Helton

3
Nitpick: ponga un espacio entre //y TODO:. Por ejemplo: // TODO: Read this from prefs. Si revisa la documentación de los lenguajes Swift y Objective C, esta convención espacial se sigue de manera bastante consistente.
Jeffro

43

Utilizando la

//TODO: some thing here

funciona si todo lo que quieres hacer es mirar la lista de todos en el menú desplegable

Si quieres ser intrusivo, puedes usar #warningmarcas en su lugar:

#warning this will create a compiler warning.

Y cuando crees la aplicación, recibirás una advertencia del compilador (un triángulo amarillo, no un error del compilador) que es un poco más "en tu cara" para recordarte las cosas que debes hacer.


Creo que #warninges la mejor solución porque le advertirá en el momento de la compilación. Gracias
Duck

36

Con la secuencia de comandos a continuación, puede ver todas las etiquetas requeridas, como advertencias.

  1. Seleccione su proyecto en el Navegador de proyectos
  2. Abra el objetivo en la barra lateral y vaya a la pestaña "Fases de construcción"
  3. Haga clic en el signo "+"
  4. Seleccione "Nueva fase de creación de secuencia de comandos de ejecución" Agregar script
  5. Agregue el siguiente script a "Ejecutar script" Listo script El script:

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

ingrese la descripción de la imagen aquí

La respuesta original fue tomada de Aquí

Otra alternativa es el complemento XToDo para Xcode.


gran solución, ¿hay alguna manera de excluir todos los archivos de pod? ¿Hay un par de Todos o Mixmes en mis extensiones usadas?
Marco Weber

encontré una solución por mí mismo en esta publicación stackoverflow.com/q/37157027/6003494 el script es:KEYWORDS="TODO:|FIXME:|\?\?\?:|\!\!\!:" find "." \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "./Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/ warning: \$1/"
Marco Weber

6

Puedes usar el complemento XToDo

https://github.com/trawor/XToDo

use ctrl + t para activar / desactivar la ventana de lista

use ctrl + t para activar / desactivar la ventana de lista

Ejemplo de barra de herramientas

Fácil instalación con alcatraz, use ctrl + t para activar / desactivar la ventana de lista


1
Se estaba desplazando hacia abajo para sugerir eso, lo recomiendo completamente.
MANIAK_dobrii

6

Empecé con

// TODO: Implement bubble sort.

Luego me uní a un proyecto grande y, a veces, necesitaba un todo para vivir más que un compromiso de WIP y, por lo tanto, para distinguir mis todos de mis compañeros, coloqué mi todo con mis iniciales:

// TODO: SM: Implement bubble sort

A veces quería más visibilidad, así que comencé a usar advertencias de pragma en algunos lugares.

#warning Implement bubble sort

Un día decidí activar el modo difícil agregando -Werrora mis cflags. Desafortunadamente, esto hace que las advertencias de pragma sean inútiles porque impiden la compilación. Así que volví a consumir // TODO:hasta que Jeff Nadeau me dijo que podía poner

-Wno-error=#warnings

en mis cflags para no tratar las advertencias de pragma como errores. Así que ahora #warningy -Werrorpodemos vivir uno al lado del otro.


3

Tiendo a escribir exactamente // TODO: Blah blah blah

Luego hago un COMMAND-SHIFT-F y busco "// TODO".

El uso del menú desplegable del esquema del archivo solo le mostrará las tareas pendientes para el archivo actual, pero tiendo a querer ver el estado de las tareas pendientes de mi proyecto.

Solución aproximada, pero hace su trabajo.


2

Dividí los tokens reconocidos en Advertencias y Errores para mi propio uso, pensé en compartirlos aquí:

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

KEYWORDS="ERROR:|XXX:|\!\!\!:" 
find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"
ERROR_OUTPUT=`find "${SRCROOT}" \( -name "*.h" -or -name "*.m" -or -name "*.swift" \) -not -path "${SRCROOT}/Pods/*" -print0 | xargs -0 egrep --with-filename --line-number --only-matching "($KEYWORDS).*\$" | perl -p -e "s/($KEYWORDS)/1: error: \$1/"`

exit ${#ERROR_OUTPUT}

0

Otro método simple, un poco fuera de la caja, si no desea desordenar la barra de lista de métodos, es usar una convención dentro de los comentarios como //Todo:y cuando desee abordarlos en masa, simplemente seleccione Buscar navegador, coincida con el caso y buscar//Todo:

Prefiero esto porque no me gusta que el menú desplegable de métodos parezca un código spagetti. Y sí, a menudo tengo muchos Todo: 's;)


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.