comparison mercurial/formatter.py @ 38356:8221df643176

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().
author Yuya Nishihara <yuya@tcha.org>
date Thu, 03 May 2018 11:56:49 +0900
parents 8d6109b49b31
children 8399438bc7ef
comparison
equal deleted inserted replaced
38355:d4fae9a0ab1f 38356:8221df643176
196 '''insert context objects to be used to render template keywords''' 196 '''insert context objects to be used to render template keywords'''
197 ctxs = pycompat.byteskwargs(ctxs) 197 ctxs = pycompat.byteskwargs(ctxs)
198 assert all(k in {'ctx', 'fctx'} for k in ctxs) 198 assert all(k in {'ctx', 'fctx'} for k in ctxs)
199 if self._converter.storecontext: 199 if self._converter.storecontext:
200 self._item.update(ctxs) 200 self._item.update(ctxs)
201 def datahint(self):
202 '''set of field names to be referenced'''
203 return set()
201 def data(self, **data): 204 def data(self, **data):
202 '''insert data into item that's not shown in default output''' 205 '''insert data into item that's not shown in default output'''
203 data = pycompat.byteskwargs(data) 206 data = pycompat.byteskwargs(data)
204 self._item.update(data) 207 self._item.update(data)
205 def write(self, fields, deftext, *fielddata, **opts): 208 def write(self, fields, deftext, *fielddata, **opts):
409 if part not in self._parts: 412 if part not in self._parts:
410 return 413 return
411 ref = self._parts[part] 414 ref = self._parts[part]
412 self._out.write(self._t.render(ref, item)) 415 self._out.write(self._t.render(ref, item))
413 416
417 @util.propertycache
418 def _symbolsused(self):
419 return self._t.symbolsuseddefault()
420
421 def datahint(self):
422 '''set of field names to be referenced from the template'''
423 return self._symbolsused[0]
424
414 def end(self): 425 def end(self):
415 baseformatter.end(self) 426 baseformatter.end(self)
416 self._renderitem('docfooter', {}) 427 self._renderitem('docfooter', {})
417 428
418 @attr.s(frozen=True) 429 @attr.s(frozen=True)