void HelpWriterContext::writeOptionItem(const std::string &name, const std::string &value, const std::string &defaultValue, const std::string &info, const std::string &description) const { TextWriter &file = outputFile(); switch (outputFormat()) { case eHelpOutputFormat_Console: { TextTableFormatter &formatter(impl_->state_->consoleOptionsFormatter()); formatter.clear(); formatter.addColumnLine(0, name); formatter.addColumnLine(1, value); if (!defaultValue.empty()) { formatter.addColumnLine(2, "(" + defaultValue + ")"); } if (!info.empty()) { formatter.addColumnLine(3, "(" + info + ")"); } TextLineWrapperSettings settings; settings.setIndent(11); settings.setLineLength(78); std::string formattedDescription = substituteMarkupAndWrapToString(settings, description); file.writeLine(formatter.formatRow()); file.writeLine(formattedDescription); break; } case eHelpOutputFormat_Rst: { std::string args(value); if (!defaultValue.empty()) { args.append(" ("); args.append(defaultValue); args.append(")"); } if (!info.empty()) { args.append(" ("); args.append(info); args.append(")"); } file.writeLine(formatString("``%s`` %s", name.c_str(), args.c_str())); TextLineWrapperSettings settings; settings.setIndent(4); file.writeLine(substituteMarkupAndWrapToString(settings, description)); break; } default: GMX_THROW(NotImplementedError( "This output format is not implemented")); } }
void HelpWriterContext::writeTextBlock(const std::string &text) const { TextLineWrapperSettings settings; if (outputFormat() == eHelpOutputFormat_Console) { settings.setLineLength(78); } outputFile().writeLine(substituteMarkupAndWrapToString(settings, text)); }
void TextTableFormatter::addColumnHelpTextBlock( int index, const HelpWriterContext &context, const std::string &text) { Impl::ColumnData &column = impl_->columnData(index); TextLineWrapperSettings settings; if (column.bWrap_) { settings.setLineLength(column.width()); } std::vector<std::string> lines( context.substituteMarkupAndWrapToVector(settings, text)); column.lines_.insert(column.lines_.end(), lines.begin(), lines.end()); }
void CommandLineHelpWriter::Impl::formatBugs(const HelpWriterContext &context) { if (bugs_.empty()) { return; } context.writeTitle("Known Issues"); ConstArrayRef<const char *>::const_iterator i; for (i = bugs_.begin(); i != bugs_.end(); ++i) { const char *const bug = *i; TextLineWrapperSettings settings; settings.setIndent(2); settings.setFirstLineIndent(0); settings.setLineLength(78); context.outputFile().writeLine( context.substituteMarkupAndWrapToString( settings, formatString("* %s", bug))); } }