Mercurial > hg
comparison tests/test-command-template.t @ 36669:80d7fb6c2dec
templater: add hint to template parse errors to help locate issues
Previously, we would print the error name and location, but this isn't as
helpful as we can be. Let's add a hint that shows the location where we
encountered the parse error.
Differential Revision: https://phab.mercurial-scm.org/D2608
author | Ryan McElroy <rmcelroy@fb.com> |
---|---|
date | Sat, 03 Mar 2018 14:23:40 -0800 |
parents | e80f8a134731 |
children | 1b179d151578 |
comparison
equal
deleted
inserted
replaced
36668:e77cee5de1c7 | 36669:80d7fb6c2dec |
---|---|
2764 hg: parse error at t:3: unmatched quotes | 2764 hg: parse error at t:3: unmatched quotes |
2765 [255] | 2765 [255] |
2766 | 2766 |
2767 $ hg log -T '{date' | 2767 $ hg log -T '{date' |
2768 hg: parse error at 1: unterminated template expansion | 2768 hg: parse error at 1: unterminated template expansion |
2769 ({date | |
2770 ^ here) | |
2769 [255] | 2771 [255] |
2770 $ hg log -T '{date(}' | 2772 $ hg log -T '{date(}' |
2771 hg: parse error at 7: not a prefix: end | 2773 hg: parse error at 7: not a prefix: end |
2774 ({date(} | |
2775 ^ here) | |
2772 [255] | 2776 [255] |
2773 $ hg log -T '{date)}' | 2777 $ hg log -T '{date)}' |
2774 hg: parse error at 5: invalid token | 2778 hg: parse error at 5: invalid token |
2779 ({date)} | |
2780 ^ here) | |
2775 [255] | 2781 [255] |
2776 $ hg log -T '{date date}' | 2782 $ hg log -T '{date date}' |
2777 hg: parse error at 6: invalid token | 2783 hg: parse error at 6: invalid token |
2784 ({date date} | |
2785 ^ here) | |
2778 [255] | 2786 [255] |
2779 | 2787 |
2780 $ hg log -T '{}' | 2788 $ hg log -T '{}' |
2781 hg: parse error at 2: not a prefix: end | 2789 hg: parse error at 2: not a prefix: end |
2790 ({} | |
2791 ^ here) | |
2782 [255] | 2792 [255] |
2783 $ hg debugtemplate -v '{()}' | 2793 $ hg debugtemplate -v '{()}' |
2784 (template | 2794 (template |
2785 (group | 2795 (group |
2786 None)) | 2796 None)) |
2825 | 2835 |
2826 Error in nested template: | 2836 Error in nested template: |
2827 | 2837 |
2828 $ hg log -T '{"date' | 2838 $ hg log -T '{"date' |
2829 hg: parse error at 2: unterminated string | 2839 hg: parse error at 2: unterminated string |
2840 ({"date | |
2841 ^ here) | |
2830 [255] | 2842 [255] |
2831 | 2843 |
2832 $ hg log -T '{"foo{date|?}"}' | 2844 $ hg log -T '{"foo{date|?}"}' |
2833 hg: parse error at 11: syntax error | 2845 hg: parse error at 11: syntax error |
2846 ({"foo{date|?}"} | |
2847 ^ here) | |
2834 [255] | 2848 [255] |
2835 | 2849 |
2836 Thrown an error if a template function doesn't exist | 2850 Thrown an error if a template function doesn't exist |
2837 | 2851 |
2838 $ hg tip --template '{foo()}\n' | 2852 $ hg tip --template '{foo()}\n' |
3360 (integer '4'))) | 3374 (integer '4'))) |
3361 (string '\n')) | 3375 (string '\n')) |
3362 -4 | 3376 -4 |
3363 $ hg debugtemplate '{(-)}\n' | 3377 $ hg debugtemplate '{(-)}\n' |
3364 hg: parse error at 3: not a prefix: ) | 3378 hg: parse error at 3: not a prefix: ) |
3379 ({(-)}\n | |
3380 ^ here) | |
3365 [255] | 3381 [255] |
3366 $ hg debugtemplate '{(-a)}\n' | 3382 $ hg debugtemplate '{(-a)}\n' |
3367 hg: parse error: negation needs an integer argument | 3383 hg: parse error: negation needs an integer argument |
3368 [255] | 3384 [255] |
3369 | 3385 |
3525 foo | 3541 foo |
3526 $ hg log -r 2 -T "{if(rev, '{if(rev, r\'foo\')}')}"'\n' | 3542 $ hg log -r 2 -T "{if(rev, '{if(rev, r\'foo\')}')}"'\n' |
3527 foo | 3543 foo |
3528 $ hg log -r 2 -T '{if(rev, "{if(rev, \")}")}\n' | 3544 $ hg log -r 2 -T '{if(rev, "{if(rev, \")}")}\n' |
3529 hg: parse error at 21: unterminated string | 3545 hg: parse error at 21: unterminated string |
3546 ({if(rev, "{if(rev, \")}")}\n | |
3547 ^ here) | |
3530 [255] | 3548 [255] |
3531 $ hg log -r 2 -T '{if(rev, \"\\"")}\n' | 3549 $ hg log -r 2 -T '{if(rev, \"\\"")}\n' |
3532 hg: parse error: trailing \ in string | 3550 hg: parse error: trailing \ in string |
3533 [255] | 3551 [255] |
3534 $ hg log -r 2 -T '{if(rev, r\"\\"")}\n' | 3552 $ hg log -r 2 -T '{if(rev, r\"\\"")}\n' |