registeredInputTokenLength method

int? registeredInputTokenLength(
  1. String token, {
  2. String? next,
})

Implementation

int? registeredInputTokenLength(String token, {String? next}) {
  int width(InputDefinition input) =>
      next == null || ownsSeparateValue(input, next) ? 2 : 1;
  if (token.startsWith('--')) {
    final name = token.substring(2).split('=').first;
    final input =
        _allValueInputs.where((input) => input.name == name).firstOrNull ??
        _accessorFor(name);
    if (input != null) return token.contains('=') ? 1 : width(input);
    if (applicableFlags.any(
      (flag) =>
          flag.name == name ||
          (flag is BooleanFlag &&
              flag.negatable &&
              name == 'no-${flag.name}'),
    )) {
      return 1;
    }
  }
  if (token.startsWith('-') && token.length > 1) {
    final short = token.substring(1).split('=').first;
    if (token.contains('=')) return 1;
    final input = _allValueInputs
        .where((input) => _shortOf(input) == short)
        .firstOrNull;
    if (input != null) return width(input);
    if (short
        .split('')
        .every(
          (letter) => applicableFlags.any((flag) => _shortOf(flag) == letter),
        )) {
      return 1;
    }
  }
  return null;
}