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