Mercurial > hg-stable
diff mercurial/dispatch.py @ 40763:c93d046d4300
extensions: add "uipopulate" hook, called per instance, not per process
In short, this is the "reposetup" function for ui. It allows us to modify
ui attributes without extending ui.__class__. Before, the only way to do
that was to abuse the config dictionary, which is copied across ui instances.
See the next patch for usage example.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Mon, 12 Nov 2018 21:10:51 +0900 |
parents | 1243295fcc3a |
children | dd97354b8891 |
line wrap: on
line diff
--- a/mercurial/dispatch.py Sat Nov 17 19:11:45 2018 +0900 +++ b/mercurial/dispatch.py Mon Nov 12 21:10:51 2018 +0900 @@ -866,6 +866,9 @@ # Check abbreviation/ambiguity of shell alias. shellaliasfn = _checkshellalias(lui, ui, args) if shellaliasfn: + # no additional configs will be set, set up the ui instances + for ui_ in uis: + extensions.populateui(ui_) return shellaliasfn() # check for fallback encoding @@ -948,6 +951,10 @@ for ui_ in uis: ui_.disablepager() + # configs are fully loaded, set up the ui instances + for ui_ in uis: + extensions.populateui(ui_) + if options['version']: return commands.version_(ui) if options['help']: