emacs font-lock-mode для JavaScript: хотел бы выделить "себя" так же, как "это"

Потому что мне часто приходится сохранять 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, а не в терминале.

1 ответ

Решение

Интересно, как публикация здесь улучшает мои собственные проблемы.:-)

Режим JavaScript на самом деле js-modeне javascript-mode, У меня нет терпения выяснить, почему есть два, возможно, исторические. Так что это сработало, исправив две тонкости (граница слова и правильное лицо) на этом пути:

(add-hook 'js-mode-hook (lambda() 
          (font-lock-add-keywords 'js-mode '(("\\<self\\>" . 'font-lock-constant-face)))))
Другие вопросы по тегам