exthelper: simplify the ability to register templates
Same mechanism as revsets earlier in this series.
--- a/hgext3rd/evolve/__init__.py Thu Dec 27 21:26:17 2018 -0500
+++ b/hgext3rd/evolve/__init__.py Thu Dec 27 21:55:22 2018 -0500
@@ -370,6 +370,7 @@
cmdtable = eh.cmdtable
configtable = eh.configtable
revsetpredicate = eh.revsetpredicate
+templatekeyword = eh.templatekeyword
# Configuration
eh.configitem('experimental', 'evolutioncommands', [])
--- a/hgext3rd/evolve/exthelper.py Thu Dec 27 21:26:17 2018 -0500
+++ b/hgext3rd/evolve/exthelper.py Thu Dec 27 21:55:22 2018 -0500
@@ -15,7 +15,6 @@
extensions,
fileset as filesetmod,
registrar,
- templatekw as templatekwmod,
)
class exthelper(object):
@@ -33,7 +32,6 @@
self._extcallables = []
self._repocallables = []
self._filesetsymbols = []
- self._templatekws = []
self._commandwrappers = []
self._extcommandwrappers = []
self._functionwrappers = []
@@ -52,6 +50,7 @@
self.configtable = {}
self.configitem = registrar.configitem(self.configtable)
self.revsetpredicate = registrar.revsetpredicate()
+ self.templatekeyword = registrar.templatekeyword()
def merge(self, other):
self._uicallables.extend(other._uicallables)
@@ -60,7 +59,7 @@
self._repocallables.extend(other._repocallables)
self.revsetpredicate._table.update(other.revsetpredicate._table)
self._filesetsymbols.extend(other._filesetsymbols)
- self._templatekws.extend(other._templatekws)
+ self.templatekeyword._table.update(other.templatekeyword._table)
self._commandwrappers.extend(other._commandwrappers)
self._extcommandwrappers.extend(other._extcommandwrappers)
self._functionwrappers.extend(other._functionwrappers)
@@ -132,14 +131,6 @@
# TODO: Figure out the calling extension name
filesetmod.loadpredicate(ui, 'exthelper', filesetpredicate)
- templatekeyword = registrar.templatekeyword()
- for name, kw, requires in self._templatekws:
- if requires is not None:
- templatekeyword(name, requires=requires)(kw)
- else:
- templatekeyword(name)(kw)
- templatekwmod.loadkeyword(ui, 'evolve', templatekeyword)
-
for ext, command, wrapper, opts in self._extcommandwrappers:
if ext not in knownexts:
try:
@@ -234,23 +225,6 @@
return symbol
return dec
- def templatekw(self, keywordname, requires=None):
- """Decorated function is a template keyword
-
- The name of the keyword must be given as the decorator argument.
- The symbol is added during `extsetup`.
-
- example::
-
- @eh.templatekw('babar')
- def kwbabar(ctx):
- return 'babar'
- """
- def dec(keyword):
- self._templatekws.append((keywordname, keyword, requires))
- return keyword
- return dec
-
def wrapcommand(self, command, extension=None, opts=None):
"""Decorated function is a command wrapper
--- a/hgext3rd/evolve/templatekw.py Thu Dec 27 21:26:17 2018 -0500
+++ b/hgext3rd/evolve/templatekw.py Thu Dec 27 21:55:22 2018 -0500
@@ -24,14 +24,14 @@
### template keywords
if util.safehasattr(templatekw, 'compatlist'):
- @eh.templatekw('troubles', requires=set(['ctx', 'templ']))
+ @eh.templatekeyword('troubles', requires=set(['ctx', 'templ']))
def showtroubles(context, mapping):
ctx = context.resource(mapping, 'ctx')
return templatekw.compatlist(context, mapping, 'trouble',
ctx.instabilities(), plural='troubles')
else:
# older template API in hg < 4.6
- @eh.templatekw('troubles')
+ @eh.templatekeyword('troubles')
def showtroubles(**args):
"""List of strings. Evolution troubles affecting the changeset
(zero or more of "unstable", "divergent" or "bumped")."""
@@ -175,7 +175,7 @@
return "\n".join(lines)
if not util.safehasattr(templatekw, 'obsfateverb'): # <= hg-4.5
- @eh.templatekw("obsfatedata")
+ @eh.templatekeyword("obsfatedata")
def showobsfatedata(repo, ctx, **args):
# Get the needed obsfate data
values = obsfatedata(repo, ctx)