xml-modeでキーワードの色を変える

xyzzyxml-modeは,対応する閉じタグを追加してくれたり,整合性を見てくれたり結構便利である.ただし,ハイライトしたタグの色が少々派手で目が痛い.この色を少し落ち着いた色に変えることにした.なお,私はlispは全くわからない.見よう見まねなので,変なところはあるかもしれない.

色を指定しているのは,xml-mode.lの132行目から137行目である.

(defvar *xml-tag-attribute* '(:bold t :foreground 3)
  "xml-mode: ハイライト表示の属性")
(defvar *xml-tag-invalid-attribute* '(:bold t :foreground 1)
  "xml-mode: ハイライト表示の属性(不整合のあるタグのみ)")
(defvar *xml-cdata-attribute* '(:foreground 2)
  "xml-mode: CDATA表示の属性")
  

foregroundの後にある数字が色を表している.ここを直接書き換えてもいいのだが,それでは,xml-modeをインストールするたびに書き換えないといけない.これは面倒だ.そこで.xyzzyに以下の内容を書き加える.場所はxml-modeの設定の後.前だとエラーになる.

<!-- xml-modeの設定 -->
(require "xml/xml-mode")
(use-package 'xml)
(pushnew '("\\.\\(xml\\|xsl\\|html\\|sdoc\\|fo\\|rng\\|svg\\|xi\\)" . xml-mode) *auto-mode-alist* :test #'equal)

<!-- 色の変更 -->
(setq *xml-tag-attribute* '(:bold t :foreground 9))
(setq *xml-tag-invalid-attribute* '(:bold t :foreground 1))
(setq *xml-cdata-attribute* '(:foreground 2))
  

xyzzyを再起動して確認しよう.

ちなみに,foregroundに指定する数字と色の対応は以下の通りである.

数字
1
2
3
4
5
6 水色
7
8
9 小豆
10 深紫
11
12 群青