3

我使用 emacs 编写一些ejs文件。我已经设定

(show-paren-mode t)

在我的 .emacs 中突出显示括号。ejs 代码如下所示:

<ul>
    <% for(var i=0; i<supplies.length; i++) {%>
        <li><%= supplies[i] %></li>
    <% } %>
</ul>

使用 html-mode 编辑 ejs 时,这种模式似乎无法正常工作。例如,'<%' 中的左侧 '<' 匹配右侧的 '}' 而不是匹配 '%>'。

所以我的问题是我可以添加 '<%' 作为代码块分隔符以使 show-paren-mode 在 ejs 文件中正常工作吗?

任何帮助表示赞赏。

4

1 回答 1

2

您是否真的充分考虑过这个括号突出显示如何工作?

您在“<%”和“%>”之间有一个裸的起始分隔符“{”起始分隔符。

这相当于:

( { )

是否show-paren-mode正确突出显示此类代码?

在 Emacs 中编辑混合的主要模式文件(HTML 中的 JS)(HTML 中的 Ruby)是很困难的。

您可以使用此代码段删除“<”和“>”作为匹配分隔符,这可以稍微缓解您的问题。

(eval-after-load "sgml-mode" '(progn
                                (modify-syntax-entry ?< "'" sgml-mode-syntax-table)
                                (modify-syntax-entry ?> "'" sgml-mode-syntax-table)))

但是你需要一个多主模式库才能真正让它工作,但我怀疑是否有人投入工作以使“EJS”工作。

于 2012-06-18T12:53:23.653 回答