comparison mercurial/cmdutil.py @ 35487:817a3d20dd01

templater: register keywords to defaults table Since the keywords are permanent, there should be no need to pass them by a temporary mapping.
author Yuya Nishihara <yuya@tcha.org>
date Fri, 22 Dec 2017 21:19:29 +0900
parents f1c54d003327
children a7f7eff4ec08
comparison
equal deleted inserted replaced
35486:c240657febb7 35487:817a3d20dd01
1842 buffered=False): 1842 buffered=False):
1843 diffopts = diffopts or {} 1843 diffopts = diffopts or {}
1844 1844
1845 changeset_printer.__init__(self, ui, repo, matchfn, diffopts, buffered) 1845 changeset_printer.__init__(self, ui, repo, matchfn, diffopts, buffered)
1846 tres = formatter.templateresources(ui, repo) 1846 tres = formatter.templateresources(ui, repo)
1847 self.t = formatter.loadtemplater(ui, tmplspec, resources=tres, 1847 self.t = formatter.loadtemplater(ui, tmplspec,
1848 defaults=templatekw.keywords,
1849 resources=tres,
1848 cache=templatekw.defaulttempl) 1850 cache=templatekw.defaulttempl)
1849 self._counter = itertools.count() 1851 self._counter = itertools.count()
1850 self.cache = tres['cache'] # shared with _graphnodeformatter() 1852 self.cache = tres['cache'] # shared with _graphnodeformatter()
1851 1853
1852 self._tref = tmplspec.ref 1854 self._tref = tmplspec.ref
1884 return super(changeset_templater, self).close() 1886 return super(changeset_templater, self).close()
1885 1887
1886 def _show(self, ctx, copies, matchfn, hunksfilterfn, props): 1888 def _show(self, ctx, copies, matchfn, hunksfilterfn, props):
1887 '''show a single changeset or file revision''' 1889 '''show a single changeset or file revision'''
1888 props = props.copy() 1890 props = props.copy()
1889 props.update(templatekw.keywords)
1890 props['ctx'] = ctx 1891 props['ctx'] = ctx
1891 props['index'] = index = next(self._counter) 1892 props['index'] = index = next(self._counter)
1892 props['revcache'] = {'copies': copies} 1893 props['revcache'] = {'copies': copies}
1893 props = pycompat.strkwargs(props) 1894 props = pycompat.strkwargs(props)
1894 1895
2656 2657
2657 spec = templater.unquotestring(spec) 2658 spec = templater.unquotestring(spec)
2658 tres = formatter.templateresources(ui) 2659 tres = formatter.templateresources(ui)
2659 if isinstance(displayer, changeset_templater): 2660 if isinstance(displayer, changeset_templater):
2660 tres['cache'] = displayer.cache # reuse cache of slow templates 2661 tres['cache'] = displayer.cache # reuse cache of slow templates
2661 templ = formatter.maketemplater(ui, spec, resources=tres) 2662 templ = formatter.maketemplater(ui, spec, defaults=templatekw.keywords,
2662 props = templatekw.keywords.copy() 2663 resources=tres)
2663 def formatnode(repo, ctx): 2664 def formatnode(repo, ctx):
2664 props['ctx'] = ctx 2665 props = {'ctx': ctx, 'repo': repo, 'revcache': {}}
2665 props['repo'] = repo
2666 props['revcache'] = {}
2667 return templ.render(props) 2666 return templ.render(props)
2668 return formatnode 2667 return formatnode
2669 2668
2670 def displaygraph(ui, repo, dag, displayer, edgefn, getrenamed=None, 2669 def displaygraph(ui, repo, dag, displayer, edgefn, getrenamed=None,
2671 filematcher=None, props=None): 2670 filematcher=None, props=None):