2009年11月30日月曜日

[Emacs]eldocをほんの少し便利にする

LISPファイルの編集時に関数の引数を表示するマイナーモードとして、Emacsではeldoc-mode、CLではslime-autodoc-modeがあるんですが、両者の表示形式が微妙に異なることが気になったのでついカッとなってeldocの方を軽く改造しました。反省はしていない。

gist: 244937 - GitHub

参考画像を見れば分かると思いますが、ポイント位置の引数の強調方法がデフォル トでは太字ではなくハイライトになってます。

Eldocの表示デモ

その他、関数・変数ともにdocstringの表示が可能です。

ソースコードはGistに置いておくのでinstall-elispからインストールすればCL(SLIME)使いは幸せになれるかもしれません。

(install-elisp-from-gist 244937 "eldoc.el")

動作環境

Emacs22以上で動作確認。

無駄にCLのマクロを使っていますがバイトコンパイルすれば (require 'cl) がない状態でも使えるので安心です。


ここまで書いておいてあれですが、このeldoc.elの改造はミニバッファ表示方法がちょこっと変わった位のものなので特に目新しい機能はありません。

単に表示色を変更したいだけなら本来のeldocのfaceを弄ればそれっぽくなります。

(set-face-background 'eldoc-highlight-function-argument "darkseagreen2")
(set-face-bold-p 'eldoc-highlight-function-argument nil)

1 件のコメント:

  1. その他、本家 eldoc.el との機能の差分

    1. "文字列の内部" でも表示が途切れない
    2. docstring の折り返しが賢い (かもしれない)

    ...あとは do*/let などの括弧の複雑なS式でもちゃんと表示できれば言うことないんですけどねえ
    slime-autodoc にはそれがある

    返信削除