Почему этот фрагмент кода Emacs Lisp ломает список цветов? - PullRequest
1 голос
/ 02 апреля 2009

Мне нравится, когда Emacs выделяет символы табуляции с помощью конечного пробела, который я выбрал в качестве слегка серой версии фона. Таким образом, все пробелы, которые я считаю нежелательными (символы табуляции и конечные пробелы), будут иметь слегка серый фон.

Это код, который я использую:

(add-hook 'font-lock-mode-hook
  '(lambda ()
     (font-lock-add-keywords
       nil
        '(("\t" 0 'trailing-whitespace prepend))
     )
   )
)

Однако, кажется, что это нарушает отображение списка цветов: эта функция по-прежнему перечисляет все цвета, но они монохромные. Я не вижу ослепительного спектра цветов, которые он должен обеспечивать.

Почему это происходит? Это можно исправить?

Ответы [ 2 ]

2 голосов
/ 02 апреля 2009

Не уверен, почему ошибка. В вики доступен режим, который показывает вкладки ( show-wspace.el ), который работает довольно хорошо.

(require 'show-wspace)
(show-ws-toggle-show-tabs) ; default is no tabs shown, turn it on
;; the face used is 'show-ws-tab, which you can customize at will    
0 голосов
/ 02 апреля 2009

Вы можете обернуть свою функцию так, чтобы она не использовала пробельные символы в буферах, которые начинаются / заканчиваются *. Вы, вероятно, в любом случае не хотите этого в буферах этого типа:

(add-hook ...
  (unless (string-match "\\*.+\\*" (buffer-name))
    (font-lock-add-keywords ...)))
...