formatter: add support for separator template
This seems useful for writing JSON template.
--- a/mercurial/formatter.py Sat Apr 22 21:46:14 2017 +0900
+++ b/mercurial/formatter.py Sat Apr 22 21:50:51 2017 +0900
@@ -351,7 +351,7 @@
self._tref = spec.ref
self._t = loadtemplater(ui, spec, cache=templatekw.defaulttempl)
self._parts = templatepartsmap(spec, self._t,
- ['docheader', 'docfooter'])
+ ['docheader', 'docfooter', 'separator'])
self._counter = itertools.count()
self._cache = {} # for templatekw/funcs to store reusable data
self._renderitem('docheader', {})
@@ -364,7 +364,9 @@
def _showitem(self):
item = self._item.copy()
- item['index'] = next(self._counter)
+ item['index'] = index = next(self._counter)
+ if index > 0:
+ self._renderitem('separator', {})
self._renderitem(self._tref, item)
def _renderitem(self, part, item):
--- a/tests/test-branches.t Sat Apr 22 21:46:14 2017 +0900
+++ b/tests/test-branches.t Sat Apr 22 21:50:51 2017 +0900
@@ -533,7 +533,8 @@
$ cat <<'EOF' > "$TESTTMP/map-myjson"
> docheader = '\{\n'
> docfooter = '\n}\n'
- > branches = '{ifeq(index, 0, "", ",\n")} {dict(branch, node|short)|json}'
+ > separator = ',\n'
+ > branches = ' {dict(branch, node|short)|json}'
> EOF
$ hg branches -T "$TESTTMP/map-myjson"
{