vimperator plugin dev tips
昨日 ( http://d.hatena.ne.jp/janus_wel/20080618#1214594620 ) の涙ぐましい努力の結果わかったことをとりあえずまとめとく。基本的なプロパティ・メソッドやデバッグ時に有効なもの etc 。
liberator.buffer.URL
カレントタブの URL が入ってる。なんでかわからないけど ( vimperator が Firefox のラッパーみたいなのだからじゃないかな、たぶん ) window.document.location を参照しても 'chrome://browser/content/browser.xul' とかわけのわからないことをのたまうのでこれ必須。
liberator.buffer は他にもいろんなことがわかるのでてけとーに覗いてみると視野も広がる感じ。
liberator.echo(str, flags)
コマンドラインの部分に str を表示。 flags は以下の定数 (?) を確認。
- liberator.commandline.FORCE_MULTILINE
- liberator.commandline.FORCE_SINGLELINE
- liberator.commandline.DISALLOW_MULTILINE
- liberator.commandline.APPEND_TO_MESSAGES
何か処理が成功したらこれで「成功したよ !!」って表示するといいかも。はいコマンドラインにうちこんでー。
:js liberator.echo('成功したよ !!');
ちなみにコマンドラインだと ':echo' が同値だけど plugin 書くときは上の書き方じゃないとダメっていうかまぁ ' :echo ' は javascript がわかるコマンドじゃないしね。
liberator.echoerr(str, flags)
コマンドラインの部分に str を赤地に白文字で表示。 flags は liberator.echo() と変わらない。失敗したらこれで「失敗したよ !!」って表示するといいよ。はいどうぞ。
:js liberator.echoerr('失敗したよ !!');
liberator.util.copyToClipboard(str, verbose)
str をクリップボードにコピーする。 verbose は真偽値で true にすると str の頭に "Yanked " をくっつけた文字列をコマンドラインに表示する。意外にデバッグとかにも使えちゃう。
:js liberator.util.copyToClipboard('ゆっくりしていってね !!', true);
liberator.log(msg, level)
エラーコンソール (
:js liberator.log('ゆっくりした結果がこれだよ !!');
liberator.commands.addUserCommand(names, description, action, extra, replace)
ユーザ定義のコマンドを追加する。 names がコマンド名、 description が説明。 names はリストで "['yukkuri', 'yu']" みたいに複数指定可能。 action は後回しで extra は
action には呼ばれた時の挙動を記述した関数をおいとくみたい。コマンドが ":usercommand foo" みたいに呼ばれた場合、関数内では 'foo' が第一引数に入る。 "function(arg){ /* processing */ }" とか定義すると arg に入るってことね。
:js <<EOF liberator.commands.addUserCommand(['yukkuri'], 'ゆっくりしていってね !!', function(arg){ liberator.echo('ゆっくりしていってね !!'); } ); EOF