【问题标题】:emacs font-lock-mode for JavaScript: would like to highlight 'self' just like 'this'JavaScript 的 emacs 字体锁定模式:想像“this”一样突出显示“self”
【发布时间】:2016-04-01 01:42:23
【问题描述】:

因为我经常需要保护 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 高级用户而不是开发人员,这似乎是拜占庭式的。

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

【问题讨论】:

  • emacs.stackexchange.com 可能是解决此类问题的更好地方,但由于您的问题特定于将其用作 IDE,所以也可以。
  • 现在几乎不需要使用 self 了。箭头函数通常可以完成工作。您可能想借此机会尝试非自编程风格。
  • 您非常无私地指出这一点。

标签: javascript emacs syntax-highlighting font-lock


【解决方案1】:

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

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

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

【讨论】:

  • javascript-modejs-mode 的别名,但其他名称必须正确(js-mode-hook 等),所以它确实会不时引起混淆...
猜你喜欢
  • 2012-12-12
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-01
  • 1970-01-01
  • 2013-02-10
相关资源
最近更新 更多