# HG changeset patch # User Yuya Nishihara # Date 2011-06-04 11:19:30 # Node ID 558ec14ba6be7e71ce3b1f53daa820e041fff1d9 # Parent 3818c67a501edad38a9f2c35433c5de45c7e2d01 extensions: make disabled()/disabledext() load prebuilt index if available __index__ contains a dict of {name: desc} of all extensions. diff --git a/mercurial/extensions.py b/mercurial/extensions.py --- a/mercurial/extensions.py +++ b/mercurial/extensions.py @@ -262,6 +262,14 @@ def _disabledhelp(path): def disabled(): '''find disabled extensions from hgext. returns a dict of {name: desc}''' + try: + from hgext import __index__ + return dict((name, gettext(desc)) + for name, desc in __index__.docs.iteritems() + if name not in _order) + except ImportError: + pass + paths = _disabledpaths() if not paths: return None @@ -276,6 +284,15 @@ def disabled(): def disabledext(name): '''find a specific disabled extension from hgext. returns desc''' + try: + from hgext import __index__ + if name in _order: # enabled + return + else: + return gettext(__index__.docs.get(name)) + except ImportError: + pass + paths = _disabledpaths() if name in paths: return _disabledhelp(paths[name])