##// END OF EJS Templates
formatter: unblock storing fctx as a template resource...
Yuya Nishihara -
r36999:939e0983 default
parent child Browse files
Show More
@@ -188,7 +188,7 b' class baseformatter(object):'
188 def context(self, **ctxs):
188 def context(self, **ctxs):
189 '''insert context objects to be used to render template keywords'''
189 '''insert context objects to be used to render template keywords'''
190 ctxs = pycompat.byteskwargs(ctxs)
190 ctxs = pycompat.byteskwargs(ctxs)
191 assert all(k == 'ctx' for k in ctxs)
191 assert all(k in {'ctx', 'fctx'} for k in ctxs)
192 if self._converter.storecontext:
192 if self._converter.storecontext:
193 self._item.update(ctxs)
193 self._item.update(ctxs)
194 def data(self, **data):
194 def data(self, **data):
@@ -395,13 +395,11 b' class templateformatter(baseformatter):'
395 return
395 return
396 ref = self._parts[part]
396 ref = self._parts[part]
397
397
398 # TODO: add support for filectx
399 props = {}
398 props = {}
400 # explicitly-defined fields precede templatekw
399 # explicitly-defined fields precede templatekw
401 props.update(item)
400 props.update(item)
402 if 'ctx' in item:
401 if 'ctx' in item or 'fctx' in item:
403 # but template resources must be always available
402 # but template resources must be always available
404 props['repo'] = props['ctx'].repo()
405 props['revcache'] = {}
403 props['revcache'] = {}
406 props = pycompat.strkwargs(props)
404 props = pycompat.strkwargs(props)
407 g = self._t(ref, **props)
405 g = self._t(ref, **props)
@@ -513,10 +511,25 b' def templateresources(ui, repo=None):'
513 return v
511 return v
514 return resmap.get(key)
512 return resmap.get(key)
515
513
514 def getctx(context, mapping, key):
515 ctx = mapping.get('ctx')
516 if ctx is not None:
517 return ctx
518 fctx = mapping.get('fctx')
519 if fctx is not None:
520 return fctx.changectx()
521
522 def getrepo(context, mapping, key):
523 ctx = getctx(context, mapping, 'ctx')
524 if ctx is not None:
525 return ctx.repo()
526 return getsome(context, mapping, key)
527
516 return {
528 return {
517 'cache': getsome,
529 'cache': getsome,
518 'ctx': getsome,
530 'ctx': getctx,
519 'repo': getsome,
531 'fctx': getsome,
532 'repo': getrepo,
520 'revcache': getsome, # per-ctx cache; set later
533 'revcache': getsome, # per-ctx cache; set later
521 'ui': getsome,
534 'ui': getsome,
522 }
535 }
General Comments 0
You need to be logged in to leave comments. Login now