Read about our upcoming Code of Conduct on this issue

Commit da06f113 authored by's avatar
Browse files

help: fix help argument parsing and documentation

support combining -c and -e

previously -k was misdocumented:
 * the first line didn't mention it
 * the help half implied you could do help -k keyword topic

with these changes, -k just changes the search method

support -c and -e for -k searches
parent 1c6f7cc52da9
......@@ -3942,9 +3942,9 @@ def heads(ui, repo, *branchrevs, **opts):
[('e', 'extension', None, _('show only help for extensions')),
('c', 'command', None, _('show only help for commands')),
('k', 'keyword', '', _('show topics matching keyword')),
('k', 'keyword', None, _('show topics matching keyword')),
_('[-ec] [TOPIC]'),
_('[-eck] [TOPIC]'),
def help_(ui, name=None, **opts):
"""show help for a given topic or a help overview
......@@ -475,11 +475,18 @@ def help_(ui, name, unknowncmd=False, full=True, **opts):
rst = []
kw = opts.get('keyword')
if kw:
matches = topicmatch(kw)
for t, title in (('topics', _('Topics')),
matches = topicmatch(name)
helpareas = []
if opts.get('extension'):
helpareas += [('extensions', _('Extensions'))]
if opts.get('command'):
helpareas += [('commands', _('Commands'))]
if not helpareas:
helpareas = [('topics', _('Topics')),
('commands', _('Commands')),
('extensions', _('Extensions')),
('extensioncommands', _('Extension Commands'))):
('extensioncommands', _('Extension Commands'))]
for t, title in helpareas:
if matches[t]:
rst.append('%s:\n\n' % title)
rst.extend(minirst.maketable(sorted(matches[t]), 1))
......@@ -489,13 +496,14 @@ def help_(ui, name, unknowncmd=False, full=True, **opts):
hint = _('try "hg help" for a list of topics')
raise util.Abort(msg, hint=hint)
elif name and name != 'shortlist':
queries = []
if unknowncmd:
queries = (helpextcmd,)
elif opts.get('extension'):
queries = (helpext,)
elif opts.get('command'):
queries = (helpcmd,)
queries += [helpextcmd]
if opts.get('extension'):
queries += [helpext]
if opts.get('command'):
queries += [helpcmd]
if not queries:
queries = (helptopic, helpcmd, helpext, helpextcmd)
for f in queries:
......@@ -988,6 +988,28 @@ Test help hooks
Test -e / -c / -k combinations
$ hg help -c progress
abort: no such help topic: progress
(try "hg help --keyword progress")
$ hg help -e progress |head -1
progress extension - show progress bars for some actions (DEPRECATED)
$ hg help -c -k dates |egrep '^(Topics|Extensions|Commands):'
$ hg help -e -k a |egrep '^(Topics|Extensions|Commands):'
$ hg help -e -c -k date |egrep '^(Topics|Extensions|Commands):'
$ hg help -c commit > /dev/null
$ hg help -e -c commit > /dev/null
$ hg help -e commit > /dev/null
abort: no such help topic: commit
(try "hg help --keyword commit")
Test keyword search help
$ cat > <<EOF
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment