2010-02-11 6 views
19

Je veux avoir sorte de indiacator à côté gauche de la ligne où j'ai dans le code sourceEmacs: indicateur TODO à côté gauche

#TODO: quelques commentaires

// TODO: certains comments

L'indicateur pourrait être une marque juste et j'ai déjà activé les numéros de ligne affichés à emacs.

Répondre

20

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.

+0

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 –

+0

@Trey Jackson. Cela fonctionne très bien maintenant. J'ai ajouté à côté de l'indicateur de numéro de ligne. Merci beaucoup –

+0

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

6

J'aime l'approche décrite dans this post sur emacs-fu, qui ajoute TODO/FIXME/... aux réglages de font-lock des modes où vous en avez besoin. Contrairement à l'approche de Trey, cela devrait mettre en évidence les mots que vous tapez, alors que son approche ne devrait les mettre en évidence que lorsque vous ouvrez un fichier (ou est-ce que je me trompe).

De toute façon c'est à vous de décider. Une bonne recherche Google vous donne des idées sans doute encore plus: http://www.google.com/search?q=emacs+highlight+todo

Mise à jour: Votre question a déjà répondu: Emacs, highlight all occurences of a word

Questions connexes