void CommandLineHelpModule::writeHelp(const CommandLineHelpContext &context) const { const HelpWriterContext &writerContext = context.writerContext(); // TODO: Implement. if (writerContext.outputFormat() != eHelpOutputFormat_Console) { return; } writerContext.writeTextBlock( "Usage: [PROGRAM] help [<command>|<topic> [<subtopic> [...]]]"); // TODO: More information. }
void CommandLineHelpWriter::writeHelp(const CommandLineHelpContext &context) { if (context.isCompletionExport()) { context.shellCompletionWriter().writeModuleCompletions( context.moduleDisplayName(), impl_->options_); return; } const HelpWriterContext &writerContext = context.writerContext(); OptionsFilter filter; filter.setShowHidden(context.showHidden()); { writerContext.writeTitle("Synopsis"); SynopsisFormatter synopsisFormatter(writerContext); synopsisFormatter.start(context.moduleDisplayName()); filter.formatSelected(OptionsFilter::eSelectInputFileOptions, &synopsisFormatter, impl_->options_); filter.formatSelected(OptionsFilter::eSelectInputOutputFileOptions, &synopsisFormatter, impl_->options_); filter.formatSelected(OptionsFilter::eSelectOutputFileOptions, &synopsisFormatter, impl_->options_); filter.formatSelected(OptionsFilter::eSelectOtherOptions, &synopsisFormatter, impl_->options_); synopsisFormatter.finish(); } if (!impl_->helpText_.empty()) { writerContext.writeTitle("Description"); writerContext.writeTextBlock(impl_->helpText_); writerContext.outputFile().writeLine(); } CommonFormatterData common(impl_->timeUnit_.c_str()); OptionsListFormatter formatter(writerContext, common, "Options"); formatter.startSection("Options to specify input files:"); filter.formatSelected(OptionsFilter::eSelectInputFileOptions, &formatter, impl_->options_); formatter.finishSection(); formatter.startSection("Options to specify input/output files:"); filter.formatSelected(OptionsFilter::eSelectInputOutputFileOptions, &formatter, impl_->options_); formatter.finishSection(); formatter.startSection("Options to specify output files:"); filter.formatSelected(OptionsFilter::eSelectOutputFileOptions, &formatter, impl_->options_); formatter.finishSection(); formatter.startSection("Other options:"); filter.formatSelected(OptionsFilter::eSelectOtherOptions, &formatter, impl_->options_); formatter.finishSection(); impl_->formatBugs(writerContext); }