call method

Future call(
  1. String method, {
  2. List? args,
})

Implementation

Future<dynamic> call(String method, {List<dynamic>? args}) {
  final reqId = _nextReqId;
  _nextReqId++;

  final cmd = [
    0,
    reqId,
    method,
    if (args != null) args else [],
  ];

  if (isChild) {
    stdout.add(mpack.serialize(cmd, extEncoder: ExtTypeEncoder()));
  } else {
    _nvimTxPort!.send(mpack.serialize(cmd, extEncoder: ExtTypeEncoder()));
  }

  _waiting[reqId] = Completer();
  return _waiting[reqId]!.future;
}