Mercurial > hg
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) |