読者です 読者をやめる 読者になる 読者になる

auto-complete-nxml.elをアップデートしました

Elisp Emacs auto-complete.el

最新バージョンは0.3です。
auto-complete-nxml.elについては過去エントリを参照して下さい。
ソース置き場:https://github.com/aki2o/auto-complete-nxml

変更点

  • バグいろいろ
  • タグ内のテキストでも補完
  • タグや属性のヘルプを表示

タグ内のテキストでも補完

タグ内のテキストについては、anything-project.elを利用したりして、 別のファイルやバッファから補完候補を生成していましたが、 スキーマによってはタグ内のテキスト(要素の値)についても選択肢が定義されてる場合があります。

ということを、今更ながら知った訳ですが、何故かnXML-modeでは補完できません。
でも、間違った値を入力していると、ちゃんとエラーが表示されます。
んじゃあ、入力の時点で正しい候補を出したいよねってことで、 選択肢が定義されている場合は、それを候補に表示するようにしました。

f:id:aki2o:20130411064314p:plain

選択肢が定義されていないタグの場合の挙動は今までと変わりません。

タグや属性のヘルプを表示

コンテキストに合わせて補完ができるようになりましたが、 実際使ってみると、そのスキーマの定義についてよく知らない場合、 タグや属性が候補に表示されても、どういう時に使うか、どんな値を入力すれば良いか、 などは当然わかりません。

なので、それらのヘルプを表示したいなぁと実装当初から思っていましたが、 幾つか公開されているスキーマを見てみると、 コメントやアノテーションでドキュメントが埋め込まれていたりしました。

という訳で、それらをヘルプとして表示するようにしました。 auto-complete.elを使われてる方はご存知だと思いますが、候補の横にポップアップ表示されます。 また、ポイントしているタグや属性について、ヘルプをポップアップする関数を用意しました。

以下のようにキーストロークを設定することで使用可能です。

(setq auto-complete-nxml-popup-help-key "C-:")

※ただ、ヘルプとしては内容が不十分な感じなので、別のドキュメント(Webページとか)から 該当する情報を抜き出して表示したいなぁと思っています。

設定サンプル

以下に本拡張を利用する場合の現状の設定のサンプルを載せておきます。

(require 'auto-complete-nxml)
(setq auto-complete-nxml-popup-help-key "C-:")

Enjoy!!!