liberator オブジェクト

vimperator プラグインを書いていて、というか読んでいて不思議に思うことは liberator オブジェクトって何 ? ってことなんだけどあんまり情報がないっていうか liberator だと他の事象がたくさんあるのでなかなか思うような情報にたどり着けない。んで仕方なく "javascript プロパティ一覧" でググって出てきた方法で "js for(var i in liberator) alert(typeof(i) + "\n" + i);" とかやるんだけど全然わかんない。わかんない上にいっぱいあってウザイ。

で、本家になんかドキュメントねーのかなとは思ったんだけど wiki ( http://vimperator.cutup.org/index.php?title=Main_Page ) にはまとまった情報はないみたいだしメーリングリストの過去ログ ( http://www.mozdev.org/pipermail/vimperator/ http://dir.gmane.org/gmane.comp.mozilla.firefox.vimperator ) あさってみても解説っぽいものはないみたい。

となるとソースにあたるしかないわけなので CVS リポジトリの web インターフェイス ( http://www.mozdev.org/source/browse/vimperator/ ) で読みふける。大体 http://www.mozdev.org/source/browse/vimperator/src/content/

  • liberator.js
  • util.js
  • modes.js
  • commands.js
  • event.js

あたりを読んでやっといろいろわかった。 javascript をはじめてすぐでも読めるくらいのソースなので勉強にもちょうどいい感じ。まぁ一番参考になるのは実際に自分で使ってる plugin のソースなわけなんだけど ( direct_bookmark.js や copy.js がやさしめなうえにいろいろなことがわかって面白い ) 。

というおれの軌跡をまとめたハナシだったんだけど 1.2 系で追加された ":set wildoptions=auto" をやってから ":js liberator." とか打つとプロパティもメソッドも全部出てくる。ちっ。まぁソース読むのはいいことだよ。 Firefox の仕組みもぼんやりとわかるし add-on 開発の参考にもなる。