Perlでオムニ補完を実現するPlSenseを作りました
これは何?
今までEmacsでPerlをコーディングする時は、perl-completion.elを使わせて頂いていました。
perl-completion.elでは、バッファ内で定義されたインスタンスであれば、適切なメソッド補完ができます。
しかし、下記リンクの記事で書かれている通り、コンテキストの特定に力を入れている訳ではないので、オムニ補完という点では不十分なものでした。
また、auto-complete.elのインタフェースよりも、anything.elのインタフェースがメインな作りになっていて、私としてはauto-complete.elのインタフェースをメインにコーディングをしたいと思っていました。
そこで、もっと高精度な補完やヘルプ参照を提供するPerlモジュールと、その機能をauto-complete.elベースで利用することができるplsense.elを作りました。
特徴
コンテキストに合わせた補完候補の表示
ポイントしているコンテキストが利用しているソースファイルを解析し、適切な補完候補を割り出します。
コンテキストの特定は、メソッドの引数/戻り値、配列/ハッシュ/リファレンス要素があっても可能です。
特定できるコンテキストには以下があります。
- 変数
- インスタンスメソッド
- クラスのイニシャライザ
- use/requireモジュール
- use/requireするモジュールに渡すLIST要素
- ハッシュキー
ヘルプ表示
表示された補完候補やポイントしている要素についてのヘルプを、ポップアップ表示したり別ウィンドウに表示したりできます。
対象が変数やメソッドの場合は、PerlDocから該当箇所を抜き出します。
メソッド情報表示
eldoc.elを用いて、ポイントしているメソッド情報をミニバッファに表示します。
デモ
インストール/設定
以下をインストールする必要があります。
- PlSense
- plsense.el
PlSense
ソース置き場: https://github.com/aki2o/plsense
Perlモジュールです。
設計思想に関してRSenseに影響を受けています。
インストール/設定については以下を参照して下さい。
https://github.com/aki2o/plsense/blob/master/README-ja.md
plsense.el
ソース置き場: https://github.com/aki2o/emacs-plsense
インストール/設定/使い方については以下を参照して下さい。
https://github.com/aki2o/emacs-plsense/blob/master/README-ja.md
その他
Enjoy!!!