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

FrontPage > liberator(2.0).modules > modes

注意:このコンテンツはまだ書きかけです。コンテンツ中はバージョン1.2へものとなっているもの、存在しないプロパティがある可能性があります。執筆者は募集中です。
関連サイトmodes.jsを読む - vimpめも - vimperatorグループ

liberator.modules.modesオブジェクトは、モードの管理を行うためのメソッドやモードを表す定数(NORMAL, VISUALなど)を持っている。
それぞれのモードにはビット値が割り当てられており、複数のモードの組み合わされている状態を表すことができるようになっている。
また、push()メソッドによるモードの遷移は、以前のモードの情報stack構造によって保持され、pop()などのメソッドによって"ひとつ前のモード"に戻るなどの操作が可能となっている。

Vimperator内部では、モードとは以下のプロパティを持つオブジェクトとして表される。
extended
拡張モードかどうか
mask
モードを表すビットマスク
name
モードを識別するための名称
display
表示用の名称

liberator.modules.modes自身、各種モードのビット値を保持するためのコンテナとなっており、javascriptのコードから以下のようにアクセスすることが可能となっている。
modes["NORMAL"]     // => 1
modes.NORMAL        // => 1



all

全てのモード(のマスク値)を列挙するGetter。

inputMode

現在のモードが"入力モード"であるか判定するGetter。ここでの"入力モード"とは、以下のモードを指している。
  • COMMAND_LINE
  • INPUT
  • TEXTAREA
  • COMPOSE

addMode(name, extended, display)

新たなモードを追加するメソッド。
name(String)
モードの名称
extended(Boolean)
追加するモードが拡張モードであるかどうか。
display(String)
表示用のモード名。

displayを省略した場合は、nameを表示用のモード名として使用する。その場合、"_"(アンダースコア)は" "(空白)に置き換えられる。

getMode(name)

nameに該当するモードオブジェクトを返す。

show()

現在のモードを表す文字列をコマンドラインに表示する。(..はずだが、一部のモードしか表示しないようになっているのが謎)

add(mode)

拡張モードを適用するメソッド。
mode
適用する拡張モードを表すビット値 modes[モード名] あるいは modes.getMode(モード名).mask で取得した値を渡す。

set(mainMode, extendedMode, silent, stack)

新しいモードに遷移するが、stackへの追加は行われない。
Vimperatorの内部的には、push(), pop(), reset()などのメソッドから呼び出されるヘルパ的なメソッド。

push(mainMode, extendedMode, silent)

新しいモードに遷移する。
mainMode
メインモードを表すビット値
extendedMode
拡張モードを表すビット値
silent
モード遷移時にshow()メソッドによるモード名の表示を行うかどうか

pop(silent)

ひとつ前のモードの状態に戻す。
silent(Boolean)
show()メソッドによるモード表示を行うかどうか。

setCustomMode(modestr, oneventfunc, stopfunc)

deprecated
今はもう使われていない。(らしい、コメントによると)

reset(silent)

これまでのモードの遷移を保持しているstackを破棄し、現在のモードをNORMALあるいはCOMPOSEに変更するメソッド。
silent(Boolean)
show()メソッドによるモード名の表示を行うかどうか。

remove(mode)

拡張モードの適用を解除するメソッド。

passNextKey

次のキー操作をwebコンテンツに渡すかどうかを取得/設定するためのGetter/Setter

passAllKeys

以降のキー操作すべてをwebコンテンツに渡すかどうかを取得/設定するためのGetter/setter

isRecording

マクロの記録中であるかどうかを取得/設定するためのGetter/Setter

isReplaying

マクロの再生中であるかどうかを取得/設定するためのGetter/Setter

main

現在のメインモードを取得/設定するためのGetter/Setter

extended

現在の拡張モードを取得/設定するためのGetter/Setter

NONE

メインモード
モード未設定状態(?)

NORMAL

メインモード
通常のモード

INSERT

メインモード
textboxなどに入力中の状態。

VISUAL

メインモード
選択中の状態

COMMAND_LINE

メインモード
コマンドラインに入力中の状態

CARET

メインモード
キャレットブラウズモード

TEXTAREA

メインモード
textareaに入力中の状態。

MESSAGE

メインモード。Muttator用

COMPOSE

メインモード
ページを編集中の状態?

CUSTOM

メインモード
plugin等で追加されたカスタムなモード(?)

EX

拡張モード

HINTS

拡張モード

INPUT_MULTILINE

拡張モード

OUTPUT_MULTILINE

拡張モード

SEARCH_FORWARD

拡張モード

SEARCH_BACKWARD

拡張モード

MENU

拡張モード

LINE

拡張モード

PROMPT

拡張モード

コメントをかく


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

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

Wiki内検索

メニューバー






どなたでも編集できます