# HG changeset patch # User Yuya Nishihara # Date 1525316209 -32400 # 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 -r d4fae9a0ab1f -r 8221df643176 mercurial/formatter.py --- a/mercurial/formatter.py Thu May 03 11:53:56 2018 +0900 +++ b/mercurial/formatter.py Thu May 03 11:56:49 2018 +0900 @@ -198,6 +198,9 @@ 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 @@ 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', {})