Подтвердить что ты не робот

Emacs: индикатор TODO на левой стороне

Я хочу иметь своего рода indiacator в левой части строки, где бы я ни находился в исходном коде

#TODO: комментарий

//TODO: некоторые комментарии

Индикатор может быть справедливой меткой, и я уже включил номера строк, отображаемые в emacs.

4b9b3361

Ответ 1

Эта команда будет делать то, что вам нужно.

(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', Overlays, и, самое главное, перед строкой.

Примечание. Код был обновлен 27/02/2010, чтобы использовать наложения вместо прямого добавления свойств текста в текущий текст.

Ответ 2

Мне нравится подход, описанный в этот пост на emacs-fu, который добавляет TODO/FIXME/... к блокировке шрифтов настройки режимов, в которых вы нуждаетесь. В отличие от подхода Трей, это должно выделять слова по мере ввода, тогда как его подход должен только выделять их, когда вы открываете файл (или я ошибаюсь).

В любом случае это зависит от вас. Хороший поиск в Google дает вам, вероятно, еще больше идей: http://www.google.com/search?q=emacs+highlight+todo

Обновление: Ваш вопрос уже ответил: Emacs, выделите все вхождения слова