【问题标题】:Font-Lock an Emacs-Lisp Regexp Group字体锁定 Emacs-Lisp 正则表达式组
【发布时间】:2018-12-01 22:48:16
【问题描述】:

我目前正在为 Emacs 编写一个主要模式,并试图弄清楚如何让语法突出显示工作。我的主要模式适用于类似 lisp 的语言,如下所示:

[= a 3]
[= [double x] [* x 2]]
[double a]

基本上,我要做的是编写一个正则表达式来匹配所有以[ 开头的单词,而不是[ 本身以突出显示函数调用。我做了一些谷歌搜索,发现 emacs 不支持正则表达式后视,那么我该怎么做呢?

【问题讨论】:

    标签: regex emacs syntax-highlighting font-lock-mode


    【解决方案1】:

    您可以指定要突出显示的正则表达式组的编号。因此,您可以构造一个正则表达式来捕获[ 加上以下函数名称,然后仅通过指定第一个捕获组来突出显示函数的名称,例如。

    (defvar my-mode-font-lock-keywords
      '(("\\[\\s-*\\([^\][:space:]]+\\)" (1 font-lock-function-name-face))))
    
    (define-derived-mode my-mode prog-mode "MyMode"
      (setq-local font-lock-defaults '(my-mode-font-lock-keywords)))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-30
      相关资源
      最近更新 更多