You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.6 KiB
87 lines
2.6 KiB
'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;
|
|
|