registeredInputTokenLength method
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;
}