diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-01-01 19:17:55 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-01-01 19:17:55 +0100 |
commit | e7a73e07625b64a40671a0007ad38a34cbe9d1ee (patch) | |
tree | 178142087cbd6bda86fed3cf18d5cc20788aa570 | |
parent | b8ba9b919708f44b718c17f1fec85b1df8050a17 (diff) |
patch 8.2.2266: Vim9: it can be hard to see where white space is missingv8.2.2266
Problem: Vim9: it can be hard to see where white space is missing.
Solution: Mention the text where the error was seen. (closes #7580)
-rw-r--r-- | src/errors.h | 4 | ||||
-rw-r--r-- | src/eval.c | 6 | ||||
-rw-r--r-- | src/evalvars.c | 3 | ||||
-rw-r--r-- | src/testdir/test_vim9_expr.vim | 22 | ||||
-rw-r--r-- | src/userfunc.c | 4 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9compile.c | 18 |
7 files changed, 35 insertions, 24 deletions
diff --git a/src/errors.h b/src/errors.h index 6f4ac0e1a7..eb7239bd94 100644 --- a/src/errors.h +++ b/src/errors.h @@ -41,8 +41,8 @@ EXTERN char e_syntax_error_at_str[] INIT(= N_("E1002: Syntax error at %s")); EXTERN char e_missing_return_value[] INIT(= N_("E1003: Missing return value")); -EXTERN char e_white_space_required_before_and_after_str[] - INIT(= N_("E1004: White space required before and after '%s'")); +EXTERN char e_white_space_required_before_and_after_str_at_str[] + INIT(= N_("E1004: White space required before and after '%s' at \"%s\"")); EXTERN char e_too_many_argument_types[] INIT(= N_("E1005: Too many argument types")); EXTERN char e_str_is_used_as_argument[] diff --git a/src/eval.c b/src/eval.c index ac3e53f582..b4b04eb639 100644 --- a/src/eval.c +++ b/src/eval.c @@ -3778,7 +3778,8 @@ eval_index( return FAIL; else if (vim9 && **arg == ':') { - semsg(_(e_white_space_required_before_and_after_str), ":"); + semsg(_(e_white_space_required_before_and_after_str_at_str), + ":", *arg); clear_tv(&var1); return FAIL; } @@ -3799,7 +3800,8 @@ eval_index( ++*arg; if (vim9 && !IS_WHITE_OR_NUL(**arg) && **arg != ']') { - semsg(_(e_white_space_required_before_and_after_str), ":"); + semsg(_(e_white_space_required_before_and_after_str_at_str), + ":", *arg - 1); if (!empty1) clear_tv(&var1); return FAIL; diff --git a/src/evalvars.c b/src/evalvars.c index 9f84d76efa..346031ec56 100644 --- a/src/evalvars.c +++ b/src/evalvars.c @@ -863,7 +863,8 @@ ex_let(exarg_T *eap) || !IS_WHITE_OR_NUL(*expr))) { vim_strncpy(op, expr - len, len); - semsg(_(e_white_space_required_before_and_after_str), op); + semsg(_(e_white_space_required_before_and_after_str_at_str), + op, argend); i = FAIL; } diff --git a/src/testdir/test_vim9_expr.vim b/src/testdir/test_vim9_expr.vim index 8fe041899c..b7b9326307 100644 --- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -108,7 +108,7 @@ def Test_expr1_trinary_vimscript() vim9script var name = v:true?1:2 END - CheckScriptFailure(lines, 'E1004:', 2) + CheckScriptFailure(lines, 'E1004: White space required before and after ''?'' at "?1:2"', 2) lines =<< trim END vim9script var name = v:true? 1 : 2 @@ -123,7 +123,7 @@ def Test_expr1_trinary_vimscript() vim9script var name = v:true ? 1: 2 END - CheckScriptFailure(lines, 'E1004:', 2) + CheckScriptFailure(lines, 'E1004: White space required before and after '':'' at ": 2"', 2) lines =<< trim END vim9script var name = v:true ? 1 :2 @@ -333,7 +333,7 @@ def Test_expr2_vimscript() vim9script var name = v:true||v:true END - CheckScriptFailure(lines, 'E1004:', 2) + CheckScriptFailure(lines, 'E1004: White space required before and after ''||'' at "||v:true"', 2) lines =<< trim END vim9script var name = v:true ||v:true @@ -454,7 +454,7 @@ def Test_expr3_vimscript() vim9script var name = v:true &&v:true END - CheckScriptFailure(lines, 'E1004:', 2) + CheckScriptFailure(lines, 'E1004: White space required before and after ''&&'' at "&&v:true"', 2) lines =<< trim END vim9script var name = v:true&& v:true @@ -920,7 +920,7 @@ def Test_expr4_vim9script() vim9script echo 2>3 END - CheckScriptFailure(lines, 'E1004:', 2) + CheckScriptFailure(lines, 'E1004: White space required before and after ''>'' at ">3"', 2) lines =<< trim END vim9script echo 2 >3 @@ -940,7 +940,7 @@ def Test_expr4_vim9script() vim9script echo 2 !=3 END - CheckScriptFailure(lines, 'E1004:', 2) + CheckScriptFailure(lines, 'E1004: White space required before and after ''!'' at "!=3"', 2) lines =<< trim END vim9script echo 2!= 3 @@ -1192,7 +1192,7 @@ def Test_expr5_vim9script() vim9script echo 'a'..'b' END - CheckScriptFailure(lines, 'E1004:', 2) + CheckScriptFailure(lines, 'E1004: White space required before and after ''..'' at "..''b''"', 2) lines =<< trim END vim9script echo 'a' ..'b' @@ -1729,7 +1729,8 @@ def Test_expr7_list() var a = 1 var b = 2 END - CheckDefAndScriptFailure(lines + ['echo numbers[1:b]'], 'E1004:', 4) + CheckDefAndScriptFailure(lines + ['echo numbers[1:b]'], + 'E1004: White space required before and after '':'' at ":b]"', 4) CheckDefAndScriptFailure(lines + ['echo numbers[1: b]'], 'E1004:', 4) CheckDefAndScriptFailure(lines + ['echo numbers[a :b]'], 'E1004:', 4) enddef @@ -1876,7 +1877,7 @@ def Test_expr7_lambda() CheckDefAndScriptSuccess(lines) CheckDefFailure(["var Ref = (a)=>a + 1"], 'E1004:') - CheckDefFailure(["var Ref = (a)=> a + 1"], 'E1004:') + CheckDefFailure(["var Ref = (a)=> a + 1"], 'E1004: White space required before and after ''=>'' at "=> a + 1"') CheckDefFailure(["var Ref = (a) =>a + 1"], 'E1004:') CheckDefFailure(["filter([1, 2], (k,v) => 1)"], 'E1069:', 1) @@ -1976,7 +1977,8 @@ def Test_expr7_new_lambda() CheckDefAndScriptFailure(["var Ref = (a)=>a + 1"], 'E1004:') CheckDefAndScriptFailure(["var Ref = (a)=> a + 1"], 'E1004:') - CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"], 'E1004:') + CheckDefAndScriptFailure(["var Ref = (a) =>a + 1"], + 'E1004: White space required before and after ''=>'' at " =>a + 1"') CheckDefFailure(["var Ref: func(number): number = (a: number): string => 'x'"], 'E1012:') CheckDefFailure(["var Ref: func(number): string = (a: number): string => 99"], 'E1012:') diff --git a/src/userfunc.c b/src/userfunc.c index 5fab412b40..ed7d1d605a 100644 --- a/src/userfunc.c +++ b/src/userfunc.c @@ -501,8 +501,8 @@ skip_arrow( || !IS_WHITE_OR_NUL(s[1]))) { *white_error = TRUE; - semsg(_(e_white_space_required_before_and_after_str), - equal_arrow ? "=>" : "->"); + semsg(_(e_white_space_required_before_and_after_str_at_str), + equal_arrow ? "=>" : "->", bef); return NULL; } return skipwhite(s + 1); diff --git a/src/version.c b/src/version.c index 770c1c75a1..493dece2b1 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2266, +/**/ 2265, /**/ 2264, diff --git a/src/vim9compile.c b/src/vim9compile.c index 045061e1c8..19d8473fb7 100644 --- a/src/vim9compile.c +++ b/src/vim9compile.c @@ -3656,7 +3656,8 @@ compile_subscript( return FAIL; if (**arg == ':') { - semsg(_(e_white_space_required_before_and_after_str), ":"); + semsg(_(e_white_space_required_before_and_after_str_at_str), + ":", *arg); return FAIL; } if (may_get_next_line_error(p, arg, cctx) == FAIL) @@ -3669,7 +3670,8 @@ compile_subscript( ++*arg; if (!IS_WHITE_OR_NUL(**arg) && **arg != ']') { - semsg(_(e_white_space_required_before_and_after_str), ":"); + semsg(_(e_white_space_required_before_and_after_str_at_str), + ":", *arg); return FAIL; } *arg = skipwhite(*arg); @@ -4067,7 +4069,7 @@ error_white_both(char_u *op, int len) char_u buf[10]; vim_strncpy(buf, op, len); - semsg(_(e_white_space_required_before_and_after_str), buf); + semsg(_(e_white_space_required_before_and_after_str_at_str), buf, op); } /* @@ -4434,7 +4436,8 @@ compile_and_or( if (!IS_WHITE_OR_NUL(**arg) || !IS_WHITE_OR_NUL(p[2])) { - semsg(_(e_white_space_required_before_and_after_str), op); + semsg(_(e_white_space_required_before_and_after_str_at_str), + op, *arg); return FAIL; } @@ -4608,8 +4611,8 @@ compile_expr1(char_u **arg, cctx_T *cctx, ppconst_T *ppconst) if (!IS_WHITE_OR_NUL(**arg) || !IS_WHITE_OR_NUL(p[1 + op_falsy])) { - semsg(_(e_white_space_required_before_and_after_str), - op_falsy ? "??" : "?"); + semsg(_(e_white_space_required_before_and_after_str_at_str), + op_falsy ? "??" : "?", *arg); return FAIL; } @@ -4695,7 +4698,8 @@ compile_expr1(char_u **arg, cctx_T *cctx, ppconst_T *ppconst) if (!IS_WHITE_OR_NUL(**arg) || !IS_WHITE_OR_NUL(p[1])) { - semsg(_(e_white_space_required_before_and_after_str), ":"); + semsg(_(e_white_space_required_before_and_after_str_at_str), + ":", p); return FAIL; } |