Emacs mmm-mode не выделяет рубиновый подрежим (ERB) без новой строки? Элисп совет? - PullRequest
3 голосов
/ 23 сентября 2011

Я пытаюсь заставить работать шаблоны ERB в Emacs 22 и 23 (два разных сервера).

Я нашел несколько примеров в Интернете, которые используют почти точно этот фрагмент. Обратите внимание, что мне не нужны никакие цвета фона, так как я работаю в терминале через SSH.

Это правильно определяет, где начинается первая область, так как линия режима изменяется при перемещении точки. Но что-то не так, так как он не выделяет мой код ruby, если я не очищаю его по крайней мере двумя пустыми строками, и кажется, что все, что находится ниже первого сегмента кода ruby, является кодом ruby, даже после закрывающих тегов .

Я могу только предположить, что шаблоны не верны, и я хотел бы понять синтаксис, чтобы я мог лучше его отладить. Может кто-нибудь сказать мне, что все символы @ означают здесь?

Кроме того, кто-нибудь получил шаблоны ERB, работающие в режиме mmm?

(require 'mmm-mode)
(require 'mmm-auto) 

(setq mmm-global-mode 'maybe)
(setq mmm-submode-decoration-level 0)

(mmm-add-group
 'fancy-html
 '((html-erb
    :submode ruby-mode
    :match-face (("<%#" . mmm-comment-submode-face)
                 ("<%=" . mmm-output-submode-face)
                 ("<%"  . mmm-code-submode-face))
    :front "<%[#=]?"
    :back "%>"
    :insert ((?% erb-code       nil @ "<%"  @ " " _ " " @ "%>" @)
             (?# erb-comment    nil @ "<%#" @ " " _ " " @ "%>" @)
             (?= erb-expression nil @ "<%=" @ " " _ " " @ "%>" @)))))

(add-to-list 'mmm-mode-ext-classes-alist '(html-mode nil fancy-html))

Ruby detected but not highlighted Ruby highlighted, but rest of buffer broken

Ответы [ 3 ]

2 голосов
/ 24 сентября 2011

У меня аналогичная настройка , которая могла бы даже послужить основой для ваших попыток.Выполнение font-lock-fontify-buffer даже при пропущенных символах новой строки приводит к отображению правильной подсветки, поэтому проблема, по-видимому, заключается в режиме mmm.

Основным преимуществом настройки mmm-mode является то, что я легко вижуРегионы ERB;установка никогда не подходила для меня встроенного кода с подсветкой синтаксиса, и хотя я обновлял mmm-mode для совместимости с недавним emacsen , возможно, стоит изучить альтернативы, если вы действительно хотите, чтобы этот подробный подпунктвыделение региона.

Как и вы, я не хотел прибегать к nxhtml, потому что он очень тяжелый, и я считаю, что он также имеет причуды дисплея.

Я также укажуиз-за того, что haml-mode делает довольно хорошую работу по выделению синтаксиса встроенных блоков кода изначально (просто ruby-код изначально, пока я не предоставил поддержку javascript и css), и это одна из нескольких причин, почему я предпочитаю haml html + erb в наши дни.

0 голосов
/ 18 июня 2012

Исправлено.Обновление до последней версии mmm с git repo или MELPA .

0 голосов
/ 23 сентября 2011

Во-первых, если у вас есть SSH-доступ к ящику, используйте tramp.

У меня нет глубокой магии МММ-режима для ERB. Тем не менее, я использую Rinari с nxhtml, и все это просто работает. Задавайте вопросы о rinari и nxhtml, если вам нужна помощь в этом.

...