gpt4 book ai didi

ruby - Emacs mmm-mode 没有突出显示没有换行符的 ruby​​ 子模式 (ERB)? Elisp 建议?

转载 作者:数据小太阳 更新时间:2023-10-29 08:05:51 24 4
gpt4 key购买 nike

我正在尝试让 ERB 模板在 Emacs 22 和 23(两个不同的服务器)中“工作”。

我在网上找到了几个几乎完全使用此代码段的示例。请注意,我不需要任何背景颜色,因为我正在通过 SSH 在终端中工作。

这是正确检测第一个区域的开始位置,因为模式线会随着点移动而改变。但是有些事情是不对的,因为它不会突出显示我的 ruby​​ 代码,除非我用至少两个空行清除它,而且它似乎也认为 ruby​​ 代码第一段以下的所有内容都是 ruby​​ 代码,即使在结束标记之后.

我只能假设模式不正确,我想了解语法以便自己更好地调试它。谁能告诉我这里所有的 @ 符号是什么意思?

此外,有没有人真正获得了在 mmm 模式下工作的 ERB 模板?

(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

最佳答案

我有a similar setup ,这甚至可能是您尝试的基础。即使在缺少换行符的情况下执行 font-lock-fontify-buffer 也会导致显示正确的突出显示,因此问题可能出在 mmm 模式上。

mmm-mode 设置的主要好处是我可以很容易地看到 ERB 区域;该设置从来没有为我完美地语法突出显示嵌入式代码,尽管我一直是updating mmm-mode for compatibility with recent emacsen ,如果您真的想要详细的子区域突出显示,可能值得探索替代方案。

和你一样,我一直不愿意求助于 nxhtml,因为它非常重量级,而且我相信它也有显示问题。

我还要指出 haml-mode 在语法高亮嵌入代码块方面做得很好(最初只是 ruby​​ 代码,直到我贡献了 javascript 和 css 支持),这就是这些天我更喜欢 haml 而不是 html+erb 的几个原因之一。

关于ruby - Emacs mmm-mode 没有突出显示没有换行符的 ruby​​ 子模式 (ERB)? Elisp 建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7522887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com