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

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

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

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

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

19
задан Vadim Kotov 1 November 2017 в 11:32
поделиться

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' , Overlays и, что наиболее важно, свойство before-string .

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

20
ответ дан 30 November 2019 в 04:24
поделиться

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

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

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

6
ответ дан 30 November 2019 в 04:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: