Аааа ... Я вижу ошибку моих путей ранее. Вот новая версия.
(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 (format "A")
'display '(left-fringe right-triangle)))))))
В первом решении использовалось текстовое свойство 'display
, которое изменяет способ отображения указанного текста, в этом случае было заменено на треугольник в левой части . Мне нужно было использовать оверлей 'before-string
. Что не меняет отображаемую строку.
Еще одно преимущество - вырезанный / вставленный код, аннотированный этим, не содержит разметки.
Я обновил код в исходном вопросе, чтобы отразить и это изменение.