Suivre les éléments «TODO» lors de l'écriture de code

18

Existe-t-il un moyen simple de créer une liste d'éléments "à faire" à la volée lors de l'écriture de code? Par exemple, supposons que j'écris une fonction write-this-nowquand je me rends compte que je vais aussi avoir besoin d'écrire une fonction de support write-this-later.

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

Au lieu de m'arrêter pour aller créer write-this-later, je charge en avant comme s'il existait déjà. Cependant, je veux aussi noter moi-même que je dois encore revenir plus tard et le créer.

Une solution que j'ai utilisée dans le passé consiste à ajouter un commentaire avec le mot TODO

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

Maintenant, je peux revenir plus tard et rechercher dans le fichier les occurrences du mot TODO, et je trouverai cette petite note que j'ai laissée pour moi.

Existe-t-il des packages ou des extensions pour faciliter la création et le suivi des éléments TODO dans un fichier ou un projet?

Puis-je regrouper tous mes articles TODO du projet en cours dans une seule liste de tâches? Puis-je ajouter des signets dans ma liste de tâches qui renvoient aux emplacements où j'ai écrit les éléments TODO?

nispio
la source
2
Un moyen simple mais efficace de le faire est d'utiliser le projet grep / awk / ack du projectile pour TODO. C'est ce que je fais habituellement
J David Smith

Réponses:

18

Vous voudrez peut-être essayer d'utiliser la capture d'organisation . Lorsque vous lancez à org-capturepartir de votre fichier source, il insère un élément TODO dans un fichier en mode organisation avec un lien vers la zone appropriée dans le code source. org-captureest suffisamment intelligent pour capturer des liens contextuels - par exemple, si vous l'invoquez dans un message dans GNUS, il capturera un lien directement vers ce message.

shosti
la source
1
Cela ressemble étonnamment à ce que j'ai décrit. J'ai peut-être utilisé la capture d'org dans une autre vie.
nispio du
16

fixmee-mode offre la mise en évidence de ces notes et la navigation.

Il est facilement installé à partir de MELPA et prend en charge différentes priorités de tâches.

wasamasa
la source
1
C'est une approche intéressante. Vraiment pas de raccourcis clavier à mémoriser si vous ne le souhaitez pas. Le principal avantage que je vois par rapport à la simple recherche d'objets TODO est que vous pouvez leur attribuer la priorité en ajoutant des caractères.
nispio
2

Bien que n'étant pas entièrement sur le sujet pour emacs, j'utilise le truc simple de créer le stub de la méthode / propriété / quoi que ce soit quand je frappe ce moment "à faire", ne contenant rien de plus qu'une assertion qui dit "Ecrivez-moi!" ou similaire.

Le code se compile ensuite proprement et m'indique à l'exécution où se trouvent mes éléments TODO.

Gourou des huit bits
la source