Итак, я начинаю изучать lisp / elisp, чтобы оптимизировать свою среду emacs, и я начал создавать простую библиотеку emacs, основной контрольно-пропускной пункт которой состоит в том, чтобы определить, соответствует ли введенная скобка совпадению или нет , Я просматривал исходный код emacs (paren.el.gz) и понял, что могу использовать функцию show-paren-function
, чтобы определить, соответствует она или нет.
Вот что у меня так далеко:
(defun it-is-a-paren()
(interactive)
(insert ")")
(if (show-paren-function)
(message "%s" "it is a match")
(message "%s" "it is not")))
Так что это довольно просто, и «это совпадение» работает так, как должно, но когда предполагается, что оно выбрасывает «это не так», это не так, вместо этого он дает мне «Неправильный аргумент типа: целое число - or-mark-p, t ".
Кто-нибудь достаточно знаком, чтобы посоветовать использовать другую функцию, или, может быть, я должен написать свою собственную вместо использования show-paren-function
. Или есть способ обойти эту ошибку (вроде обработки исключений)?