# HG changeset patch # User Yuya Nishihara # Date 2018-05-03 02:56:49 # Node ID 8221df64317649aace611bd37ac0aed644aa6130 # Parent d4fae9a0ab1f5c28e7146fcbbb030b7027868744 formatter: provide hint of referenced field names I don't like the function name, but I call it datahint() for consistency with another function I'll add later, fm.contexthint(). diff --git a/mercurial/formatter.py b/mercurial/formatter.py --- a/mercurial/formatter.py +++ b/mercurial/formatter.py @@ -198,6 +198,9 @@ class baseformatter(object): assert all(k in {'ctx', 'fctx'} for k in ctxs) if self._converter.storecontext: self._item.update(ctxs) + def datahint(self): + '''set of field names to be referenced''' + return set() def data(self, **data): '''insert data into item that's not shown in default output''' data = pycompat.byteskwargs(data) @@ -411,6 +414,14 @@ class templateformatter(baseformatter): ref = self._parts[part] self._out.write(self._t.render(ref, item)) + @util.propertycache + def _symbolsused(self): + return self._t.symbolsuseddefault() + + def datahint(self): + '''set of field names to be referenced from the template''' + return self._symbolsused[0] + def end(self): baseformatter.end(self) self._renderitem('docfooter', {})