模式不能处理反引号的反斜杠

目前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


Jon O.所说的:使用syntax-propertize-function 。 例如

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

Fix已经被提交到Git仓库,所需的Emacs最低为24.3,这已经在Debian Sid上测试过了。

链接地址: http://www.djcxy.com/p/80635.html

上一篇: mode cannot handle backquoted backslashes

下一篇: Uploading large images to the GPU in webgl