From patchwork Sun Dec 23 06:15:48 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [3,of,6,V2] exthelper: drop fileset/revset/template support for now From: Matt Harbison X-Patchwork-Id: 37329 Message-Id: <532b67da901af08c2d46.1545545748@Envy> To: mercurial-devel@mercurial-scm.org Date: Sun, 23 Dec 2018 01:15:48 -0500 # HG changeset patch # User Matt Harbison # Date 1545536664 18000 # Sat Dec 22 22:44:24 2018 -0500 # Node ID 532b67da901af08c2d467f1fb175b6073ffb8762 # Parent 9c6e437729b7da29d5ee3d3b680a7810314b9d93 exthelper: drop fileset/revset/template support for now Yuya raised concerns about duplicating registrar functionality. There are a couple of ideas to work around this, which would allow bringing them back, and then backporting to evolve. For now, I just want to get the subsequent changes landed before the bulk b'' rewrite makes rebasing too hard. diff --git a/mercurial/exthelper.py b/mercurial/exthelper.py --- a/mercurial/exthelper.py +++ b/mercurial/exthelper.py @@ -15,10 +15,7 @@ from . import ( commands, configitems, extensions, - fileset as filesetmod, registrar, - revset as revsetmod, - templatekw as templatekwmod, ) class exthelper(object): @@ -35,9 +32,6 @@ class exthelper(object): self._uicallables = [] self._extcallables = [] self._repocallables = [] - self._revsetsymbols = [] - self._filesetsymbols = [] - self._templatekws = [] self._commandwrappers = [] self._extcommandwrappers = [] self._functionwrappers = [] @@ -61,9 +55,6 @@ class exthelper(object): self._uipopulatecallables.extend(other._uipopulatecallables) self._extcallables.extend(other._extcallables) self._repocallables.extend(other._repocallables) - self._revsetsymbols.extend(other._revsetsymbols) - self._filesetsymbols.extend(other._filesetsymbols) - self._templatekws.extend(other._templatekws) self._commandwrappers.extend(other._commandwrappers) self._extcommandwrappers.extend(other._extcommandwrappers) self._functionwrappers.extend(other._functionwrappers) @@ -126,29 +117,9 @@ class exthelper(object): - Changes depending on the status of other extensions. (if extensions.find('mq')) - Add a global option to all commands - - Register revset functions """ knownexts = {} - revsetpredicate = registrar.revsetpredicate() - for name, symbol in self._revsetsymbols: - revsetpredicate(name)(symbol) - revsetmod.loadpredicate(ui, 'evolve', revsetpredicate) - - filesetpredicate = registrar.filesetpredicate() - for name, symbol in self._filesetsymbols: - filesetpredicate(name)(symbol) - # 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: @@ -226,58 +197,6 @@ class exthelper(object): self._repocallables.append(call) return call - def revset(self, symbolname): - """Decorated function is a revset symbol - - The name of the symbol must be given as the decorator argument. - The symbol is added during `extsetup`. - - example:: - - @eh.revset('hidden') - def revsetbabar(repo, subset, x): - args = revset.getargs(x, 0, 0, 'babar accept no argument') - return [r for r in subset if 'babar' in repo[r].description()] - """ - def dec(symbol): - self._revsetsymbols.append((symbolname, symbol)) - return symbol - return dec - - def fileset(self, symbolname): - """Decorated function is a fileset symbol - - The name of the symbol must be given as the decorator argument. - The symbol is added during `extsetup`. - - example:: - - @eh.fileset('lfs()') - def filesetbabar(mctx, x): - return mctx.predicate(...) - """ - def dec(symbol): - self._filesetsymbols.append((symbolname, symbol)) - 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