1
0
forked from aniani/vim

patch 8.2.2480: Vim9: some errors for white space do not show context

Problem:    Vim9: some errors for white space do not show context.
Solution:   Include the text at the error.
This commit is contained in:
Bram Moolenaar 2021-02-07 15:28:09 +01:00
parent 00385114db
commit c3fc75db02
8 changed files with 22 additions and 18 deletions

View File

@ -970,7 +970,7 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
} }
if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1])) if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1]))
{ {
semsg(_(e_white_space_required_after_str), ":"); semsg(_(e_white_space_required_after_str_str), ":", *arg);
clear_tv(&tvkey); clear_tv(&tvkey);
goto failret; goto failret;
} }
@ -1012,7 +1012,7 @@ eval_dict(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int literal)
{ {
if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1])) if (vim9script && (*arg)[1] != NUL && !VIM_ISWHITE((*arg)[1]))
{ {
semsg(_(e_white_space_required_after_str), ","); semsg(_(e_white_space_required_after_str_str), ",", *arg);
goto failret; goto failret;
} }
*arg = skipwhite(*arg + 1); *arg = skipwhite(*arg + 1);

View File

@ -175,8 +175,8 @@ EXTERN char e_separator_mismatch_str[]
INIT(= N_("E1067: Separator mismatch: %s")); INIT(= N_("E1067: Separator mismatch: %s"));
EXTERN char e_no_white_space_allowed_before_str[] EXTERN char e_no_white_space_allowed_before_str[]
INIT(= N_("E1068: No white space allowed before '%s'")); INIT(= N_("E1068: No white space allowed before '%s'"));
EXTERN char e_white_space_required_after_str[] EXTERN char e_white_space_required_after_str_str[]
INIT(= N_("E1069: White space required after '%s'")); INIT(= N_("E1069: White space required after '%s': %s"));
EXTERN char e_missing_from[] EXTERN char e_missing_from[]
INIT(= N_("E1070: Missing \"from\"")); INIT(= N_("E1070: Missing \"from\""));
EXTERN char e_invalid_string_after_from[] EXTERN char e_invalid_string_after_from[]

View File

