'use strict';
var util = require('util');
// Constants var c = require('../const');
var $$ = require('../utils'); var HelpFormatter = require('./formatter.js');
/**
* new RawDescriptionHelpFormatter(options) * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...}) * * Help message formatter which adds default values to argument help. * * Only the name of this class is considered a public API. All the methods * provided by the class are considered an implementation detail. **/
function ArgumentDefaultsHelpFormatter(options) {
HelpFormatter.call(this, options);
}
util.inherits(ArgumentDefaultsHelpFormatter, HelpFormatter);
ArgumentDefaultsHelpFormatter.prototype._getHelpString = function (action) {
var help = action.help; if (action.help.indexOf('%(defaultValue)s') === -1) { if (action.defaultValue !== c.SUPPRESS) { var defaulting_nargs = [ c.OPTIONAL, c.ZERO_OR_MORE ]; if (action.isOptional() || (defaulting_nargs.indexOf(action.nargs) >= 0)) { help += ' (default: %(defaultValue)s)'; } } } return help;
};
module.exports.ArgumentDefaultsHelpFormatter = ArgumentDefaultsHelpFormatter;
/**
* new RawDescriptionHelpFormatter(options) * new ArgumentParser({formatterClass: argparse.RawDescriptionHelpFormatter, ...}) * * Help message formatter which retains any formatting in descriptions. * * Only the name of this class is considered a public API. All the methods * provided by the class are considered an implementation detail. **/
function RawDescriptionHelpFormatter(options) {
HelpFormatter.call(this, options);
}
util.inherits(RawDescriptionHelpFormatter, HelpFormatter);
RawDescriptionHelpFormatter.prototype._fillText = function (text, width, indent) {
var lines = text.split('\n'); lines = lines.map(function (line) { return $$.trimEnd(indent + line); }); return lines.join('\n');
}; module.exports.RawDescriptionHelpFormatter = RawDescriptionHelpFormatter;
/**
* new RawTextHelpFormatter(options) * new ArgumentParser({formatterClass: argparse.RawTextHelpFormatter, ...}) * * Help message formatter which retains formatting of all help text. * * Only the name of this class is considered a public API. All the methods * provided by the class are considered an implementation detail. **/
function RawTextHelpFormatter(options) {
RawDescriptionHelpFormatter.call(this, options);
}
util.inherits(RawTextHelpFormatter, RawDescriptionHelpFormatter);
RawTextHelpFormatter.prototype._splitLines = function (text) {
return text.split('\n');
};
module.exports.RawTextHelpFormatter = RawTextHelpFormatter;