top > イベント リファレンス
萌ディタに対してキー入力、マウス入力、その他を行うと、萌ディタはそれぞれのイベントに対応するスクリプト側のイベントハンドラを呼び出します。
イベントは、スクリプト側で定義した関数オブジェクトのプロトタイプに対して定義します。例えば:
f = class_plaintext.prototype;
f.onInitProp = function (arg, classname, methodname) {
;
}
すべてのハンドラは、常に 3 つの引数 arg、classname、methodname を取ります。このうち、classname、methodname はイベントが発生した拡張子クラス名、呼び出されたイベント名です。arg の内容はイベントごとに異なりますが、基本的にキー入力系のイベントの場合は Shift キー、Ctrl キーの押下状態を示すビットパターン、それ以外のイベントの場合は名前つきコレクションです。
萌ディタ側からのハンドラの呼び出しは、直接ではなく core.javascript.txt に定義された小さい関数 invoke() を経由して行います。この関数は拡張子クラスのツリーを指定のイベントのハンドラが見つかるまで親へ向かってさかのぼり、最初に見つかったものを実行します。そのため、ハンドラの定義は拡張子クラスに必須ではありません。ハンドラを定義しない場合は親のハンドラが実行されます。
このしくみを利用して、親の拡張子クラスで定義したハンドラに処理を追加するには、ハンドラ内で invoke() を呼びます。
f.onKeyPrintable = function (arg, classname, methodname) {
invoke(arg, this.parent, methodname); //親のハンドラ呼び出し
//以降、追加する処理を書く
}
以下はイベントの一覧です。
| onInitProp |
萌ディタが起動し、起動時に読み込まれるスクリプトをすべて評価し終わった後、おのおのの拡張子クラスごとに呼ばれます。 arg は未使用です(0 が渡されます)。 このイベントで拡張子クラスに固有の設定を行います。 |
|---|---|
| onInitApp |
萌ディタが起動し、すべての拡張子クラスの onInitProp イベントが呼ばれた直後に呼ばれます。 arg は未使用です(0 が渡されます)。 onInitProp、onInitApp が呼ばれるタイミングでは、バッファやウィンドウは存在していません。そのため、スクリプトからそれらを参照してはいけません。 |
| onCreate | (仕様未決) |
| onLoad |
バッファが生成され、ファイルがロードされた直後に呼ばれます。*Untitled* バッファでも同様です。 arg はファイル名です。 |
| onSaving |
バッファをファイルへ保存する直前に呼ばれます。 arg は未使用です(0 が渡されます)。 |
| onSave |
バッファをファイルへ保存した直後に呼ばれます。 arg は未使用です(0 が渡されます)。 |
| onDestroy | (仕様未決) |
| onTimer | (仕様未決) |
| onEvaluate |
ウィンドウの 1 行入力バッファにスクリプトが入力されたときに呼ばれます。 arg は入力された文字列です。 |
| onFindRequest |
ウィンドウの 1 行入力バッファに検索文字列が入力された、または検索ダイアログで検索が実行されたときに呼ばれます。 arg は名前つきコレクションです。
|
| onReplaceRequest |
ウィンドウの 1 行入力バッファに検索/置換文字列が入力された、または置換ダイアログで置換が実行されたときに呼ばれます。 arg は名前つきコレクションです。
|
| onKeyPrintable |
表示可能な文字が入力されたときに呼ばれます。 arg は入力された文字列です。 |
| onMultiStroke |
マルチストローク状態のときに表示可能な文字が入力されたときに呼ばれます。マルチストロークの状態は、plaintext 拡張子クラスの '$multi-stroke' プロパティで参照することができます。 arg は入力された文字列です。 |
| onComposition |
IME への入力が確定されたときに呼ばれます。 arg は入力確定された文字列です。 |
| onQuitApp | (仕様未決) |
| onMenuRequest |
メニューが表示される直前に仮想項目を実体化するために呼ばれます。メニュー定義リファレンスも参照してください。 arg は名前つきコレクションです。
|
| onKeyCompleteRequest |
補完開始を要求されたときに呼ばれます。このイベントは、萌ディタ側からではなく、スクリプト側から適当なタイミングで呼ばれます。 arg はスクリプト側の呼び出しに依存します。 |
| onKeyCompletion |
補完中に表示可能ではない文字列が入力されたときに呼ばれます。このイベントで補完リストに対する追加のキーバインドを定義します。 arg は名前つきコレクションです。
このイベントを受信する関数は、値を返す必要があります。値は数値で、core.javascript.txt に定義されています。
var
COMPLETION_NOP = 0,
COMPLETION_CANCEL = 1,
COMPLETION_OK = 2,
COMPLETION_LIST_HOME = 3,
COMPLETION_LIST_END = 4,
COMPLETION_LIST_UP = 5,
COMPLETION_LIST_DOWN = 6,
COMPLETION_LIST_PGUP = 7,
COMPLETION_LIST_PGDN = 8,
COMPLETION_CARET_LEFT = 9,
COMPLETION_CARET_RIGHT = 10,
COMPLETION_CARET_DEL = 11,
COMPLETION_CARET_BS = 12;
|
| onMouseClick |
特定のコントロールがクリックされたときに呼ばれます。 arg は名前つきコレクションです。
|
| onKeyBackspace |
それぞれのキーが押されたときに呼ばれます。 arg は Shift キー、Ctrl キーの状態のビットパターンです。その値は core.javascript.txt に定義されています。
var
KEYMASK_CTRL = 1,
KEYMASK_SHIFT = 2,
KEYMASK_DESCRIPTION = 64,
KEYMASK_REPEAT = 128,
KEYMASK = KEYMASK_CTRL | KEYMASK_SHIFT;
arg の KEYMASK_DESCRIPTION ビットが立っているときは、イベントの概要を求められていることを示します。このときは、エディタとしての動作を一切行わず、概要となる文字列を返す必要があります。 KEYMASK_DESCRIPTION は現在、onKeyF1 〜 onKeyF12 のイベントで有効です。 |
| onKeyTab | |
| onKeyReturn | |
| onKeyEscape | |
| onKeyPageUp | |
| onKeyPageDown | |
| onKeyEnd | |
| onKeyHome | |
| onKeyLeft | |
| onKeyUp | |
| onKeyRight | |
| onKeyDown | |
| onKeyInsert | |
| onKeyDelete | |
| onKeyF1 〜 onKeyF12 | |
| onKeyA 〜 onKeyZ |
それぞれのキーが押されたときに呼ばれます。これらのキーについては、常に Ctrl が押されています(Ctrl が押されていなければ、onKeyPrintable の方が呼ばれるため)。 arg は Shift キー、Ctrl キーの状態のビットパターンです。 |
| onKey0 〜 onKey9 | |
| onKeySpace | |
| onKeyBackquote | |
| onKeyExclamation | |
| onKeyAtmark | |
| onKeyHash | |
| onKeyDoller | |
| onKeyPercent | |
| onKeyCaret | |
| onKeyAmpersand | |
| onKeyAsterisk | |
| onKeyLeftParen | |
| onKeyRightParen | |
| onKeyHyphen | |
| onKeyEqual | |
| onKeyLeftBracket | |
| onKeyRightBracket | |
| onKeyBackslash | |
| onKeySemicoron | |
| onKeySingleQuote | |
| onKeyComma | |
| onKeyPeriod | |
| onKeySlash | |
| onKeyUnderscore | |
| onKeyPlus | |
| onKeyLeftCarlyBrace | |
| onKeyRightCarlyBrace | |
| onKeyVerticalBar | |
| onKeyColon | |
| onKeyDouble | |
| onKeyLessThan | |
| onKeyGreaterThan | |
| onKeyQuestion | |
| onKeyNum0 〜 onKeyNum9 | |
| onKeyMultiply | |
| onKeyAdd | |
| onKeySeparator | |
| onKeySubtract | |
| onKeyDecimal | |
| onKeyDivide | |
| ※アクションのイベントハンドラ | 各アクションが選択されたタイミングでイベントが発生します。イベント名は、'on' + アクション名 + 'Execute' です。アクション リファレンスも参照してください。 |
top > イベント リファレンス