@ -1311,7 +1311,7 @@ eval_list(char_u **arg, typval_T *rettv, evalarg_T *evalarg, int do_error)
{ {
if (vim9script && !IS_WHITE_OR_NUL((*arg)[1]) && (*arg)[1] != ']') if (vim9script && !IS_WHITE_OR_NUL((*arg)[1]) && (*arg)[1] != ']')
{ {
semsg(_(e_white_space_required_after_str), ","); semsg(_(e_white_space_required_after_str_str), ",", *arg);
goto failret; goto failret;
} }
*arg = skipwhite(*arg + 1); *arg = skipwhite(*arg + 1);

View File

@ -126,7 +126,7 @@ one_function_arg(
++p; ++p;
if (!skip && !VIM_ISWHITE(*p)) if (!skip && !VIM_ISWHITE(*p))
{ {
semsg(_(e_white_space_required_after_str), ":"); semsg(_(e_white_space_required_after_str_str), ":", p - 1);
return arg; return arg;
} }
type = skipwhite(p); type = skipwhite(p);
@ -297,7 +297,7 @@ get_function_args(
if (!skip && in_vim9script() if (!skip && in_vim9script()
&& !IS_WHITE_OR_NUL(*p) && *p != endchar) && !IS_WHITE_OR_NUL(*p) && *p != endchar)
{ {
semsg(_(e_white_space_required_after_str), ","); semsg(_(e_white_space_required_after_str_str), ",", p - 1);
goto err_ret; goto err_ret;
} }
} }
@ -487,7 +487,7 @@ skip_arrow(
if (white_error != NULL && !VIM_ISWHITE(s[1])) if (white_error != NULL && !VIM_ISWHITE(s[1]))
{ {
*white_error = TRUE; *white_error = TRUE;
semsg(_(e_white_space_required_after_str), ":"); semsg(_(e_white_space_required_after_str_str), ":", s);
return NULL; return NULL;
} }
s = skipwhite(s + 1); s = skipwhite(s + 1);
@ -884,7 +884,7 @@ get_func_tv(
break; break;
if (vim9script && !IS_WHITE_OR_NUL(argp[1])) if (vim9script && !IS_WHITE_OR_NUL(argp[1]))
{ {
semsg(_(e_white_space_required_after_str), ","); semsg(_(e_white_space_required_after_str_str), ",", argp);
ret = FAIL; ret = FAIL;
break; break;
} }

View File

@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
2480,
/**/ /**/
2479, 2479,
/**/ /**/

View File

@ -2807,7 +2807,7 @@ compile_arguments(char_u **arg, cctx_T *cctx, int *argcount)
{ {
++p; ++p;
if (*p != NUL && !VIM_ISWHITE(*p)) if (*p != NUL && !VIM_ISWHITE(*p))
semsg(_(e_white_space_required_after_str), ","); semsg(_(e_white_space_required_after_str_str), ",", p - 1);
} }
else else
must_end = TRUE; must_end = TRUE;
@ -3073,7 +3073,7 @@ compile_list(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
++p; ++p;
if (*p != ']' && !IS_WHITE_OR_NUL(*p)) if (*p != ']' && !IS_WHITE_OR_NUL(*p))
{ {
semsg(_(e_white_space_required_after_str), ","); semsg(_(e_white_space_required_after_str_str), ",", p - 1);
return FAIL; return FAIL;
} }
} }
@ -3242,7 +3242,7 @@ compile_dict(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
whitep = *arg + 1; whitep = *arg + 1;
if (!IS_WHITE_OR_NUL(*whitep)) if (!IS_WHITE_OR_NUL(*whitep))
{ {
semsg(_(e_white_space_required_after_str), ":"); semsg(_(e_white_space_required_after_str_str), ":", *arg);
return FAIL; return FAIL;
} }
@ -3279,10 +3279,10 @@ compile_dict(char_u **arg, cctx_T *cctx, ppconst_T *ppconst)
whitep = *arg + 1; whitep = *arg + 1;
if (!IS_WHITE_OR_NUL(*whitep)) if (!IS_WHITE_OR_NUL(*whitep))
{ {
semsg(_(e_white_space_required_after_str), ","); semsg(_(e_white_space_required_after_str_str), ",", *arg);
return FAIL; return FAIL;
} }
*arg = skipwhite(*arg + 1); *arg = skipwhite(whitep);
} }
*arg = *arg + 1; *arg = *arg + 1;
@ -5711,7 +5711,7 @@ compile_lhs(
// parse optional type: "let var: type = expr" // parse optional type: "let var: type = expr"
if (!VIM_ISWHITE(var_end[1])) if (!VIM_ISWHITE(var_end[1]))
{ {
semsg(_(e_white_space_required_after_str), ":"); semsg(_(e_white_space_required_after_str_str), ":", var_end);
return FAIL; return FAIL;
} }
p = skipwhite(var_end + 1); p = skipwhite(var_end + 1);

View File

@ -629,7 +629,7 @@ vim9_declare_scriptvar(exarg_T *eap, char_u *arg)
} }
if (!VIM_ISWHITE(p[1])) if (!VIM_ISWHITE(p[1]))
{ {
semsg(_(e_white_space_required_after_str), ":"); semsg(_(e_white_space_required_after_str_str), ":", p);
return arg + STRLEN(arg); return arg + STRLEN(arg);
} }
name = vim_strnsave(arg, p - arg); name = vim_strnsave(arg, p - arg);

View File

@ -788,7 +788,8 @@ parse_type(char_u **arg, garray_T *type_gap, int give_error)
if (!VIM_ISWHITE(*p)) if (!VIM_ISWHITE(*p))
{ {
if (give_error) if (give_error)
semsg(_(e_white_space_required_after_str), ","); semsg(_(e_white_space_required_after_str_str),
",", p - 1);
return NULL; return NULL;
} }
} }
@ -815,7 +816,8 @@ parse_type(char_u **arg, garray_T *type_gap, int give_error)
// parse return type // parse return type
++*arg; ++*arg;
if (!VIM_ISWHITE(**arg) && give_error) if (!VIM_ISWHITE(**arg) && give_error)
semsg(_(e_white_space_required_after_str), ":"); semsg(_(e_white_space_required_after_str_str),
":", *arg - 1);
*arg = skipwhite(*arg); *arg = skipwhite(*arg);
ret_type = parse_type(arg, type_gap, give_error); ret_type = parse_type(arg, type_gap, give_error);
if (ret_type == NULL) if (ret_type == NULL)