Mercurial > vim
view src/testdir/vim9.vim @ 24375:fe4b6fc7149c v8.2.2728
patch 8.2.2728: special key names don't work if 'isident' is cleared
Commit: https://github.com/vim/vim/commit/e3d1f4c982bd0fe05496448d7868268c75ff7bfb
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Apr 6 20:21:59 2021 +0200
patch 8.2.2728: special key names don't work if 'isident' is cleared
Problem: Special key names don't work if 'isident' is cleared.
Solution: Add vim_isNormalIDc() and use it for special key names.
(closes #2389)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Tue, 06 Apr 2021 20:30:05 +0200 |
parents | 236e9ebdb30e |
children | 602e528a8e43 |
line wrap: on
line source
" Utility functions for testing vim9 script " Use a different file name for each run. let s:sequence = 1 " Check that "lines" inside a ":def" function has no error. func CheckDefSuccess(lines) let cwd = getcwd() let fname = 'XdefSuccess' .. s:sequence let s:sequence += 1 call writefile(['def Func()'] + a:lines + ['enddef', 'defcompile'], fname) try exe 'so ' .. fname call Func() delfunc! Func finally call chdir(cwd) call delete(fname) endtry endfunc " Check that "lines" inside ":def" results in an "error" message. " If "lnum" is given check that the error is reported for this line. " Add a line before and after to make it less likely that the line number is " accidentally correct. func CheckDefFailure(lines, error, lnum = -3) let cwd = getcwd() let fname = 'XdefFailure' .. s:sequence let s:sequence += 1 call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef', 'defcompile'], fname) try call assert_fails('so ' .. fname, a:error, a:lines, a:lnum + 1) finally call chdir(cwd) call delete(fname) delfunc! Func endtry endfunc " Check that "lines" inside ":def" results in an "error" message when executed. " If "lnum" is given check that the error is reported for this line. " Add a line before and after to make it less likely that the line number is " accidentally correct. func CheckDefExecFailure(lines, error, lnum = -3) let cwd = getcwd() let fname = 'XdefExecFailure' .. s:sequence let s:sequence += 1 call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef'], fname) try exe 'so ' .. fname call assert_fails('call Func()', a:error, a:lines, a:lnum + 1) finally call chdir(cwd) call delete(fname) delfunc! Func endtry endfunc def CheckScriptFailure(lines: list<string>, error: string, lnum = -3) var cwd = getcwd() var fname = 'XScriptFailure' .. s:sequence s:sequence += 1 writefile(lines, fname) try assert_fails('so ' .. fname, error, lines, lnum) finally chdir(cwd) delete(fname) endtry enddef def CheckScriptFailureList(lines: list<string>, errors: list<string>, lnum = -3) var cwd = getcwd() var fname = 'XScriptFailure' .. s:sequence s:sequence += 1 writefile(lines, fname) try assert_fails('so ' .. fname, errors, lines, lnum) finally chdir(cwd) delete(fname) endtry enddef def CheckScriptSuccess(lines: list<string>) var cwd = getcwd() var fname = 'XScriptSuccess' .. s:sequence s:sequence += 1 writefile(lines, fname) try exe 'so ' .. fname finally chdir(cwd) delete(fname) endtry enddef def CheckDefAndScriptSuccess(lines: list<string>) CheckDefSuccess(lines) CheckScriptSuccess(['vim9script'] + lines) enddef " Check that a command fails with the same error when used in a :def function " and when used in Vim9 script. def CheckDefAndScriptFailure(lines: list<string>, error: string, lnum = -3) CheckDefFailure(lines, error, lnum) CheckScriptFailure(['vim9script'] + lines, error, lnum + 1) enddef " As CheckDefAndScriptFailure() but with two different exepcted errors. def CheckDefAndScriptFailure2( lines: list<string>, errorDef: string, errorScript: string, lnum = -3) CheckDefFailure(lines, errorDef, lnum) CheckScriptFailure(['vim9script'] + lines, errorScript, lnum + 1) enddef " Check that a command fails with the same error when executed in a :def " function and when used in Vim9 script. def CheckDefExecAndScriptFailure(lines: list<string>, error: string, lnum = -3) CheckDefExecFailure(lines, error, lnum) CheckScriptFailure(['vim9script'] + lines, error, lnum + 1) enddef " As CheckDefExecAndScriptFailure() but with two different expected errors. def CheckDefExecAndScriptFailure2( lines: list<string>, errorDef: string, errorScript: string, lnum = -3) CheckDefExecFailure(lines, errorDef, lnum) CheckScriptFailure(['vim9script'] + lines, errorScript, lnum + 1) enddef