usageWithoutDescription property

String get usageWithoutDescription

Implementation

String get usageWithoutDescription
{
  final length = argParser.usageLineLength;
  const usagePrefix = 'Usage: ';
  final buffer = StringBuffer()
    ..writeln(
      usagePrefix + wrapUsage(invocation, hangingIndent: usagePrefix.length)
    );
  if (arguments.isNotEmpty) {
    buffer.writeln();
    buffer.writeln('Arguments:');
    final namesColumnWidth = arguments.map((e) => e.name.length).reduce(max)
      + 4;
    for (final argument in arguments) {
      final name = padRight(argument.name, namesColumnWidth);
      final descLines = wrapTextAsLines(argument.help ?? '',
        start: namesColumnWidth,
        length: length,
      );
      buffer.writeln('$name${descLines.first}');
      for (final line in descLines.skip(1)) {
        buffer.write(' ' * namesColumnWidth);
        buffer.writeln(line);
      }
    }
    buffer.writeln();
  }
  buffer.writeln('Options:');
  buffer.writeln(argParser.usage);

  if (subcommands.isNotEmpty) {
    buffer.writeln();
    buffer.writeln(getCommandUsage(subcommands,
      isSubcommand: true,
      lineLength: length,
    ));
  }

  buffer.writeln();
  buffer.write(
    wrapUsage('Run "${runner!.executableName} help" to see global options.')
  );

  if (usageFooter != null) {
    buffer.writeln();
    buffer.write(wrapUsage(usageFooter!));
  }

  return buffer.toString();
}