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.
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ę –
@Trey Jackson. Teraz działa świetnie. Dodałem obok wskaźnika numeru linii. Wielkie dzięki –
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