0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.2.3965: Vim9: no easy way to check if Vim9 script is supported

Problem:    Vim9: no easy way to check if Vim9 script is supported.
Solution:   Add has('vim9script').
This commit is contained in:
Bram Moolenaar 2022-01-01 12:17:00 +00:00
parent 654b729c4c
commit b79ee0c299
4 changed files with 22 additions and 5 deletions

View File

@ -391,8 +391,8 @@ later. Example: >
endif endif
enddef enddef
If you would do it like this you get an error at compile time that If you do it like this, you get an error at compile time that "PluginFunc"
"PluginFunc" does not exist, even when "g:loaded_plugin" does not exist: > does not exist, even when "g:loaded_plugin" does not exist: >
def CallPluginFunc() def CallPluginFunc()
if exists('g:loaded_plugin') if exists('g:loaded_plugin')
PluginFunc() # Error - function not found PluginFunc() # Error - function not found
@ -1411,9 +1411,6 @@ This can only work in two ways:
2. The "if" statement evaluates to true, the commands up to `endif` are 2. The "if" statement evaluates to true, the commands up to `endif` are
executed and `finish` bails out before reaching `vim9script`. executed and `finish` bails out before reaching `vim9script`.
TODO: The "vim9script" feature does not exist yet, it will only be added once
the Vim9 script syntax has been fully implemented.
Export ~ Export ~
*:export* *:exp* *:export* *:exp*

View File

@ -5929,6 +5929,7 @@ f_has(typval_T *argvars, typval_T *rettv)
0 0
#endif #endif
}, },
{"vim9script", 1},
{"vimscript-1", 1}, {"vimscript-1", 1},
{"vimscript-2", 1}, {"vimscript-2", 1},
{"vimscript-3", 1}, {"vimscript-3", 1},

View File

@ -7,6 +7,23 @@ source vim9.vim
source shared.vim source shared.vim
source screendump.vim source screendump.vim
def Test_vim9script_feature()
# example from the help, here the feature is always present
var lines =<< trim END
" old style comment
if !has('vim9script')
" legacy commands would go here
finish
endif
vim9script
# Vim9 script commands go here
g:didit = true
END
CheckScriptSuccess(lines)
assert_equal(true, g:didit)
unlet g:didit
enddef
def Test_range_only() def Test_range_only()
new new
setline(1, ['blah', 'Blah']) setline(1, ['blah', 'Blah'])

View File

@ -749,6 +749,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 */
/**/
3965,
/**/ /**/
3964, 3964,
/**/ /**/