Emacs d-mode无法处理反引号反斜杠

时间:2014-08-01 21:41:05

标签: emacs elisp syntax-highlighting d string-literals

目前,Emacs https://github.com/Emacs-D-Mode-Maintainers/Emacs-D-Mode无法正确突出显示

`\`

因为它并不了解单个反斜杠 在这样的原始字符串文字中自包含。

我相信这个摘自d-mode.el

(defvar d-mode-syntax-table nil
  "Syntax table used in d-mode buffers.")
(or d-mode-syntax-table
    (setq d-mode-syntax-table
     (let ((table (funcall (c-lang-const c-make-mode-syntax-table d))))
       ;; Make it recognize D `backquote strings`
       (modify-syntax-entry ?` "\"" table)

       ;; Make it recognize D's nested /+ +/ comments
       (modify-syntax-entry ?+  ". 23n"   table)
       table)))

与此问题密切相关。关于如何解决这个问题的想法?

另请参阅:http://forum.dlang.org/post/kqzbgawuzyemcyjnsuin@forum.dlang.org

2 个答案:

答案 0 :(得分:3)

Jon O.说:使用syntax-propertize-function。 E.g。

(setq-local syntax-propertize-function
            (syntax-propertize-rules ("`\\(\\\\\\)`" (1 "."))))

答案 1 :(得分:1)

现在已经将修复程序提交到Git存储库,其中必需的Emacs最小值为24.3,因为它已经在Debian Sid上进行了测试。