Emacsでユーザ定義関数の説明を取得する機能作りました

はじめに

この投稿は.emacs Advent Calendar 2013 6日目の記事です。

PHPである程度の規模のシステムをいじっていたら、関数名から処理は分からないけど、コメントはメモ程度に書いてあるって状況にもよく遭遇しました。
それらをgtagsでファイルを移動しながら何度も確認しにいったら非常に時間がかかったので、呼出元から取得できるget-user-comment.el(α版)を作りました。
現在は、PHPのみに対応しています。理由は、自分が使っている言語でgtagsで対応されている(Java, C, C++, PHP)?ものがPHPのみのため。


なにをしてくれるの?

関数内でユーザが定義している関数の上のコメントを取得して呼出元から参照できるようにしてくれます。
デモ

(現在PHPのみに対応。)

導入方法

事前準備

動作のためには、以下のものが必要になります。

  • gnu global
  • gtags.el
  • popup.el
導入

gistからインストールします。

install-elisp RET https://gist.github.com/sanryuu/7809739/raw/d5cb7ef253cc75d58e6cd97d3d99e055e7f87d0c/reference-user-comment.el RET
C-c C-c

設定ファイルに以下の行を追加します。

(require 'reference-user-comment)
(global-set-key "\C-c\C-r" 'ruc-reference-document)

コマンドは、お好みのものに。

使い方

M-x ruc-reference-document
すると、コメントがあった場合にはポップアップで表示します。

今後の課題

実装してみて、考えている課題です。

  • popup-menuを決定せずとも、候補の関数のリファレンスを見られる
  • 変数に対しても定義位置のコメント取得

おわりに

今後は、似たような機能のものが無ければ継続開発していくつもりです。
方針としては、小さい規模の機能でもちょっとずつ実装していきます。
ご意見、ご指摘などがありましたら、気軽に声をかけていただければと思います。