クラス Buffer

階層

  • BaseApi
    • Buffer

コンストラクタ

プロパティ

_isReady: Promise<boolean> = ...
client: any
data?: number | Buffer
logger: Logger
prefix: string = ...
transport: Transport
captureRejectionSymbol: typeof captureRejectionSymbol
captureRejections: boolean

すべてのエミッターのデフォルトの captureRejection 値を設定または取得します。

defaultMaxListeners: number
errorMonitor: typeof errorMonitor

このシンボルは、'error'イベントのみを監視するためのリスナーをインストールするために使用されます。このシンボルを使用してインストールされたリスナーは、通常の'error'リスナーが呼び出される前に呼び出されます。

このシンボルを使用してリスナーをインストールしても、'error'イベントが発行された後の動作は変更されないため、通常の'error'リスナーがインストールされていない場合、プロセスはクラッシュします。

アクセサ

  • get loaded(): Promise<boolean>
  • バッファが有効でロードされているかを確認します。ロードされていないバッファの詳細については、|api-buffer| を参照してください。

    戻り値: Promise<boolean>

メソッド

  • バッファにアタッチして、バッファイベントをリッスンします

    パラメータ

    • sendBuffer: boolean = false

      最初の通知にバッファ全体を含める場合はtrueに設定します。その場合、最初の通知はnvim_buf_lines_eventになります。それ以外の場合、最初の通知はnvim_buf_changedtick_eventになります

    • options: {} = {}

      戻り値: Promise<boolean>

    • バッファからデタッチして、バッファイベントのリスニングを停止します

      戻り値:Promise<any>

    • パラメータ

      • name: string
      • args: any[] = []

      戻り値:Promise<any>

    • バッファにハイライトを追加します。

      セマンティックハイライターやリンターのように、バッファに動的にハイライトを生成するプラグインに役立ちます。この関数は、バッファに単一のハイライトを追加します。|matchaddpos()|とは異なり、ハイライトは、(ハイライトされた行の上に線が挿入/削除されると)行番号の変更に従い、サインやマークと同じように動作します。

      名前空間は、一連のハイライトの一括削除/更新に使用されます。名前空間を作成するには、名前空間IDを返す|nvim_create_namespace|を使用します。この関数のns_idとして渡して、名前空間にハイライトを追加します。同じ名前空間内のすべてのハイライトは、|nvim_buf_clear_namespace|への単一の呼び出しでクリアできます。ハイライトがAPI呼び出しによって削除されない場合は、ns_id = -1を渡します。

      簡略化のために、ns_id = 0を使用してハイライトの新しい名前空間を作成できます。割り当てられたIDが返されます。hl_groupが空の文字列の場合、ハイライトは追加されませんが、新しいns_idが返されます。これは後方互換性のためにサポートされています。新しいコードでは、|nvim_create_namespace|を使用して新しい空の名前空間を作成する必要があります。

      パラメータ

      • __namedParameters: BufferHighlight

      戻り値: Promise<number>

    • emitter.on(eventName, listener)のエイリアスです。

      パラメータ

      • eventName: string | symbol
      • listener: ((...args: any[]) => void)
          • (...args): void
          • パラメータ

            • Rest...args: any[]

            戻り値: void

      戻り値:this

      v0.1.26

    • 文字列または行のリストをバッファの末尾に追加します

      パラメータ

      • lines: string | string[]

      戻り値:Promise<any>

    • パラメータ

      • name: string
      • args: any[] = []

      戻り値:Promise<any>

    • 指定された行範囲から、名前空間付きのオブジェクト、ハイライト、仮想テキストをクリアします

      バッファ全体の名前空間をクリアするには、line_startとline_endにそれぞれ0と-1を渡します。

      パラメータ

      • args: BufferClearNamespace

      戻り値: void

    • スコープ付き変数を削除します

      パラメータ

      • name: string

      戻り値:Promise<void>

    • 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

      パラメータ

      • eventName: string | symbol
      • Rest...args: any[]

      戻り値: boolean

      v0.1.26

    • エミッターがリスナーを登録しているイベントをリストアップした配列を返します。配列の値は文字列または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) ]

      戻り値: (string | symbol)[]

      v6.0.0

    • バッファーローカルの |mapping| 定義のリストを取得します。

      パラメータ

      • mode: string

      戻り値: Promise<object[]>

    • バッファーの特定の行を取得します

      パラメータ

      • __namedParameters: {
            end: number;
            start: number;
            strictIndexing: boolean;
        } = ...
        • end: number
        • start: number
        • strictIndexing: boolean

      戻り値: Promise<string[]>

    • EventEmitterの現在の最大リスナー数を返します。これは、emitter.setMaxListeners(n)によって設定されるか、デフォルトではdefaultMaxListenersになります。

      戻り値: number

      v1.0.0

    • 行のバイトオフセットを返します。

      1行目(index=0)のオフセットは0です。UTF-8バイト数がカウントされます。EOLは1バイトです。「fileformat」と「fileencoding」は無視されます。最終行のすぐ後の行インデックスは、バッファーの合計バイト数を表します。最後にEOLバイトが書き込まれる場合は、それもカウントされます(「eol」を参照)。

      |line2byte()| とは異なり、範囲外のインデックスに対してはエラーをスローします。アンロードされたバッファーの場合は-1を返します。

      パラメータ

      • index: number

      戻り値: Promise<number>

      整数のバイトオフセット。アンロードされたバッファーの場合は-1。

    • thisの型に応じて、スコープ付きオプションを取得します。

      パラメータ

      • name: string

      戻り値: void | Promise<VimValue>

    • 型に応じて、スコープ付き変数(this.prefixを使用)を取得します。

      パラメータ

      • name: string

      戻り値: Promise<VimValue>

    • startインデックスに行を挿入します

      パラメータ

      • lines: string | string[]
      • start: number

      戻り値:Promise<any>

    • バッファーのイベントをリッスンします

      パラメータ

      • eventName: string
      • cb: Function

      戻り値: Function

    • eventName という名前のイベントをリッスンしているリスナーの数を返します。

      パラメータ

      • eventName: string | symbol

        リッスンしているイベントの名前

      戻り値: number

      v3.2.0

    • eventName という名前のイベントに対するリスナーの配列のコピーを返します。

      server.on('connection', (stream) => {
      console.log('someone connected!');
      });
      console.log(util.inspect(server.listeners('connection')));
      // Prints: [ [Function] ]

      パラメータ

      • eventName: string | symbol

      Function[] を返します。

      v0.1.26

    • マーク名が与えられたマークの位置を取得します。

      パラメータ

      • name: string

      Promise<[number, number]> を返します。

    • request は基本的には同じですが、Promise が解決されるまで待機するかどうかを選択できます。

      パラメータ

      • name: string
      • args: any[]

      戻り値: void

    • emitter.removeListener() のエイリアスです。

      パラメータ

      • eventName: string | symbol
      • listener: ((...args: any[]) => void)
          • (...args): void
          • パラメータ

            • Rest...args: any[]

            戻り値: void

      戻り値:this

      v10.0.0

    • listener 関数を、eventName という名前のイベントに対するリスナー配列の末尾に追加します。listener がすでに登録されているかどうかのチェックは行われません。同じ eventNamelistener の組み合わせを渡して複数回呼び出すと、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

      パラメータ

      • eventName: string | symbol

        イベントの名前。

      • listener: ((...args: any[]) => void)

        コールバック関数

          • (...args): void
          • パラメータ

            • Rest...args: any[]

            戻り値: void

      戻り値:this

      v0.1.101

    • eventName という名前のイベントに対して、1回限り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

      パラメータ

      • eventName: string | symbol

        イベントの名前。

      • listener: ((...args: any[]) => void)

        コールバック関数

          • (...args): void
          • パラメータ

            • Rest...args: any[]

            戻り値: void

      戻り値:this

      v0.3.0

    • listener 関数を、eventName という名前のイベントに対するリスナー配列の先頭に追加します。listener がすでに登録されているかどうかのチェックは行われません。同じ eventNamelistener の組み合わせを渡して複数回呼び出すと、listener は複数回追加され、複数回呼び出されます。

      server.prependListener('connection', (stream) => {
      console.log('someone connected!');
      });

      EventEmitter への参照を返すため、呼び出しをチェーンできます。

      パラメータ

      • eventName: string | symbol

        イベントの名前。

      • listener: ((...args: any[]) => void)

        コールバック関数

          • (...args): void
          • パラメータ

            • Rest...args: any[]

            戻り値: void

      戻り値:this

      v6.0.0

    • eventName という名前のイベントに対して、リスナー配列の_先頭_に、1回限りlistener 関数を追加します。次回 eventName がトリガーされると、このリスナーは削除されてから呼び出されます。

      server.prependOnceListener('connection', (stream) => {
      console.log('Ah, we have our first user!');
      });

      EventEmitter への参照を返すため、呼び出しをチェーンできます。

      パラメータ

      • eventName: string | symbol

        イベントの名前。

      • listener: ((...args: any[]) => void)

        コールバック関数

          • (...args): void
          • パラメータ

            • Rest...args: any[]

            戻り値: void

      戻り値:this

      v6.0.0

    • 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');

      パラメータ

      • eventName: string | symbol

      Function[] を返します。

      v9.4.0

    • インデックスにある行を削除します。

      パラメータ

      • start: number
      • end: number
      • strictIndexing: boolean

      戻り値:Promise<any>

    • すべてのリスナー、または指定された eventName のリスナーを削除します。

      特に、EventEmitter インスタンスが他のコンポーネントまたはモジュール (ソケットやファイルストリームなど) によって作成された場合、コードの他の場所で追加されたリスナーを削除するのは悪い習慣です。

      EventEmitter への参照を返すため、呼び出しをチェーンできます。

      パラメータ

      • Optionalevent: string | symbol

      戻り値:this

      v0.1.26

    • eventName という名前のイベントのリスナー配列から、指定された listener を削除します。

      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 への参照を返すため、呼び出しをチェーンできます。

      パラメータ

      • eventName: string | symbol
      • listener: ((...args: any[]) => void)
          • (...args): void
          • パラメータ

            • Rest...args: any[]

            戻り値: void

      戻り値:this

    • 与えられたemitterに登録されている、与えられたeventNameのリスナー数を返すクラスメソッドです。

      const { EventEmitter, listenerCount } = require('events');
      const myEmitter = new EventEmitter();
      myEmitter.on('event', () => {});
      myEmitter.on('event', () => {});
      console.log(listenerCount(myEmitter, 'event'));
      // Prints: 2

      パラメータ

      • emitter: EventEmitter

        問い合わせるエミッター

      • eventName: string | symbol

        イベント名

      戻り値: number

      v0.9.12

      v3.2.0以降 - 代わりにlistenerCountを使用してください。

    • const { 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());

      パラメータ

      • emitter: EventEmitter
      • eventName: string

        リッスンしているイベントの名前

      • Optionaloptions: StaticEventEmitterOptions

      emitterによって発行されたeventNameイベントをイテレートするAsyncIterableIterator<any>を返します。

      emitterによって発行されたeventNameイベントをイテレートする

      v13.6.0, v12.16.0

    • EventEmitterが指定されたイベントを発行したときにfulfilledとなるPromiseを作成します。または、待機中にEventEmitter'error'を発行した場合はrejectedとなります。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!

      パラメータ

      • emitter: NodeEventTarget
      • eventName: string | symbol
      • Optionaloptions: StaticEventEmitterOptions

      Promise<any[]>を返します。

      v11.13.0, v10.16.0

    • パラメータ

      • emitter: DOMEventTarget
      • eventName: string
      • Optionaloptions: StaticEventEmitterOptions

      Promise<any[]>を返します。