morlock 20161008.1358(in MELPA)
more font-lock keywords for elisp

概要

パッケージ時代でelispは多くのライブラリにアクセスできるようになりました。

Lispという言語は簡単にDSL(ドメイン特化言語)を定義できる柔軟性があるため、
新たに「キーワード」が定義しているライブラリも多くあります。

そういう新しいキーワードに font-lock で色付けできたら素敵だと思いませんか?

本来font-lockは設定が難しいのですが、この morlock.el を使えば、
ハイライトしたいキーワードを簡単に設定できます。

この設定を有効にすれば、新たに以下のキーワードに色が付きます。

  • cl-dotimes
  • cl-dolist
  • cl-declare
  • and
  • or
  • not
  • define-button-type
  • define-namespace

morlock-mode が有効時にキーワードの設定を変更したら、
M-x morlock-mode を2度実行すれば色付けが反映されます。

20150404082608.png
Fig1: before

20150404082614.png
Fig2: after

インストール

パッケージシステムを初めて使う人は
以下の設定を ~/.emacs.d/init.el の
先頭に加えてください。

(package-initialize)
(setq package-archives
      '(("gnu" . "http://elpa.gnu.org/packages/")
        ("melpa" . "http://melpa.org/packages/")
        ("org" . "http://orgmode.org/elpa/")))

初めてmorlockを使う方は
以下のコマンドを実行します。

M-x package-install morlock

アップグレードする方は、
以下のコマンドでアップグレードしてください。
そのためにはpackage-utilsパッケージが必要です。

M-x package-install package-utils (初めてアップグレードする場合のみ)
M-x package-utils-upgrade-by-name morlock

設定 150404075540.morlock.1.el(以下のコードと同一)

(require 'morlock)
(progn                              ;キーワードを追加したらC-M-xで反映
  ;; 新しいキーワード
  (setq morlock-op-font-lock-keywords
        `((,(format "(\\(%s\\)\\>"
                    ;; ここに追加する
                    (regexp-opt '("and" "or" "not")))
           1 'font-lock-keyword-face)))
  ;; define-*系キーワード
  (setq morlock-el-font-lock-keywords
        `((,(format "(\\(%s\\)\\>[ \t'\(]*\\(\\(?:\\sw\\|\\s_\\)+\\)?"
                    ;; ここに追加する
                    (regexp-opt '("define-button-type" "define-namespace")))
           (1 'font-lock-keyword-face)
           (2 'font-lock-variable-name-face nil t))))
  (setq morlock-font-lock-keywords
        (append morlock-el-font-lock-keywords
                morlock-op-font-lock-keywords
                morlock-cl-font-lock-keywords)))

;;; 新しいキーワードをemacs-lisp-modeで有効にする
(global-morlock-mode 1)

実行方法

$ wget http://rubikitch.com/f/150404075540.morlock.1.el
$ emacs -Q -f package-initialize -l 150404075540.morlock.1.el


本日もお読みいただき、ありがとうございました。参考になれば嬉しいです。