mercurial/help.py
changeset 16781 c0b98f436cce
parent 16711 497deec204d1
child 16815 e740746ea557
equal deleted inserted replaced
16780:d064da05590d 16781:c0b98f436cce
     6 # GNU General Public License version 2 or any later version.
     6 # GNU General Public License version 2 or any later version.
     7 
     7 
     8 from i18n import gettext, _
     8 from i18n import gettext, _
     9 import itertools, sys, os
     9 import itertools, sys, os
    10 import extensions, revset, fileset, templatekw, templatefilters, filemerge
    10 import extensions, revset, fileset, templatekw, templatefilters, filemerge
    11 import encoding, util
    11 import encoding, util, minirst
    12 
    12 
    13 def listexts(header, exts, indent=1):
    13 def listexts(header, exts, indent=1):
    14     '''return a text listing of the given extensions'''
    14     '''return a text listing of the given extensions'''
    15     if not exts:
    15     if not exts:
    16         return ''
    16         return ''
    24 def extshelp():
    24 def extshelp():
    25     doc = loaddoc('extensions')()
    25     doc = loaddoc('extensions')()
    26     doc += listexts(_('enabled extensions:'), extensions.enabled())
    26     doc += listexts(_('enabled extensions:'), extensions.enabled())
    27     doc += listexts(_('disabled extensions:'), extensions.disabled())
    27     doc += listexts(_('disabled extensions:'), extensions.disabled())
    28     return doc
    28     return doc
       
    29 
       
    30 def optrst(options, verbose):
       
    31     data = []
       
    32     multioccur = False
       
    33     for option in options:
       
    34         if len(option) == 5:
       
    35             shortopt, longopt, default, desc, optlabel = option
       
    36         else:
       
    37             shortopt, longopt, default, desc = option
       
    38             optlabel = _("VALUE") # default label
       
    39 
       
    40         if _("DEPRECATED") in desc and not verbose:
       
    41             continue
       
    42 
       
    43         so = ''
       
    44         if shortopt:
       
    45             so = '-' + shortopt
       
    46         lo = '--' + longopt
       
    47         if default:
       
    48             desc += _(" (default: %s)") % default
       
    49 
       
    50         if isinstance(default, list):
       
    51             lo += " %s [+]" % optlabel
       
    52             multioccur = True
       
    53         elif (default is not None) and not isinstance(default, bool):
       
    54             lo += " %s" % optlabel
       
    55 
       
    56         data.append((so, lo, desc))
       
    57 
       
    58     rst = minirst.maketable(data, 1)
       
    59 
       
    60     if multioccur:
       
    61         rst += _("\n[+] marked option can be specified multiple times\n")
       
    62 
       
    63     return rst
       
    64 
       
    65 # list all option lists
       
    66 def opttext(optlist, width, verbose):
       
    67     rst = ''
       
    68     if not optlist:
       
    69         return ''
       
    70 
       
    71     for title, options in optlist:
       
    72         rst += '\n%s\n' % title
       
    73         if options:
       
    74             rst += "\n"
       
    75             rst += optrst(options, verbose)
       
    76             rst += '\n'
       
    77 
       
    78     return '\n' + minirst.format(rst, width)
    29 
    79 
    30 def topicmatch(kw):
    80 def topicmatch(kw):
    31     """Return help topics matching kw.
    81     """Return help topics matching kw.
    32 
    82 
    33     Returns {'section': [(name, summary), ...], ...} where section is
    83     Returns {'section': [(name, summary), ...], ...} where section is