/// <param name="helpBuilder">The current help builder.</param>
 /// <param name="command">The command for which help is being formatted.</param>
 /// <param name="output">A text writer to write output to.</param>
 /// <param name="parseResult">The result of the current parse operation.</param>
 public HelpContext(
     HelpBuilder helpBuilder,
     Command command,
     TextWriter output,
     ParseResult?parseResult = null)
 {
     HelpBuilder = helpBuilder ?? throw new ArgumentNullException(nameof(helpBuilder));
     Command     = command ?? throw new ArgumentNullException(nameof(command));
     Output      = output ?? throw new ArgumentNullException(nameof(output));
     ParseResult = parseResult ?? ParseResult.Empty();
 }
 /// <summary>
 /// Writes help output for the specified command.
 /// </summary>
 /// <param name="builder">The help builder to write with.</param>
 /// <param name="command">The command for which to write help output.</param>
 /// <param name="writer">The writer to write output to.</param>
 public static void Write(
     this IHelpBuilder builder,
     ICommand command,
     TextWriter writer) =>
 builder.Write(command, writer, ParseResult.Empty());