Mercurial > hg
diff mercurial/extensions.py @ 34187:4c5730c21523
extensions: register config item early
Config items are likely to be used in during extensions setup. So we much
register them before that.
For example this apply to the 'win32text.warn' options.
author | Boris Feld <boris.feld@octobus.net> |
---|---|
date | Tue, 05 Sep 2017 00:34:13 +0200 |
parents | f7c9c5d8c7f4 |
children | 78d9a7b7cdb6 |
line wrap: on
line diff
--- a/mercurial/extensions.py Tue Sep 05 00:31:59 2017 +0200 +++ b/mercurial/extensions.py Tue Sep 05 00:34:13 2017 +0200 @@ -232,6 +232,18 @@ if isinstance(inst, error.Hint) and inst.hint: ui.warn(_("*** (%s)\n") % inst.hint) ui.traceback() + # list of (objname, loadermod, loadername) tuple: + # - objname is the name of an object in extension module, + # from which extra information is loaded + # - loadermod is the module where loader is placed + # - loadername is the name of the function, + # which takes (ui, extensionname, extraobj) arguments + # + # This one is for the list of item that must be run before running any setup + earlyextraloaders = [ + ('configtable', configitems, 'loadconfigtable'), + ] + _loadextra(ui, newindex, earlyextraloaders) broken = set() for name in _order[newindex:]: @@ -280,7 +292,6 @@ extraloaders = [ ('cmdtable', commands, 'loadcmdtable'), ('colortable', color, 'loadcolortable'), - ('configtable', configitems, 'loadconfigtable'), ('filesetpredicate', fileset, 'loadpredicate'), ('internalmerge', filemerge, 'loadinternalmerge'), ('revsetpredicate', revset, 'loadpredicate'),