Emacs: индикатор TODO слева
Я хочу иметь своего рода указатель в левой части строки, где бы я ни находился в исходном коде
#TODO: некоторые комментарии
//TODO: некоторые комментарии
Индикатор может быть просто меткой, и я уже включил номера строк, отображаемые в emacs.
2 ответа
Эта команда будет делать то, что вы хотите.
(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)))))))
Вы можете настроить изображение по своему усмотрению.
Чтобы применить это ко всем файлам, вы можете добавить его в 'find-file-hooks
(add-hook 'find-file-hooks 'annotate-todo)
Или, если вы хотите это только для определенных режимов, вы можете добавить его к этим режимам.
См. Fringes, Свойство 'display', Наложения и, самое главное, свойство before-string.
Примечание. Код был обновлен 27.02.2010 для использования наложений вместо непосредственного добавления текстовых свойств к текущему тексту.
Мне нравится подход, описанный в этом посте для emacs-fu, который добавляет TODO/FIXME/... к настройкам блокировки шрифтов в режимах, где он вам нужен. В отличие от подхода Трея, это должно выделять слова при вводе текста, тогда как его подход должен выделять их только при открытии файла (или я ошибаюсь).
В любом случае, решать вам. Хороший поиск в Google дает вам, вероятно, еще больше идей: http://www.google.com/search?q=emacs+highlight+todo
Обновление: на ваш вопрос уже дан ответ: Emacs, выделите все вхождения слова