[PATCH 10 of 10] help: add pieces of rst for help together and only format it once
Erik Zielke
ez at aragost.com
Wed Nov 17 17:11:09 UTC 2010
# HG changeset patch
# User Erik Zielke <ez at aragost.com>
# Date 1290013180 -3600
# Node ID 98e460c78393727a5fc5d8f5caab31ffffb9de94
# Parent beb8321534406c5b84b36729137c39fd0572320e
help: add pieces of rst for help together and only format it once
diff -r beb832153440 -r 98e460c78393 mercurial/commands.py
--- a/mercurial/commands.py Wed Nov 17 17:59:34 2010 +0100
+++ b/mercurial/commands.py Wed Nov 17 17:59:40 2010 +0100
@@ -1874,81 +1874,12 @@
table, ui.debugflag, globalopts,
ui.config('ui', 'strict'),
with_version, unknowncmd)
-
- def helpcmd(name):
- helpcmdrst = help.generatehelpcmdrst(ui, helpconfig)
- if helpcmdrst:
- formatted, pruned = minirst.format(helpcmdrst, textwidth,
- keep=helpconfig['keep'])
- ui.write(formatted)
- ui.write('\n')
-
- def helplist(header, extrainfo, select=None):
- helpconfig['extrainfo'] = extrainfo
- helplistrst = help.generatehelplistrst(header, helpconfig,
- select=select)
- formatted = minirst.format(helplistrst, textwidth)
- ui.write(formatted)
- ui.write('\n')
-
- def helptopic(name):
- helptopicrst = help.generatehelptopicrst(helpconfig)
- formatted, pruned = minirst.format(helptopicrst, textwidth,
- keep=helpconfig['keep'])
- ui.write(formatted)
- ui.write('\n')
-
- def helpext(name):
- helpextrst = help.generatethelpextrst(helpconfig)
- formatted, pruned = minirst.format(helpextrst, textwidth,
- keep=helpconfig['keep'])
- ui.write(formatted)
- ui.write('\n')
-
- def helpextcmd(name):
- helpextcmdrst = help.generatehelpextcmdrst(helpconfig)
- formatted, pruned = minirst.format(helpextcmdrst, textwidth,
- keep=helpconfig['keep'])
- ui.write(formatted)
- ui.write('\n')
-
-
- help.addtopichook('revsets', revset.makedoc)
-
- if name and name != 'shortlist':
- i = None
- if unknowncmd:
- queries = (helpextcmd,)
- else:
- queries = (helptopic, helpcmd, helpext, helpextcmd)
- for f in queries:
- try:
- f(name)
- i = None
- break
- except error.UnknownCommand, inst:
- i = inst
- if i:
- raise i
-
- else:
- # program name
- if ui.verbose or with_version:
- versionrst = help.generateversionrst(ui.quiet)
- formatted = minirst.format(versionrst, textwidth)
- ui.write(formatted)
- ui.write('\n')
- else:
- ui.status(_("Mercurial Distributed SCM\n"))
- ui.status('\n')
-
- # list of commands
- if name == "shortlist":
- header = _('basic commands:\n\n')
- else:
- header = _('list of commands:\n\n')
-
- helplist(header, True)
+ rst = help.generaterst(ui, helpconfig)
+ if rst:
+ formatted, pruned = minirst.format(rst, textwidth,
+ keep=helpconfig['keep'])
+ ui.write(formatted)
+ ui.write('\n')
def identify(ui, repo, source=None,
rev=None, num=None, id=None, branch=None, tags=None):
diff -r beb832153440 -r 98e460c78393 mercurial/help.py
--- a/mercurial/help.py Wed Nov 17 17:59:34 2010 +0100
+++ b/mercurial/help.py Wed Nov 17 17:59:40 2010 +0100
@@ -11,6 +11,7 @@
import encoding
import cmdutil
import minirst
+import revset
def generatehelplistrst(header, helpconfig, select=None):
"""Returns rst help list"""
@@ -290,7 +291,7 @@
return helpconfig
-def generatehelptopicrst(helpconfig):
+def generatehelptopicrst(ui, helpconfig):
"""Returns rst for the help topic with the given name"""
for names, header, doc in helptable:
@@ -413,7 +414,7 @@
return ''.join(lines)
-def generatethelpextrst(helpconfig):
+def generatethelpextrst(ui, helpconfig):
"""Returns rst help for the extension with the given name"""
try:
@@ -455,7 +456,7 @@
return ''.join(lines)
-def generatehelpextcmdrst(helpconfig):
+def generatehelpextcmdrst(ui, helpconfig):
"""Returns rst help for the disabled extension cmd with the given name"""
cmd, ext, mod = extensions.disabledcmd(helpconfig['name'],
helpconfig['strict'])
@@ -580,6 +581,51 @@
return ''.join(lines)
+def generaterst(ui, helpconfig):
+ addtopichook('revsets', revset.makedoc)
+ lines = []
+
+
+ if helpconfig['name'] and helpconfig['name'] != 'shortlist':
+ i = None
+ if helpconfig['unknowncmd']:
+ queries = (generatehelpextcmdrst,)
+ else:
+ queries = (generatehelptopicrst, generatehelpcmdrst,
+ generatethelpextrst, generatehelpextcmdrst)
+ for f in queries:
+ try:
+ helprst = f(ui, helpconfig)
+ lines.append(helprst)
+ i = None
+ break
+ except error.UnknownCommand, inst:
+ i = inst
+ if i:
+ raise i
+
+ else:
+ # program name
+ if helpconfig['verbose'] or helpconfig['with_version']:
+ versionrst = generateversionrst(helpconfig['quiet'])
+ lines.append(versionrst)
+ lines.append('\n')
+ elif not helpconfig['quiet']:
+ lines.append(_("Mercurial Distributed SCM\n"))
+ lines.append('\n')
+
+ # list of commands
+ if helpconfig['name'] == "shortlist":
+ header = _('basic commands:\n\n')
+ else:
+ header = _('list of commands:\n\n')
+
+ helpconfig['extrainfo'] = True
+ helplistrst = generatehelplistrst(header, helpconfig)
+ lines.append(helplistrst)
+ lines.append('\n')
+ return ''.join(lines)
+
helptable = [
(["config", "hgrc"], _("Configuration Files"), loaddoc('config')),
(["dates"], _("Date Formats"), loaddoc('dates')),
More information about the Mercurial-devel
mailing list