Mercurial > vim
changeset 24968:d81a5c3a3aa6 v8.2.3021
patch 8.2.3021: spaces allowed between option name and "!", "?", etc.
Commit: https://github.com/vim/vim/commit/208f0b48b2c616b29f377a1408290111ed2663f7
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Jun 20 12:40:08 2021 +0200
patch 8.2.3021: spaces allowed between option name and "!", "?", etc.
Problem: Spaces allowed between option name and "!", "?", etc.
Solution: Disallow spaces in Vim9 script, it was not documented.
(closes #8408)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 20 Jun 2021 12:45:05 +0200 |
parents | 1ed2acf10c0d |
children | 445ed84ae76a |
files | src/option.c src/testdir/test_vim9_script.vim src/version.c |
diffstat | 3 files changed, 26 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/option.c +++ b/src/option.c @@ -1306,9 +1306,10 @@ do_set( // remember character after option name afterchar = arg[len]; - // skip white space, allow ":set ai ?" - while (VIM_ISWHITE(arg[len])) - ++len; + if (!in_vim9script()) + // skip white space, allow ":set ai ?", ":set hlsearch !" + while (VIM_ISWHITE(arg[len])) + ++len; adding = FALSE; prepending = FALSE;
--- a/src/testdir/test_vim9_script.vim +++ b/src/testdir/test_vim9_script.vim @@ -3937,6 +3937,26 @@ def Test_mapping_line_number() delfunc g:FuncA enddef +def Test_option_modifier() + var lines =<< trim END + set hlsearch & hlsearch ! + call assert_equal(1, &hlsearch) + END + CheckScriptSuccess(lines) + + lines =<< trim END + vim9script + set hlsearch & + END + CheckScriptFailure(lines, 'E518:') + + lines =<< trim END + vim9script + set hlsearch & hlsearch ! + END + CheckScriptFailure(lines, 'E518:') +enddef + " Keep this last, it messes up highlighting. def Test_substitute_cmd() new