88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								'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;
							 |