changeset 21822:028a48105191

templater: add symbol to error This patch makes it easier to debug writing templater functions by telling the user exactly what was sent to the templater.
author Ryan McElroy <rmcelroy@fb.com>
date Thu, 12 Jun 2014 18:07:21 -0700
parents 4a445dc5abff
children 57c70d3ad1c9
files mercurial/templater.py tests/test-command-template.t
diffstat 2 files changed, 7 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/templater.py	Thu Jun 12 17:53:37 2014 -0700
+++ b/mercurial/templater.py	Thu Jun 12 18:07:21 2014 -0700
@@ -111,7 +111,7 @@
 def getsymbol(exp):
     if exp[0] == 'symbol':
         return exp[1]
-    raise error.ParseError(_("expected a symbol"))
+    raise error.ParseError(_("expected a symbol, got '%s'") % exp[0])
 
 def getlist(x):
     if not x:
--- a/tests/test-command-template.t	Thu Jun 12 17:53:37 2014 -0700
+++ b/tests/test-command-template.t	Thu Jun 12 18:07:21 2014 -0700
@@ -1911,3 +1911,9 @@
   |
   o  line 1
      line 2
+
+Test bad template with better error message
+
+  $ hg log -Gv -R a --template '{desc|user()}'
+  hg: parse error: expected a symbol, got 'func'
+  [255]