Protected
_isProtected
clientOptional
dataProtected
prefixProtected
transportStatic
Readonly
captureStatic
captureすべてのエミッターのデフォルトの captureRejection 値を設定または取得します。
Static
defaultStatic
Readonly
errorこのシンボルは、'error'
イベントのみを監視するためのリスナーをインストールするために使用します。このシンボルを使用してインストールされたリスナーは、通常の 'error'
リスナーが呼び出される前に呼び出されます。
このシンボルを使用してリスナーをインストールしても、'error'
イベントが発行された後の動作は変更されないため、通常の 'error'
リスナーがインストールされていない場合は、プロセスは依然としてクラッシュします。
nvim API 情報を取得します
現在のバッファーを取得します
バッファーハンドル
現在のバッファーを設定します
すべての開いているチャネルに関する情報を取得します
チャネルの配列
定義された色のマップを取得します
カラーマップ
バッファーローカルの |user-commands| のマップを取得します。
グローバルな作業ディレクトリを変更します
ディレクトリパス
現在の行を取得します。
現在の行の文字列
現在の行を設定します。
行の内容
現在のモードを取得します。|mode()| Nvimが入力を待機している場合、"blocking"はtrueになります。
モード情報
getNamespaces()
のエイリアス
"runtimepath"に含まれるパスを取得します。
パスのリスト
ウィンドウのタブページを取得します。
ウィンドウを含むタブページ
現在のタブページを設定します。
アタッチされたUIを表す辞書のリストを取得します。
UI辞書の配列。各辞書には次のキーがあります。 "height": UIの要求された高さ "width": UIの要求された幅 "rgb": UIがrgbカラーを使用するかどうか (falseはctermカラーを意味します) "ext_...": 要求されたUI拡張機能、|ui-options|を参照 "chan": リモートUIのチャンネルID (TUIには存在しません)
現在のウィンドウを取得します。
ウィンドウハンドル
現在のウィンドウを設定します。
ウィンドウハンドル
多数のAPIメソッドをアトミックに呼び出します。
これには主に2つの用途があります。
非同期コンテキストから複数のリクエストをアトミックに実行するため。つまり、他のクライアントからの再描画、RPCリクエスト、またはユーザーインタラクションを挟まずに実行します(ただし、APIメソッドは、|:sleep|がタイマーを起動するなどの副作用がある自動コマンドまたはイベント処理をトリガーする場合があります)。
多数のリクエストのシーケンスのRPCオーバーヘッド(ラウンドトリップ)を最小限に抑えるため。
新しい名前空間を作成するか、既存の名前空間を取得します。
名前空間は、バッファのハイライトと仮想テキストに使用されます。|nvim_buf_add_highlight()| および |nvim_buf_set_virtual_text()| を参照してください。
名前空間は、名前付きまたは匿名にできます。name
が既存の名前空間と一致する場合、関連付けられたIDが返されます。name
が空の文字列の場合、新しい匿名の名前空間が作成されます。
名前空間名または空の文字列
名前空間ID
指定されたeventName
のイベントに登録された各リスナーを、登録された順に同期的に呼び出し、各リスナーに指定された引数を渡します。
イベントにリスナーがあった場合はtrue
を、それ以外の場合はfalse
を返します。
const EventEmitter = require('events');
const myEmitter = new EventEmitter();
// First listener
myEmitter.on('event', function firstListener() {
console.log('Helloooo! first listener');
});
// Second listener
myEmitter.on('event', function secondListener(arg1, arg2) {
console.log(`event with parameters ${arg1}, ${arg2} in second listener`);
});
// Third listener
myEmitter.on('event', function thirdListener(...args) {
const parameters = args.join(', ');
console.log(`event with parameters ${parameters} in third listener`);
});
console.log(myEmitter.listeners('event'));
myEmitter.emit('event', 1, 2, 3, 4, 5);
// Prints:
// [
// [Function: firstListener],
// [Function: secondListener],
// [Function: thirdListener]
// ]
// Helloooo! first listener
// event with parameters 1, 2 in second listener
// event with parameters 1, 2, 3, 4, 5 in third listener
Rest
...args: any[]エミッターがリスナーを登録したイベントを一覧表示する配列を返します。配列の値は文字列またはSymbol
です。
const EventEmitter = require('events');
const myEE = new EventEmitter();
myEE.on('foo', () => {});
myEE.on('bar', () => {});
const sym = Symbol('symbol');
myEE.on(sym, () => {});
console.log(myEE.eventNames());
// Prints: [ 'foo', 'bar', Symbol(symbol) ]
EventEmitter
の現在の最大リスナー値を返します。これはemitter.setMaxListeners(n)
で設定された値か、デフォルトのdefaultMaxListenersの値です。
生のユーザー入力をキューに入れます。|nvim_feedkeys()|とは異なり、これは低レベルの入力バッファを使用し、呼び出しはノンブロッキングです(入力はイベントループによって非同期に処理されます)。
実行エラーの場合:失敗しませんが、v:errmsgを更新します。
注意: |keycodes|のような
注意: マウスイベントには|nvim_input_mouse()|を使用してください。疑似キー形式の"
入力するキー
GUIからマウスイベントを送信します。
呼び出しはノンブロッキングです。結果として生じるアクションを待機しませんが、イベントがイベントループで間もなく処理されるようにキューに入れます。
注意: 現在、これはループ内で複数回呼び出すことによって複数のマウスイベントを「スクリプト化」することをサポートしていません。中間のマウス位置は無視されます。GUIでリアルタイムのマウス入力を実装するために使用する必要があります。非推奨の疑似キー形式("
マウスボタン: "left", "right", "middle", "wheel" のいずれか。
通常のボタンの場合、"press", "drag", "release" のいずれか。ホイールの場合、"up", "down", "left", "right" のいずれか。
各修飾キーを1文字で表した修飾キーの文字列。キー押下時と同じ指定子を使用しますが、"-" 区切り文字はオプションであり、"C-A-"、"c-a"、"CA" のすべてが Ctrl+Alt+クリックを指定するために使用できます。
クライアントが |ui-multigrid| を使用する場合はグリッド番号、それ以外の場合は 0。
マウスの行位置 (再描画イベントと同様に 0 ベース)
マウスの列位置 (再描画イベントと同様に 0 ベース)
eventName
という名前のイベントのリスナー配列の末尾に listener
関数を追加します。listener
が既に追加されているかどうかは確認されません。同じ eventName
と listener
の組み合わせを渡す複数の呼び出しは、listener
が複数回追加され、呼び出されることになります。
server.on('connection', (stream) => {
console.log('someone connected!');
});
呼び出しをチェーンできるように、EventEmitter
への参照を返します。
デフォルトでは、イベントリスナーは追加された順に呼び出されます。リスナー配列の先頭にイベントリスナーを追加する代替として emitter.prependListener()
メソッドを使用できます。
const myEE = new EventEmitter();
myEE.on('foo', () => console.log('a'));
myEE.prependListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
イベントの名前。
コールバック関数
Rest
...args: any[]eventName
という名前のイベントに対して、一度だけ listener
関数を追加します。次回 eventName
がトリガーされると、このリスナーは削除されてから呼び出されます。
server.once('connection', (stream) => {
console.log('Ah, we have our first user!');
});
呼び出しをチェーンできるように、EventEmitter
への参照を返します。
デフォルトでは、イベントリスナーは追加された順に呼び出されます。リスナー配列の先頭にイベントリスナーを追加する代替として emitter.prependOnceListener()
メソッドを使用できます。
const myEE = new EventEmitter();
myEE.once('foo', () => console.log('a'));
myEE.prependOnceListener('foo', () => console.log('b'));
myEE.emit('foo');
// Prints:
// b
// a
イベントの名前。
コールバック関数
Rest
...args: any[]eventName
という名前のイベントのリスナー配列の先頭に listener
関数を追加します。listener
が既に追加されているかどうかは確認されません。同じ eventName
と listener
の組み合わせを渡す複数の呼び出しは、listener
が複数回追加され、呼び出されることになります。
server.prependListener('connection', (stream) => {
console.log('someone connected!');
});
呼び出しをチェーンできるように、EventEmitter
への参照を返します。
イベントの名前。
コールバック関数
Rest
...args: any[]eventName
という名前のイベントに対して、1回のみ実行される listener
関数をリスナー配列の_先頭_に追加します。次に eventName
がトリガーされたとき、このリスナーは削除され、その後呼び出されます。
server.prependOnceListener('connection', (stream) => {
console.log('Ah, we have our first user!');
});
呼び出しをチェーンできるように、EventEmitter
への参照を返します。
イベントの名前。
コールバック関数
Rest
...args: any[]eventName
という名前のイベントのリスナー配列のコピーを、.once()
で作成されたラッパーも含めて返します。
const emitter = new EventEmitter();
emitter.once('log', () => console.log('log once'));
// Returns a new Array with a function `onceWrapper` which has a property
// `listener` which contains the original listener bound above
const listeners = emitter.rawListeners('log');
const logFnWrapper = listeners[0];
// Logs "log once" to the console and does not unbind the `once` event
logFnWrapper.listener();
// Logs "log once" to the console and removes the listener
logFnWrapper();
emitter.on('log', () => console.log('log persistently'));
// Will return a new Array with a single function bound by `.on()` above
const newListeners = emitter.rawListeners('log');
// Logs "log persistently" twice
newListeners[0]();
emitter.emit('log');
指定された listener
を、eventName
という名前のイベントのリスナー配列から削除します。
const callback = (stream) => {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
removeListener()
は、リスナー配列から最大で1つのリスナーインスタンスを削除します。単一のリスナーが、指定された eventName
のリスナー配列に複数回追加されている場合、各インスタンスを削除するには、removeListener()
を複数回呼び出す必要があります。
イベントが発行されると、発行時にアタッチされているすべてのリスナーが順番に呼び出されます。これは、発行_後_、最後のリスナーの実行が完了する_前_の removeListener()
または removeAllListeners()
の呼び出しは、進行中の emit()
からリスナーを削除しないことを意味します。後続のイベントは期待どおりに動作します。
const myEmitter = new MyEmitter();
const callbackA = () => {
console.log('A');
myEmitter.removeListener('event', callbackB);
};
const callbackB = () => {
console.log('B');
};
myEmitter.on('event', callbackA);
myEmitter.on('event', callbackB);
// callbackA removes listener callbackB but it will still be called.
// Internal listener array at time of emit [callbackA, callbackB]
myEmitter.emit('event');
// Prints:
// A
// B
// callbackB is now removed.
// Internal listener array [callbackA]
myEmitter.emit('event');
// Prints:
// A
リスナーは内部配列を使用して管理されているため、これを呼び出すと、削除されるリスナー_後_に登録されたリスナーの位置インデックスが変更されます。これは、リスナーが呼び出される順序には影響しませんが、emitter.listeners()
メソッドによって返されるリスナー配列のコピーを再作成する必要があることを意味します。
単一の関数が、単一のイベントに対して複数回ハンドラーとして追加されている場合(下の例のように)、removeListener()
は最も最近追加されたインスタンスを削除します。例では、once('ping')
リスナーが削除されます。
const ee = new EventEmitter();
function pong() {
console.log('pong');
}
ee.on('ping', pong);
ee.once('ping', pong);
ee.removeListener('ping', pong);
ee.emit('ping');
ee.emit('ping');
呼び出しをチェーンできるように、EventEmitter
への参照を返します。
Rest
...args: any[]文字列内のターミナルコードと |keycodes| (
変換する文字列。
レガシー Vim パラメーター。通常は true。
も翻訳します。special
が false の場合は無視されます。
|keycodes| を置き換えます。例:
補完ポップアップメニュー内の項目を選択します。
|ins-completion| がアクティブでない場合、このAPI呼び出しは暗黙的に無視されます。マウスでポップアップメニューを制御するために |ui-popupmenu| を使用する外部UIに役立ちます。マッピングでも使用できます。マッピングが補完モードを終了しないようにするには、
選択する項目のインデックス(ゼロベース)。値-1は何も選択せず、元のテキストを復元します。
選択をバッファーに挿入するかどうか。
補完を終了し、ポップアップメニューを閉じます。insert
を暗黙的に示します。
オプションのパラメーター。将来の使用のために予約されています。
現在のウィンドウを設定します。
ウィンドウハンドル
winClose
の公開エイリアス
winConfig
の公開エイリアス
Static
geteventName
という名前のイベントのリスナーの配列のコピーを返します。
EventEmitter
の場合、これはエミッターで .listeners
を呼び出すのと同じ動作をします。
EventTarget
の場合、これがイベントターゲットのイベントリスナーを取得する唯一の方法です。これは、デバッグおよび診断の目的に役立ちます。
const { getEventListeners, EventEmitter } = require('events');
{
const ee = new EventEmitter();
const listener = () => console.log('Events are fun');
ee.on('foo', listener);
getEventListeners(ee, 'foo'); // [listener]
}
{
const et = new EventTarget();
const listener = () => console.log('Events are fun');
et.addEventListener('foo', listener);
getEventListeners(et, 'foo'); // [listener]
}
Static
listener指定された emitter
に登録されている、指定された eventName
のリスナーの数を返すクラスメソッド。
const { EventEmitter, listenerCount } = require('events');
const myEmitter = new EventEmitter();
myEmitter.on('event', () => {});
myEmitter.on('event', () => {});
console.log(listenerCount(myEmitter, 'event'));
// Prints: 2
クエリ対象のエミッター
イベント名
Static
onconst { on, EventEmitter } = require('events');
(async () => {
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo')) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
eventName
イベントを反復処理する AsyncIterator
を返します。 EventEmitter
が 'error'
を発行すると、スローされます。ループを終了するときに、すべてのリスナーを削除します。各イテレーションで返される value
は、発行されたイベント引数で構成される配列です。
AbortSignal
を使用して、イベントの待機をキャンセルできます
const { on, EventEmitter } = require('events');
const ac = new AbortController();
(async () => {
const ee = new EventEmitter();
// Emit later on
process.nextTick(() => {
ee.emit('foo', 'bar');
ee.emit('foo', 42);
});
for await (const event of on(ee, 'foo', { signal: ac.signal })) {
// The execution of this inner block is synchronous and it
// processes one event at a time (even with await). Do not use
// if concurrent execution is required.
console.log(event); // prints ['bar'] [42]
}
// Unreachable here
})();
process.nextTick(() => ac.abort());
リッスンしているイベントの名前
Optional
options: StaticEventEmitterOptionsemitter
によって発行された eventName
イベントを反復処理します
Static
onceEventEmitter
が指定されたイベントを発行したときに履行される、または待機中に EventEmitter
が 'error'
を発行した場合に拒否される Promise
を作成します。Promise
は、指定されたイベントに発行されたすべての引数の配列で解決されます。
このメソッドは意図的に汎用的であり、特別な 'error'
イベントセマンティクスを持たず、'error'
イベントをリッスンしない Web プラットフォームの EventTarget インターフェイスで動作します。
const { once, EventEmitter } = require('events');
async function run() {
const ee = new EventEmitter();
process.nextTick(() => {
ee.emit('myevent', 42);
});
const [value] = await once(ee, 'myevent');
console.log(value);
const err = new Error('kaboom');
process.nextTick(() => {
ee.emit('error', err);
});
try {
await once(ee, 'myevent');
} catch (err) {
console.log('error happened', err);
}
}
run();
'error'
イベントの特別な処理は、events.once()
が別のイベントを待機するために使用される場合にのみ使用されます。 events.once()
が 'error'
イベント自体を待機するために使用される場合、特別な処理なしで他の種類のイベントとして扱われます
const { EventEmitter, once } = require('events');
const ee = new EventEmitter();
once(ee, 'error')
.then(([err]) => console.log('ok', err.message))
.catch((err) => console.log('error', err.message));
ee.emit('error', new Error('boom'));
// Prints: ok boom
AbortSignal
を使用して、イベントの待機をキャンセルできます
const { EventEmitter, once } = require('events');
const ee = new EventEmitter();
const ac = new AbortController();
async function foo(emitter, event, signal) {
try {
await once(emitter, event, { signal });
console.log('event emitted!');
} catch (error) {
if (error.name === 'AbortError') {
console.error('Waiting for the event was canceled!');
} else {
console.error('There was an error', error.message);
}
}
}
foo(ee, 'foo', ac.signal);
ac.abort(); // Abort waiting for the event
ee.emit('foo'); // Prints: Waiting for the event was canceled!
Optional
options: StaticEventEmitterOptionsOptional
options: StaticEventEmitterOptions
Neovim API