(defvar note-format-mode-map nil) (if note-format-mode-map () (setq note-format-mode-map (make-sparse-keymap)) ; (define-key note-format-mode-map "\M->" 'note-goto-end) ) (defun note-format-mode () "note 形式ファイルを編集するためのモード. コマンド: \\{note-goto-end} note-format-mode にすると,note-format-mode-hook が実行されます." (interactive) (kill-all-local-variables) (use-local-map note-format-mode-map) (setq mode-name "note format") (setq major-mode 'note-format-mode) ; BEAT の色 (defface note-beat-face '((t (:background "yellow"))) nil) (defvar note-beat-face 'note-beat-face) ; BEATTIME の色 (defface note-beattime-face '((t (:background "green"))) nil) (defvar note-beattime-face 'note-beattime-face) ; BPM の色 (defface note-bpm-face '((t (:background "lawn green"))) nil) (defvar note-bpm-face 'note-bpm-face) ; Damper の色 (defface note-damper-face '((t (:background "khaki"))) nil) (defvar note-damper-face 'note-damper-face) ; TIMESHIFT の色 (defface note-timeshift-face '((t (:background "light blue"))) nil) (defvar note-timeshift-face 'note-timeshift-face) ; コメントの色 (defface note-comment-face '((t (:background "gray"))) nil) (defvar note-comment-face 'note-comment-face) ; 小節線の色 (defface note-bar-face '((t (:background "cornflower blue"))) nil) (defvar note-bar-face 'note-bar-face) ; メモ情報の色 (defface note-memo-face '((t (:background "Red"))) nil) (defvar note-memo-face 'note-memo-face) ; END の色 (defface note-end-face '((t (:foreground "white" :background "black" :underline t))) nil) (defvar note-end-face 'note-end-face) ; 音符休符の色 (defface note-noterest-face '((t (:foreground "blue" :background "white"))) nil) (defvar note-noterest-face 'note-noterest-face) (font-lock-add-keywords major-mode '( ("BEATTIME" 0 note-beattime-face append) ("BEAT" 0 note-beat-face append) ("%.*$" 0 note-comment-face append) ("BPM" 0 note-bpm-face append) ("Damper" 0 note-damper-face append) ("DAMPER" 0 note-damper-face append) ("Sostenuto" 0 note-damper-face append) ("SOSTENUTO" 0 note-damper-face append) ("Soft" 0 note-damper-face append) ("SOFT" 0 note-damper-face append) ("TIMESHIFT" 0 note-timeshift-face append) ("=" 0 note-bar-face append) ("!" 0 note-memo-face append) ("END.*" 0 note-end-face append) ("([^)]*)" 0 note-noterest-face append) ; (")" 0 note-noterest-face append) ) ) (font-lock-mode) ; 構文テーブル (set-syntax-table LaTeX-mode-syntax-table) ; とりあえず,LaTeX-mode の構文を拝借する 省略形テーブル (setq local-abbrev-table LaTeX-mode-abbrev-table) ; とりあえず,LaTeX-mode の構文を拝借する ; hook (run-hooks 'note-format-mode-hook) )