| '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; |