LINUX.ORG.RU

Раскрасить буфер по диапазонам из списка в emacs.

 ,


0

1

Имеется, скажем, список векторов вида:
([12 34] [56 78] ... [90 123])

Как можно расставить цвета в буфере, используя вектора из списка как начальные/конечные точки регионов. Например, с 12того по 34й символы, с 56того по 78, etc поставить какое-либо значение :foreground & :background цветов.

Единственное, что в голову пришло put-text-property.
Если взлетит, то следить за изменением переменной, хранящей список, получится только таймером?
PS: font lock keywords не предлагать :)

Единственное, что в голову пришло put-text-property.

кажется, так и есть.

Bad_ptr ★★★★ ()
Ответ на: комментарий от Bad_ptr

как только по-человечески ему face определить/создать в этом же куске кода? так мозг с ихними properties и не подружил

proofit404 ()
Ответ на: комментарий от proofit404

Ну посмотри какой-нибудь готовый модуль с раскрашивалкой. Типа rainbow-mode или rainbow-delimiters.
Вот кусок из раинбоу-моде:

  (put-text-property
   (match-beginning 0) (match-end 0)
   'face `((:foreground ,(if (> 0.5 (rainbow-x-color-luminance color))
                             "white" "black"))
           (:background ,color))))

Bad_ptr ★★★★ ()
Ответ на: комментарий от Bad_ptr

ок, спасиб. Раньше просто этих модулей не встречал, отличные ништячки.

proofit404 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.