Латексная электрическая 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)))
Другие вопросы по тегам