xml-mode の CraftLaunchEx 用キーワード定義
以下の環境で動作確認しました。
- Windows XP Home Edition SP2
- xyzzy 0.2.2.235
- xml-mode 2.092
xml-mode で CraftLaunchEx のコマンド定義ファイル command.xml の要素/属性名に色をつけたり、補完できるようにします。
キーワード定義は CraftLaunchEx 0.991 のものです。
コード
(in-package "xml") (defvar *xml-mode-craftlaunchex-suffix* nil) (defvar *xml-mode-craftlaunchex-keyword-list* '((t "craftlaunch" "command-group" "shellexec" "activate" "activate-or-shellexec" "url" "script" "switch" "@name" "@verb" "@file" "@param" "@directory" "@swmode" "@window-class" "@window-class-re" "@window-title" "@window-title-re" "@url" "@encoding" "@paramlist" "@format" "@mod" ))) (defvar *xml-mode-craftlaunchex-guess-list* (let ((cmdelmlst '("shellexec" "activate" "activate-or-shellexec" "url" "script" "switch" ))) (list (cons "" '("craftlaunch")) (cons "command-group" cmdelmlst) (cons "switch" (remove "switch" cmdelmlst :test #'string=)) ))) (pushnew (list "CraftLaunchEx" nil nil nil nil nil *xml-mode-craftlaunchex-keyword-list* *xml-mode-craftlaunchex-guess-list*) *xml-doctypes* :test #'equal) (in-package "user")
設定例
*xml-mode-craftlaunchex-suffix* に command.xml のパスの正規表現をセットして、*xml-auto-doctype-alist* と *auto-mode-alist* に push します。
(setq xml::*xml-mode-craftlaunchex-suffix* (concat "^" (regexp-quote (merge-pathnames "../CLNCHEX/command.xml" (si:system-root))) "$")) (pushnew (list xml::*xml-mode-craftlaunchex-suffix* nil "CraftLaunchEx") *xml-auto-doctype-alist* :test #'equal) (pushnew (cons xml::*xml-mode-craftlaunchex-suffix* 'xml-mode) *auto-mode-alist* :test 'equal)