mercurial/formatter.py
changeset 39582 28f974d83c0a
parent 38446 5b04a0c30f3f
child 39583 ee1e74ee037c
equal deleted inserted replaced
39581:68ce242c8b4b 39582:28f974d83c0a
   546             'cache': {},  # for templatekw/funcs to store reusable data
   546             'cache': {},  # for templatekw/funcs to store reusable data
   547             'repo': repo,
   547             'repo': repo,
   548             'ui': ui,
   548             'ui': ui,
   549         }
   549         }
   550 
   550 
   551     def availablekeys(self, context, mapping):
   551     def availablekeys(self, mapping):
   552         return {k for k, g in self._gettermap.iteritems()
   552         return {k for k, g in self._gettermap.iteritems()
   553                 if g(self, context, mapping, k) is not None}
   553                 if g(self, mapping, k) is not None}
   554 
   554 
   555     def knownkeys(self):
   555     def knownkeys(self):
   556         return self._knownkeys
   556         return self._knownkeys
   557 
   557 
   558     def lookup(self, context, mapping, key):
   558     def lookup(self, mapping, key):
   559         get = self._gettermap.get(key)
   559         get = self._gettermap.get(key)
   560         if not get:
   560         if not get:
   561             return None
   561             return None
   562         return get(self, context, mapping, key)
   562         return get(self, mapping, key)
   563 
   563 
   564     def populatemap(self, context, origmapping, newmapping):
   564     def populatemap(self, context, origmapping, newmapping):
   565         mapping = {}
   565         mapping = {}
   566         if self._hasctx(newmapping):
   566         if self._hasctx(newmapping):
   567             mapping['revcache'] = {}  # per-ctx cache
   567             mapping['revcache'] = {}  # per-ctx cache
   569             and ('node' in newmapping or self._hasctx(newmapping))):
   569             and ('node' in newmapping or self._hasctx(newmapping))):
   570             orignode = templateutil.runsymbol(context, origmapping, 'node')
   570             orignode = templateutil.runsymbol(context, origmapping, 'node')
   571             mapping['originalnode'] = orignode
   571             mapping['originalnode'] = orignode
   572         return mapping
   572         return mapping
   573 
   573 
   574     def _getsome(self, context, mapping, key):
   574     def _getsome(self, mapping, key):
   575         v = mapping.get(key)
   575         v = mapping.get(key)
   576         if v is not None:
   576         if v is not None:
   577             return v
   577             return v
   578         return self._resmap.get(key)
   578         return self._resmap.get(key)
   579 
   579 
   580     def _hasctx(self, mapping):
   580     def _hasctx(self, mapping):
   581         return 'ctx' in mapping or 'fctx' in mapping
   581         return 'ctx' in mapping or 'fctx' in mapping
   582 
   582 
   583     def _getctx(self, context, mapping, key):
   583     def _getctx(self, mapping, key):
   584         ctx = mapping.get('ctx')
   584         ctx = mapping.get('ctx')
   585         if ctx is not None:
   585         if ctx is not None:
   586             return ctx
   586             return ctx
   587         fctx = mapping.get('fctx')
   587         fctx = mapping.get('fctx')
   588         if fctx is not None:
   588         if fctx is not None:
   589             return fctx.changectx()
   589             return fctx.changectx()
   590 
   590 
   591     def _getrepo(self, context, mapping, key):
   591     def _getrepo(self, mapping, key):
   592         ctx = self._getctx(context, mapping, 'ctx')
   592         ctx = self._getctx(mapping, 'ctx')
   593         if ctx is not None:
   593         if ctx is not None:
   594             return ctx.repo()
   594             return ctx.repo()
   595         return self._getsome(context, mapping, key)
   595         return self._getsome(mapping, key)
   596 
   596 
   597     _gettermap = {
   597     _gettermap = {
   598         'cache': _getsome,
   598         'cache': _getsome,
   599         'ctx': _getctx,
   599         'ctx': _getctx,
   600         'fctx': _getsome,
   600         'fctx': _getsome,