JavaScript 的 emacs 字体锁定模式:想像 'this' 一样突出显示 'self'

emacs font-lock-mode for JavaScript: would like to highlight 'self' just like 'this'

因为我经常需要避免 this 在闭包中被覆盖,所以我喜欢在我的构造函数的顶部做:var self = this;。我想随后突出显示 self 当前如何以及何时突出显示 this。但是,在研究了此处的 emacs 文档、网站和示例并调整示例后,它不起作用。我正在评估这个表达式:

(font-lock-add-keywords 'javascript-mode
        '(("self" . 'font-lock-keyword-face)))

在我的 .emacs 文件和 javascript 缓冲区中,并且还切换 font-lock-mode 以强制刷新。我已经尝试使用令人困惑的 "\<self\>" 语法进行变体,但我显然是在投掷飞镖,因为那也失败了。我看到 font-lock-add-keywords 的许多变体,但只是 Emacs 高级用户而不是开发人员,它看起来很复杂。

作为上下文,这是 GNU Emacs 24.5.1 运行 作为本机 Mac OS X 10.11.5 应用程序,不在终端中。

有趣的是,在这里发帖如何改进我自己的故障排除。 :-)

JavaScript模式实际上是js-mode,而不是javascript-mode。我没有耐心弄清楚为什么有两个,可能是历史原因。所以这很有效,沿途修复了两个细节(单词边界和正确的面部):

(add-hook 'js-mode-hook (lambda() 
          (font-lock-add-keywords 'js-mode '(("\<self\>" . 'font-lock-constant-face)))))