formatter: add support for separator template
authorYuya Nishihara <yuya@tcha.org>
Sat, 22 Apr 2017 21:50:51 +0900
changeset 32950 5100ce217dfa
parent 32949 13eebc189ff3
child 32951 050efe9a1644
formatter: add support for separator template This seems useful for writing JSON template.
mercurial/formatter.py
tests/test-branches.t
--- 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"
   {