2016-04-01 49 views
2

因爲我經常必須保留this在封閉中被覆蓋,所以我喜歡在我的構造函數頂部執行:var self = this;。我想隨後突出顯示self究竟如何以及何時this當前突出顯示。但是,在研究這裏的emacs文檔,網站和示例並修改示例之後,它不起作用。在我.emacs文件和JavaScript的緩衝用於JavaScript的emacs字體鎖定模式:想突出顯示'self'就像'this'

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

兩個,並且還切換font-lock-mode強制刷新:我評價這一表達。我已經嘗試過令人困惑的"\\<self\\>"語法的變體,但我明顯在扔飛鏢,因爲那也失敗了。我看到font-lock-add-keywords的許多變體,但它只是一個Emacs超級用戶而不是開發人員,它似乎是拜占庭式的。

作爲上下文,這是GNU Emacs 24.5.1作爲本地Mac OS X 10.11.5應用程序運行,而不是終端。

+0

emacs.stackexchange.com可能是類似這樣的問題,一個更好的地方,儘管因爲你的問題是特定於使用它作爲一個IDE,SO也可以。 – Barmar

+0

現在幾乎沒有必要使用自我。箭頭功能通常會讓工作完成。您可能想借此機會嘗試一下非自編程風格。 –

+0

非常無私的你指出。 – BaseZen

回答

3

有趣的是,如何張貼在這裏提高我自己的故障排除。 :-)

JavaScript模式實際上是js-mode而不是javascript-mode。我沒有耐心弄清楚爲什麼有兩個,可能是歷史的。所以這個工作,一路上固定2個禮節(字邊界,正確面):

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

'javascript-mode'是'js-mode'的別名,但其他名稱必須是正確的('js-mode-hook'等),所以它會不時地引起混淆。 – phils

相關問題