2010-02-11 12 views
19

chcę mieć rodzaju indiacator po lewej stronie linii gdziekolwiek mam w kodzie źródłowymEmacs: wskaźnik TODO na lewej stronie

#TODO: pewnym komentarzu

// TODO: niektóre komentarze

Wskaźnik może być znakiem prostym i już włączono numery linii wyświetlane w emacs.

Odpowiedz

20

To polecenie zrobi coś, co chcesz.

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

Możesz customize the bitmap zgodnie z życzeniem.

Aby uzyskać ten stosuje się do wszystkich plików, można go dodać do 'find-file-hooks

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

Albo, jeśli chcesz po prostu dla niektórych trybach, można je dodać do tych haków trybu.

Zobacz Fringes, The 'display' Property, Overlays, a co najważniejsze właściwość before-string.

Uwaga: Kod został zaktualizowany 27/02/2010, aby użyć nakładek zamiast bezpośredniego dodawania właściwości tekstu do bieżącego tekstu.

+0

To dzieło wielkie. niestety włączam wyświetlanie numeru linii. Tak więc numery linii zastępują znak TODO:. Jakikolwiek sposób, aby oba pojawiły się –

+0

@Trey Jackson. Teraz działa świetnie. Dodałem obok wskaźnika numeru linii. Wielkie dzięki –

+0

Cool! ale ..... :) ... Bardziej użyteczne byłoby wyświetlanie czerwonych pasków na marginesie, skalowanych do długości dokumentu. Innymi słowy, jeśli TODO pojawi się w 75% punktu dokumentu, wtedy wskaźnik pojawi się również na 75% na pasku obramowania, niezależnie od stanu przewijania i tego, czy TODO było widoczne w oknie w tym czasie. Niektóre narzędzia różnicowe to robią. Przy takim wskaźniku możesz zobaczyć obecność elementów TODO wskazanych na marginesie, niezależnie od tego, czy są one aktualnie widoczne na ekranie. – Cheeso

6

Podoba mi się podejście opisane w this post na emacs-fu, które dodaje TODO/FIXME/... do ustawień blokady czcionki trybów tam, gdzie jest to potrzebne. W przeciwieństwie do podejścia Treya, powinno to podkreślać słowa podczas pisania, podczas gdy jego podejście powinno je uwypuklać tylko przy otwieraniu pliku (lub źle rozumiem).

W każdym razie to zależy od ciebie. Dobra wyszukiwarka google daje prawdopodobnie jeszcze więcej pomysłów: http://www.google.com/search?q=emacs+highlight+todo

Update: Twoje pytanie zostało już odpowiedział: Emacs, highlight all occurences of a word

Powiązane problemy