Firefox AddonであるVimperatorの解説(主に開発視点)

FrontPage > liberator


mode

liberator.modes.main に対するgetter,setter

CURRENT_TAB

値:1
liberator.open の第2引数に使用されるフラグ
現在バッファ(タブ)へ開く時に用いる

NEW_TAB

値:2
liberator.open の第2引数に使用されるフラグ
新規バッファ(foreground)へ開く時に用いる

NEW_BACKGROUND_TAB

値:3
liberator.open の第2引数に使用されるフラグ
新規バッファ(background)へ開く時に用いる

NEW_WINDOW

値:4
liberator.open の第2引数に使用されるフラグ
新規ウィンドウへ開く時に用いる

forceNewTab

デフォルト:false
tabコマンドで使用され、liberator.openメソッド使用時に強制的にタブに開く様になる。

例えば、abount:config を開くprefs!コマンドは現在バッファに開かれるが、:tab prefs!とすると新規バッファに開けるようになる

version

Vimperatorのバージョン。version (created: date) という書式の文字列

input

以下のメンバを持つオブジェクトで、入力中のmapを一時的に保管するために用いられる
buffer
タイプしたキー文字列(default: "")
pendingMotionMap
motion mapを保管する(liberator.Mapオブジェクト or null)
pendingArgMap
追加の1キーストロークを必要とするmapを保管する(liberator.Mapオブジェクト or null)
count
mapのカウント数を保管するNumberオブジェクト(default: -1)

registerCallback (type, mode, func)

type(String)
登録するcallback関数のタイプ
mode(Number)
モード
func(Function)
発動する関数オブジェクト

triggerCallback (type, mode, data)

type(String)
登録したcallback関数のタイプ
mode(Number)
モード
data
callback関数の第一引数に渡すデータ

beep ()

ビープを鳴らすメソッド(オプションvisualbellがONの時は音は鳴らなず、画面点滅となる)

execute (str, modifiers)

strをVimperatorコマンドとして実行するメソッド
str(String)
コマンド文字列
modifiers(Object)
liberator.Commandオブジェクトのexecuteメソッド実行時に渡される第4引数(滅多に使わないだろう)

focusContent (clearFocusedElement)

<Esc>押下時などNORMALモードに戻るときに良く使われ、Vimperatorではwindow.contentへフォーカスを移すためのメソッド
clearFocusedElement(Boolean)
現在フォーカスされている要素を外すか否かのフラグ

eval (string)

文字列stringのパースに用いられる。また、オプションの値やletで定義した値を得ることも出来る。
JavaScriptのeval関数とは違う点に注意

