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', {})