Jinja 模板语法高亮

发布于 2024-11-02 09:26:31 字数 859 浏览 7 评论 0原文

我想调整 jinja.el 以使用 ## 处理单行注释。但我对 elisp 的了解很差。谁能帮助我?我想要什么:我想将 hilite

## some text
## {% include "_template.html" %}

作为注释掉的字符串。但它的工作原理并不完全正确。代码片段的第一行看起来像是注释掉了,而第二行则不是。这是我得到的:

在此处输入图像描述

这是 jinja.el 的一部分,取自 Jinja 的 git 存储库加上我的 ## 正则表达式:

(defconst jinja-font-lock-keywords
  (list
;   (cons (rx "{% comment %}" (submatch (0+ anything))
;             "{% endcomment %}") (list 1 font-lock-comment-face))
   '("{%-?\\|-?%}\\|{{\\|}}" . font-lock-preprocessor-face)
   '("{# ?\\(.*?\\) ?#}" . (1 font-lock-comment-face))
   '("## ?\\(.*\\)" . (1 font-lock-comment-face))
   '("{#\\|#}" . font-lock-comment-delimiter-face)
   '("##" . font-lock-comment-delimiter-face)
   ;; first word in a block is a command

I'd like to adapt jinja.el to work with one-line comments using ##. But my knowlege of elisp is bad. Who can help me? What do I want: i'd like to hilite

## some text
## {% include "_template.html" %}

as a commented out strings. But it works not fully correct. 1st line of snippet looks like comment out while 2nd - not. Here is what i've got:

enter image description here

And here is a part of jinja.el taken from Jinja's git repo plus my regexp for ##:

(defconst jinja-font-lock-keywords
  (list
;   (cons (rx "{% comment %}" (submatch (0+ anything))
;             "{% endcomment %}") (list 1 font-lock-comment-face))
   '("{%-?\\|-?%}\\|{{\\|}}" . font-lock-preprocessor-face)
   '("{# ?\\(.*?\\) ?#}" . (1 font-lock-comment-face))
   '("## ?\\(.*\\)" . (1 font-lock-comment-face))
   '("{#\\|#}" . font-lock-comment-delimiter-face)
   '("##" . font-lock-comment-delimiter-face)
   ;; first word in a block is a command

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尾戒 2024-11-09 09:26:31

好的。我找到了解决方案。更改

'("## ?\\(.*\\)" . (1 font-lock-comment-face))

'("## ?\\(.*\\)" . (1 font-lock-comment-face t))

ie 将“覆盖”参数设置为 true 解决了我的问题。

OK. I found solution. Change

'("## ?\\(.*\\)" . (1 font-lock-comment-face))

to

'("## ?\\(.*\\)" . (1 font-lock-comment-face t))

ie setting 'override' parameter to true solves me question.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文