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.
--- 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'),