Blame view

node_modules/argparse/lib/help/added_formatters.js 2.58 KB
aaac7fed   liuqimichale   add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
  '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;