148 docs = _(pycompat.getdoc(entry[0])) or '' |
148 docs = _(pycompat.getdoc(entry[0])) or '' |
149 if kw in cmd or lowercontains(summary) or lowercontains(docs): |
149 if kw in cmd or lowercontains(summary) or lowercontains(docs): |
150 doclines = docs.splitlines() |
150 doclines = docs.splitlines() |
151 if doclines: |
151 if doclines: |
152 summary = doclines[0] |
152 summary = doclines[0] |
153 cmdname = cmd.partition('|')[0].lstrip('^') |
153 cmdname = cmdutil.parsealiases(cmd)[0] |
154 if filtercmd(ui, cmdname, kw, docs): |
154 if filtercmd(ui, cmdname, kw, docs): |
155 continue |
155 continue |
156 results['commands'].append((cmdname, summary)) |
156 results['commands'].append((cmdname, summary)) |
157 for name, docs in itertools.chain( |
157 for name, docs in itertools.chain( |
158 extensions.enabled(False).iteritems(), |
158 extensions.enabled(False).iteritems(), |
168 except ImportError: |
168 except ImportError: |
169 # debug message would be printed in extensions.load() |
169 # debug message would be printed in extensions.load() |
170 continue |
170 continue |
171 for cmd, entry in getattr(mod, 'cmdtable', {}).iteritems(): |
171 for cmd, entry in getattr(mod, 'cmdtable', {}).iteritems(): |
172 if kw in cmd or (len(entry) > 2 and lowercontains(entry[2])): |
172 if kw in cmd or (len(entry) > 2 and lowercontains(entry[2])): |
173 cmdname = cmd.partition('|')[0].lstrip('^') |
173 cmdname = cmdutil.parsealiases(cmd)[0] |
174 cmddoc = pycompat.getdoc(entry[0]) |
174 cmddoc = pycompat.getdoc(entry[0]) |
175 if cmddoc: |
175 if cmddoc: |
176 cmddoc = gettext(cmddoc).splitlines()[0] |
176 cmddoc = gettext(cmddoc).splitlines()[0] |
177 else: |
177 else: |
178 cmddoc = _('(no help text available)') |
178 cmddoc = _('(no help text available)') |
326 strict=unknowncmd) |
326 strict=unknowncmd) |
327 except error.AmbiguousCommand as inst: |
327 except error.AmbiguousCommand as inst: |
328 # py3k fix: except vars can't be used outside the scope of the |
328 # py3k fix: except vars can't be used outside the scope of the |
329 # except block, nor can be used inside a lambda. python issue4617 |
329 # except block, nor can be used inside a lambda. python issue4617 |
330 prefix = inst.args[0] |
330 prefix = inst.args[0] |
331 select = lambda c: c.lstrip('^').startswith(prefix) |
331 select = lambda c: cmdutil.parsealiases(c)[0].startswith(prefix) |
332 rst = helplist(select) |
332 rst = helplist(select) |
333 return rst |
333 return rst |
334 |
334 |
335 rst = [] |
335 rst = [] |
336 |
336 |
417 header = _('list of commands:\n\n') |
417 header = _('list of commands:\n\n') |
418 |
418 |
419 h = {} |
419 h = {} |
420 cmds = {} |
420 cmds = {} |
421 for c, e in commands.table.iteritems(): |
421 for c, e in commands.table.iteritems(): |
422 f = c.partition("|")[0] |
422 fs = cmdutil.parsealiases(c) |
423 if select and not select(f): |
423 f = fs[0] |
|
424 p = '' |
|
425 if c.startswith("^"): |
|
426 p = '^' |
|
427 if select and not select(p + f): |
424 continue |
428 continue |
425 if (not select and name != 'shortlist' and |
429 if (not select and name != 'shortlist' and |
426 e[0].__module__ != commands.__name__): |
430 e[0].__module__ != commands.__name__): |
427 continue |
431 continue |
428 if name == "shortlist" and not f.startswith("^"): |
432 if name == "shortlist" and not p: |
429 continue |
433 continue |
430 f = f.lstrip("^") |
|
431 doc = pycompat.getdoc(e[0]) |
434 doc = pycompat.getdoc(e[0]) |
432 if filtercmd(ui, f, name, doc): |
435 if filtercmd(ui, f, name, doc): |
433 continue |
436 continue |
434 doc = gettext(doc) |
437 doc = gettext(doc) |
435 if not doc: |
438 if not doc: |
436 doc = _("(no help text available)") |
439 doc = _("(no help text available)") |
437 h[f] = doc.splitlines()[0].rstrip() |
440 h[f] = doc.splitlines()[0].rstrip() |
438 cmds[f] = c.lstrip("^") |
441 cmds[f] = '|'.join(fs) |
439 |
442 |
440 rst = [] |
443 rst = [] |
441 if not h: |
444 if not h: |
442 if not ui.quiet: |
445 if not ui.quiet: |
443 rst.append(_('no commands defined\n')) |
446 rst.append(_('no commands defined\n')) |