Mercurial > vim
changeset 24176:12378fbc99bc v8.2.2629
patch 8.2.2629: Vim9: error for #{{ is not desired
Commit: https://github.com/vim/vim/commit/a0399efa72380115a3eb650544dd64e459476bd2
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Mar 20 15:00:01 2021 +0100
patch 8.2.2629: Vim9: error for #{{ is not desired
Problem: Vim9: error for #{{ is not desired.
Solution: Adjust the checks. (closes https://github.com/vim/vim/issues/7990)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 20 Mar 2021 15:15:02 +0100 |
parents | 96522ca7aac2 |
children | db3a2032bfac |
files | src/errors.h src/ex_docmd.c src/testdir/test_vim9_expr.vim src/version.c src/vim9script.c |
diffstat | 5 files changed, 12 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/errors.h +++ b/src/errors.h @@ -376,4 +376,4 @@ EXTERN char e_argument_already_declared_ EXTERN char e_import_as_name_not_supported_here[] INIT(= N_("E1169: 'import * as {name}' not supported here")); EXTERN char e_cannot_use_hash_curly_to_start_comment[] - INIT(= N_("E1170: 'Cannot use #{ to start a comment")); + INIT(= N_("E1170: Cannot use #{ to start a comment"));
--- a/src/ex_docmd.c +++ b/src/ex_docmd.c @@ -5234,7 +5234,8 @@ ends_excmd2(char_u *cmd_start UNUSED, ch return TRUE; #ifdef FEAT_EVAL if (in_vim9script()) - return c == '#' && cmd[1] != '{' + // # starts a comment, #{ might be a mistake, #{{ can start a fold + return c == '#' && (cmd[1] != '{' || cmd[2] == '{') && (cmd == cmd_start || VIM_ISWHITE(cmd[-1])); #endif return c == '"';
--- a/src/testdir/test_vim9_expr.vim +++ b/src/testdir/test_vim9_expr.vim @@ -2155,6 +2155,10 @@ def Test_expr7_dict() # automatic conversion from number to string var n = 123 var dictnr = {[n]: 1} + + # comment to start fold is OK + var x1: number #{{ fold + var x2 = 9 #{{ fold END CheckDefAndScriptSuccess(lines)
--- 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 */ /**/ + 2629, +/**/ 2628, /**/ 2627,
--- a/src/vim9script.c +++ b/src/vim9script.c @@ -120,7 +120,7 @@ not_in_vim9(exarg_T *eap) int vim9_bad_comment(char_u *p) { - if (p[0] == '#' && p[1] == '{') + if (p[0] == '#' && p[1] == '{' && p[2] != '{') { emsg(_(e_cannot_use_hash_curly_to_start_comment)); return TRUE; @@ -129,13 +129,13 @@ vim9_bad_comment(char_u *p) } /* - * Return TRUE if "p" points at a "#" not followed by '{'. + * Return TRUE if "p" points at a "#" not followed by one '{'. * Does not check for white space. */ int vim9_comment_start(char_u *p) { - return p[0] == '#' && p[1] != '{'; + return p[0] == '#' && (p[1] != '{' || p[2] == '{'); } #if defined(FEAT_EVAL) || defined(PROTO)