Rastrear elementos "TODO" al escribir código

18

¿Hay una manera fácil de crear una lista de elementos "pendientes" al escribir código? Por ejemplo, suponga que estoy escribiendo una función write-this-nowcuando me doy cuenta de que también voy a necesitar escribir una función de soporte write-this-later.

(defun write-this-now ()
  (unless (write-this-later) ...

En lugar de hacer una pausa para crear write-this-later, me adelanto como si ya existiera. Sin embargo, también quiero anotar para mí mismo que todavía necesito volver más tarde y crearlo.

Una solución que he usado en el pasado es agregar un comentario con la palabra TODO

(defun write-this-now ()
  (unless (write-this-later) nil))  ; TODO create function `write-this-later`

Ahora puedo volver más tarde y buscar en el archivo las ocurrencias de la palabra TODO, y encontraré esta pequeña nota que dejé para mí.

¿Existen paquetes o extensiones para facilitar la creación y el seguimiento de elementos TODO dentro de un archivo o proyecto?

¿Puedo agregar todos mis elementos TODO del proyecto actual en una sola lista de tareas pendientes? ¿Puedo agregar marcadores en mi lista de tareas pendientes que vuelvan a las ubicaciones donde escribí los elementos TODO?

nispio
fuente
2
Una manera simple pero eficiente de hacer esto es usar el proyecto grep / awk / ack del proyectil para TODO. Esto es lo que suelo hacer
J David Smith

Respuestas:

18

Es posible que desee intentar usar la captura de organización . Cuando inicie org-capturedesde su archivo fuente, insertará un elemento TODO en un archivo de modo org con un enlace al área relevante en el código fuente. org-capturees lo suficientemente inteligente como para capturar enlaces sensibles al contexto; por ejemplo, si lo invoca dentro de un mensaje en GNUS, capturará un enlace directamente a ese mensaje.

shosti
fuente
1
Eso se ve increíblemente similar a lo que describí. Tal vez usé la captura de org en otra vida.
nispio
16

El modo fixmee ofrece resaltado de tales notas y navegación.

Se instala fácilmente desde MELPA y admite diferentes prioridades de los elementos de tareas.

wasamasa
fuente
1
Ese es un enfoque interesante. Realmente no hay atajos de teclas para memorizar si no quieres. La principal ventaja que veo sobre el grepping para TODO elementos es que puede asignarles prioridad agregando caracteres.
nispio
2

Si bien no es completamente sobre el tema para emacs, utilizo el simple truco de crear el trozo del método / propiedad / lo que sea cuando toco ese momento 'para hacer', que contiene nada más que una afirmación que dice "¡Escríbeme!" o similar.

El código luego se compila limpiamente y me dice en tiempo de ejecución dónde están mis elementos TODO.

Gurú de ocho bits
fuente