以下の順序で判別し値を返す
  • オプションにその文字列があるか string.match(/^&(\w+)/)
    • 真偽値や数値でなければオプション値にtoString()したもの
  • 引用符('or")で囲まれている場合は囲まれている文字列 string.match(/^(['"])([^\1]*?[^\\]?)\1/)
  • 数値である場合はparseIntした値 string.match(/^(\d+)$/)
  • let定義したキーワードである場合はその値 liberator.variableReference(string)

variableReference (string)

vimに似せたVimperator変数を返すメソッドであることが想像されるが未完成品。
今現在はg:変数名変数名のグローバルな値しか取ってこれない

echo (str, flags)

コマンドラインバッファに値を出力するメソッド
liberator.commandline.echo メソッドの第2引数をliberator.commandline.HL_NORMALにしたエイリアス的存在
flags には以下の値を複数指定可能
commandline.FORCE_MULTILINE複数行表示。改行指定には "\n" や "<br />" を使う。FORCE_SINGLELINE とともに指定された場合無視されるが DISALLOW_MULTILINE とともに指定されるとこちらが優先される
commandline.FORCE_SINGLELINE1 行表示。 "\n" は空白に、 "<br />" はそのまま表示される。 FORCE_MULTILINE とともに指定された場合こちらが優先される
commandline.DISALLOW_MULTILINE1 行表示かつすでにコマンドラインバッファに何か表示されている場合は何もしない。 FORCE_MULTILINE とともに指定されると無視される
commandline.APPEND_TO_MESSAGES表示と同時に :message で表示可能なメッセージ履歴に加える

各フラグの優先順位は以下の通り
  1. FORCE_SINGLELINE
  2. FORCE_MULTILINE
  3. DISALLOW_MULTILINE

複数指定する場合、 "|" で OR をとって liberator.echo("foo\nbar", commandline.FORCE_MULTILINE | commandline.APPEND_TO_MESSAGES) のように書く
指定なしの場合のデフォルトは FORCE_SINGLELINE

echorr (str, flags)

liberator.echo に似ているが、liberator.commandline.echo の第2引数をliberator.commandline.HL_ERRORMSGにしたエラー出力を目的としたメソッド
flags の指定は echo と同様

has (feature)

liberator.config.features からその機能を持つか否かの真偽値を返すメソッド
feature(String)
機能名
主にThunderbirdのAddonであるMuttatorとの絡みで必要とされる

help (topic)

ヘルプをバッファ(タブ)に出力するメソッド
topic(String)
トピック名
内部的にはちょっと面白い事をしていて、chromeURL内にあるHTMLヘルプファイルに対してXMLHttpRequestでデータをとり、XPathでtopic名のid属性値を探してジャンプする動きをする。

globalVariables

空オブジェクト
ユーザがletコマンド等から定義した値が格納される

loaadModule (name, func)

Vimperator起動時に使用され、各オブジェクトの生成を受け持つ。
name(String)
liberatr.になる名前
func(Function)
呼び出すFunctionオブジェクト
やっていることは
liberator.log("Loading module " + name + "...", 0);
liberator[name] = func();
とあまり面白くないメソッド

log (msg, level)

JavaScriptコンソールへログを出力するメソッド。ただし、実際に出力されるかどうかはlevelとオプションverboseに左右される
msg(Object)
出力するもの。Objectである場合liberator.util.objectToStringで文字列化される。その他の場合は通常のtoStringされた文字列
level(Number)
重大度を示す値。オプションverboseとの絡みで実質0〜9の値に意味が出てくる。0以下が重要度最高
levelがオプションverboseの値以下である場合にコンソールへ出力される

因みにオプションverboseに設定できる値は0〜9の整数値である

open (urls, where)

URLを開く重要メソッド
urls(String)
,(カンマ)+空白区切りのURLのリスト文字列(1.2pre 2008-07-21以降からはオプションurlseparatorに依存)
where(Number)
CURRENT_TAB,NEW_TAB,NEW_BACKGROUND_TAB,NEW_WINDOWの値
urlsがliberator.util.stringToURLArrayにより、URLの配列に変換され、それぞれが開かれる。URL配列の長さが2以上の場合、2個目からはバックグラウンドに開かれる。

plugins

空オブジェクト
プラグインによるVimperator拡張のオブジェクト置き場として使用される。
また、以下のメンバ名はCUSTOMモードを使用するプラグインで予約語的にVimperatorから使用されるので安易に使用しないこと
  • mode
  • stop
  • onEvent
  • customHintMatcher

profileName

現在使用しているプロファイルの名前を取得する

quit (saveSession)

Firefoxを閉じるメソッド
saveSession(Boolean)
セッションを保存するか否か

restart ()

Firefoxを再起動するメソッド

startup ()

Vimperator起動に使用されるメソッド

shutdown ()

Vimperatorを終了するメソッド

sleep (ms)

ms(Number)
スリープするミリ秒数

windows

Firefoxの各Windowオブジェクトを配列で返すgetter

callFunctionInTread (thread, func, args)

主に外部エディタを新たなスレッドで開く時に使用される
タグ

このページへのコメント

新規ページ作成から雛形を選んでページ名を変えればコピーできますので、新たなページでやっちゃってください。ページ名はできればマルチバイトを入れずにASCIIでつけてほしいです。(URLが汚くなるのを防ぎたい)
2.0正式版が出たら、旧版は消しちゃっても良いかなと思います。

0
Posted by teramako 2009年02月19日(木) 21:47:18
http://vimperator.g.hatena.ne.jp/teramako/
返信

ココの内容って基本的に2.0pre向けとみていいのかな?
気が向いたら、実体と合っていないところ(ネームスペースが変わったりしてるところ)とか直したいなーとか思ってますが、このWikiの中で1.2向けの情報と2.0向けの情報をどのように扱っていくのかが見えてないので...

0
Posted by snaka 2009年02月07日(土) 22:16:43 返信

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

メニューバー






どなたでも編集できます