Латексная электрическая env-pair-mode в AUCTeX
Ребята из простого tex-режима добавили очень хорошую функцию в emacs 24.1, второстепенный режим под названием latex-electric-env-pair-mode, который сохраняет существующие \begin{...} [...] \end{...}
пары совпадают. При изменении имени среды в \begin{...}
тег, соответствующий \end{...}
изменяется автоматически (очень удобно при переходе от помеченной к незарегистрированной версии среды и наоборот).
Тем не менее, при сравнении с AUCTeX, tex-mode все равно отстой... но мне очень нравится новый минорный режим. Я попытался создать автономный второстепенный режим, скопировав все, что выглядело так, как будто он использовался из tex-mode.el, в новый файл и изменил все дескрипторы (чтобы они не конфликтовали с AUCTeX или какими-либо остатками для tex- Режим). К сожалению, это не сработает, второстепенный режим можно включить, но он сломан: ничего не происходит.
Я не (е) программист на lisp, то есть я не совсем понимаю код. Но, может, кому-то нравится функция этого второстепенного режима, и он может портировать ее на автономную версию? Также может быть какой-то пакет, который обеспечивает аналогичную / равную функциональность?
Буду признателен за любую помощь!
1 ответ
Вы, вероятно, пропустили tex-env-mark
(который устанавливает метки, которые используются позже latex-electric-env-pair-mode
найти среду начала / конца) или latex-syntax-propertize-rules
(который работает tex-env-marks
на соответствующих частях буфера) или настройки syntax-propertize-function
(который использует latex-syntax-propertize-rules
так что эти правила действительно используются).
Кстати, вместо того, чтобы копировать эти вещи, я рекомендую вам попробовать что-то вроде непроверенного кода ниже:
(defconst my-latex-syntax-propertize-function
(with-temp-buffer (latex-mode) syntax-propertize-function))
(add-hook 'LaTeX-mode-hook
(lambda ()
(set (make-local-variable 'syntax-propertize-function)
my-latex-syntax-propertize-function)
(latex-electric-env-pair-mode 1)))