void Option::printHelp(XMLHandler &handler, const string &prefix) const { XMLAttributes attrs; attrs["class"] = "option"; attrs["id"] = prefix + "option-" + getName(); handler.startElement("div", attrs); // Name attrs.clear(); attrs["class"] = "name"; handler.startElement("span", attrs); handler.text(getName()); handler.endElement("span"); // Type attrs["class"] = "type"; handler.startElement("span", attrs); handler.text(isOptional() ? "[" : "<"); handler.text(getTypeString()); // Default if (hasDefault()) { handler.text(" = "); bool isString = type == STRING_TYPE || type == STRINGS_TYPE; attrs["class"] = "default"; handler.startElement("span", attrs); handler.text((isString ? "\"" : "") + getDefault() + (isString ? "\"" : "")); handler.endElement("span"); } handler.text(isOptional() ? "]" : ">"); handler.endElement("span"); // Help if (getHelp() != "") { attrs["class"] = "help"; handler.startElement("div", attrs); string help = getHelp(); vector<string> tokens; String::tokenize(help, tokens, "\t"); handler.text(String::join(tokens, " ")); handler.text(" "); handler.endElement("div"); } handler.endElement("div"); }