help: pass around ui to doc loader (API)
This is necessary to hide DEPRECATED items conditionally.
Flagged as API change because it will break "hg help git|subversion".
--- a/doc/check-seclevel.py Sun Sep 27 23:34:37 2015 +0900
+++ b/doc/check-seclevel.py Sat Sep 26 12:06:30 2015 +0900
@@ -79,7 +79,7 @@
errorcnt = 0
for names, sec, doc in helptable:
if callable(doc):
- doc = doc()
+ doc = doc(ui)
errorcnt += checkseclevel(ui, doc,
'%s help topic' % names[0],
initlevel_topic)
--- a/doc/gendoc.py Sun Sep 27 23:34:37 2015 +0900
+++ b/doc/gendoc.py Sat Sep 26 12:06:30 2015 +0900
@@ -138,7 +138,7 @@
if sectionfunc:
ui.write(sectionfunc(sec))
if callable(doc):
- doc = doc()
+ doc = doc(ui)
ui.write(doc)
ui.write("\n")
--- a/mercurial/help.py Sun Sep 27 23:34:37 2015 +0900
+++ b/mercurial/help.py Sat Sep 26 12:06:30 2015 +0900
@@ -34,8 +34,8 @@
rst.append('%s:%s: %s\n' % (' ' * indent, name, desc))
return rst
-def extshelp():
- rst = loaddoc('extensions')().splitlines(True)
+def extshelp(ui):
+ rst = loaddoc('extensions')(ui).splitlines(True)
rst.extend(listexts(
_('enabled extensions:'), extensions.enabled(), showdeprecated=True))
rst.extend(listexts(_('disabled extensions:'), extensions.disabled()))
@@ -83,7 +83,7 @@
if notomitted:
rst.append('\n\n.. container:: notomitted\n\n %s\n\n' % notomitted)
-def topicmatch(kw):
+def topicmatch(ui, kw):
"""Return help topics matching kw.
Returns {'section': [(name, summary), ...], ...} where section is
@@ -101,7 +101,7 @@
# Old extensions may use a str as doc.
if (sum(map(lowercontains, names))
or lowercontains(header)
- or (callable(doc) and lowercontains(doc()))):
+ or (callable(doc) and lowercontains(doc(ui)))):
results['topics'].append((names[0], header))
import commands # avoid cycle
for cmd, entry in commands.table.iteritems():
@@ -139,7 +139,7 @@
def loaddoc(topic):
"""Return a delayed loader for help/topic.txt."""
- def loader():
+ def loader(ui):
docdir = os.path.join(util.datapath, 'help')
path = os.path.join(docdir, topic + ".txt")
doc = gettext(util.readfile(path))
@@ -415,7 +415,7 @@
if not doc:
rst.append(" %s\n" % _("(no help text available)"))
if callable(doc):
- rst += [" %s\n" % l for l in doc().splitlines()]
+ rst += [" %s\n" % l for l in doc(ui).splitlines()]
if not ui.verbose:
omitted = _('(some details hidden, use --verbose'
@@ -482,7 +482,7 @@
rst = []
kw = opts.get('keyword')
if kw:
- matches = topicmatch(name)
+ matches = topicmatch(ui, name)
helpareas = []
if opts.get('extension'):
helpareas += [('extensions', _('Extensions'))]
--- a/tests/test-help.t Sun Sep 27 23:34:37 2015 +0900
+++ b/tests/test-help.t Sat Sep 26 12:06:30 2015 +0900
@@ -1105,7 +1105,7 @@
> def extsetup(ui):
> help.helptable.append((["topic-containing-verbose"],
> "This is the topic to test omit indicating.",
- > lambda : testtopic))
+ > lambda ui: testtopic))
> EOF
$ echo '[extensions]' >> $HGRCPATH
$ echo "addverboseitems = `pwd`/addverboseitems.py" >> $HGRCPATH