Created
August 21, 2012 08:39
-
-
Save youz/3413557 to your computer and use it in GitHub Desktop.
shell-modeでキーワードハイライト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(in-package :editor) | |
(defvar *shell-mode-keyword-file* "Shell") | |
(defvar *shell-mode-keyword-table* nil) | |
(defun shell-mode-enable-highlighting () | |
(when *shell-mode-keyword-file* | |
(unless *shell-mode-keyword-table* | |
(setq *shell-mode-keyword-table* | |
(load-keyword-file *shell-mode-keyword-file*))) | |
(make-local-variable 'keyword-hash-table) | |
(setq highlight-keyword t ; <- これ | |
keyword-hash-table *shell-mode-keyword-table*))) | |
(add-hook '*shell-mode-hook* 'shell-mode-enable-highlighting) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
memo
ed:highlight-keyword
が nil だと ed:keyword-hash-table を設定しても色付けされない。ref. disp.cc の Window::redraw_window
ed:highlight-keyword
の値は[共通設定]→[表示]→[キーワードに色を付ける]で設定できる(/lisp/optprop.l)が、/lisp/misc.l)fundamental-modeとtext-modeではbuffer-localにした後setqでnilにしている。(
*default-buffer-mode*
をいじってなければnew-fileやget-buffer-create等で作成したバッファはfundamental-mode になるので、空の新規バッファでは大体
ed:highlight-keyword
は nil。キーワードハイライトを使っているほとんどの言語モードでは初期化処理中でkill-all-local-variablesを
実行しているので
ed:highlight-keyword
の値は共通設定の通りになるが、shell-modeはkill-all-local-variablesしないためget-buffer-createされた時点のnilのままになっている。