Cette commande fera ce que vous voulez.
(defun annotate-todo()
"put fringe marker on TODO: lines in the curent buffer"
(interactive)
(save-excursion
(goto-char (point-min))
(while (re-search-forward "TODO:" nil t)
(let ((overlay (make-overlay (- (point) 5) (point))))
(overlay-put overlay 'before-string (propertize "A"
'display '(left-fringe right-triangle)))))))
Vous pouvez customize the bitmap comme vous le souhaitez.
Pour obtenir ce à appliquer à tous les fichiers, vous pouvez l'ajouter à la 'find-file-hooks
(add-hook 'find-file-hooks 'annotate-todo)
Ou, si vous voulez juste pour certains modes, vous pouvez l'ajouter à ces crochets de mode.
Voir Fringes, The 'display' Property, Overlays et, plus important encore, la propriété before-string.
Remarque: Le code a été mis à jour le 27/02/2010 pour utiliser des superpositions au lieu d'ajouter directement des propriétés de texte au texte en cours.
Ce grand travail. Malheureusement, j'ai activé le numéro de ligne à afficher. Les numéros de ligne remplacent donc la marque TODO:. Toute façon de faire les deux à apparaître –
@Trey Jackson. Cela fonctionne très bien maintenant. J'ai ajouté à côté de l'indicateur de numéro de ligne. Merci beaucoup –
Cool! mais ..... :) ... Ce qui serait plus utile est d'afficher des barres rouges sur la frange, proportionnées à la longueur du document. En d'autres termes, si le TODO apparaît au point 75% du document, l'indicateur apparaîtra également à 75% sur la barre de frange, indépendamment de l'état de défilement et si le TODO était visible dans la fenêtre à ce moment. Certains outils de diff font cela. Avec ce type d'indicateur, vous pouvez voir la présence d'éléments TODO indiqués dans la frange, qu'ils soient visibles ou non sur l'écran. – Cheeso