Я пытаюсь написать функцию elisp, которая отмечает функцию тестирования Python как зеленую или красную в зависимости от ввода. Аргументы довольно понятны. Навигационная часть работает, но часть put-text-property
просто ничего не делает. Я пробовал eval
, используя функции match-*
, но я не могу понять возвращаемые значения. Они также, похоже, возвращают разные вещи, в зависимости от того, какой буфер i eval
дюйма.match- * функции не ведут себя?
Основная цель этого вопроса взята из соответствующей части rainbow-mode.el, и там она работает безупречно.
Что случилось с звонком put-text-property
? Связано ли, что я могу сделать, чтобы отладить это и узнать больше?
(defun snake-decorate-test (file class func status)
; FIXME: Path hardcoded while developing.
(find-file (format "/home/thiderman/git/piper/%s" file))
(beginning-of-buffer)
(re-search-forward (format "^class %s(" class) nil t)
(re-search-forward (format "^ def \\(%s\\)(" func) nil t)
(put-text-property
(match-beginning 1) (match-end 1)
'face `((:background ,(if (s-equals? status ".")
"#007200" "#720000")))))```
Первое предложение сработало! Это потрясающе! Большое спасибо! : D Кроме того, спасибо за советы по отладке. Я довольно новичок в emacs, потратив большую часть десятилетия на vim и, наконец, перейдя. Elisp является удивительным, но трудно понять в таких ситуациях, как отладка. Ваши советы будут заветными! –