2010-02-11 14 views
19

Ich möchte auf der linken Seite der Linie Art indiacator haben, wo ich im QuellcodeEmacs: TODO-Anzeige auf der linken Seite

#TODO haben: einige Kommentar

// TODO: einige Kommentare

Der Indikator könnte eine gerechte Marke sein und ich habe bereits Zeilennummern auf Emacs angezeigt.

Antwort

20

Dieser Befehl wird etwas wie Sie wollen.

(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))))))) 

Sie können customize the bitmap wie gewünscht.

dies auf alle Dateien anwenden zu erhalten, können Sie es auf die 'find-file-hooks

(add-hook 'find-file-hooks 'annotate-todo) 

Oder fügen Sie, wenn Sie es nur für bestimmte Modi wollen, können Sie es zu diesen Modus Haken hinzufügen könnte.

Siehe Fringes, The 'display' Property, Overlays und vor allem die before-string Eigenschaft.

Hinweis: Der Code wurde 27.02.2010 aktualisiert, um Overlays zu verwenden, anstatt dem aktuellen Text Texteigenschaften direkt hinzuzufügen.

+0

Diese Arbeit groß. Leider habe ich die Zeilennummer aktiviert. Zeilennummern überschreiben also das TODO: -Zeichen. Jeder Weg, um beide zu erscheinen –

+0

@Trey Jackson. Es funktioniert jetzt großartig. Ich habe neben Zeilennummernanzeige hinzugefügt. Vielen Dank –

+0

Cool! aber ..... :) ... Was nützlicher wäre, rote Balken am Rand anzuzeigen, skaliert auf die Länge des Dokuments. Mit anderen Worten, wenn das TODO an dem 75% -Punkt des Dokuments erscheint, würde der Indikator auch bei 75% auf dem Randbalken erscheinen, ungeachtet des Scroll-Zustands und ob das TODO zu diesem Zeitpunkt in dem Fenster sichtbar war. Einige Diff-Tools tun dies. Mit dieser Art von Indikator können Sie das Vorhandensein von TODO-Elementen erkennen, die am Rand angezeigt werden, unabhängig davon, ob sie gerade auf dem Bildschirm angezeigt werden. – Cheeso

6

Ich mag den Ansatz beschrieben in this post auf Emacs-Fu, die TODO/FIXME/... zu den Font-Lock-Einstellungen der Modi, wo Sie es brauchen. Im Gegensatz zu Treys Ansatz sollte dies die Wörter während der Eingabe hervorheben, während sein Ansatz sie nur hervorheben sollte, wenn Sie eine Datei öffnen (oder bekomme ich das falsch).

Wie auch immer es Ihnen überlassen ist. Eine gute Google-Suche gibt Ihnen wahrscheinlich noch mehr Ideen: http://www.google.com/search?q=emacs+highlight+todo

Update: Ihre Frage bereits beantwortet: Emacs, highlight all occurences of a word

Verwandte Themen