diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2022-02-17 07:18:10 +0800 |
|---|---|---|
| committer | zeertzjq <zeertzjq@outlook.com> | 2022-02-17 08:45:14 +0800 |
| commit | 2ffe66a5a4e1297ee24fd3ab8cc4dda45b1381bd (patch) | |
| tree | ed6ce83164b6c3dfe3c5a49d9627e4792ab85f35 /src/nvim/testdir/test_mapping.vim | |
| parent | c90cf8c77b96cda0fd40dbf4aa2c1762cd09dab3 (diff) | |
| download | rneovim-2ffe66a5a4e1297ee24fd3ab8cc4dda45b1381bd.tar.gz rneovim-2ffe66a5a4e1297ee24fd3ab8cc4dda45b1381bd.tar.bz2 rneovim-2ffe66a5a4e1297ee24fd3ab8cc4dda45b1381bd.zip | |
vim-patch:8.2.4338: an error from an expression mapping messes up the display
Problem: An error from an expression mapping messes up the display.
Solution: When the expression results in an empty string return K_IGNORE.
In cmdline mode redraw the command line. (closes vim/vim#9726)
https://github.com/vim/vim/commit/74a0a5b26d0180f3ea89e9495dff6a26f0df23cb
Diffstat (limited to 'src/nvim/testdir/test_mapping.vim')
| -rw-r--r-- | src/nvim/testdir/test_mapping.vim | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/src/nvim/testdir/test_mapping.vim b/src/nvim/testdir/test_mapping.vim index 749c75106e..105f70e6bb 100644 --- a/src/nvim/testdir/test_mapping.vim +++ b/src/nvim/testdir/test_mapping.vim @@ -483,6 +483,38 @@ func Test_expr_map_restore_cursor() call delete('XtestExprMap') endfunc +func Test_expr_map_error() + CheckScreendump + + let lines =<< trim END + func Func() + throw 'test' + return '' + endfunc + + nnoremap <expr> <F2> Func() + cnoremap <expr> <F2> Func() + + call test_override('ui_delay', 10) + END + call writefile(lines, 'XtestExprMap') + let buf = RunVimInTerminal('-S XtestExprMap', #{rows: 10}) + call TermWait(buf) + call term_sendkeys(buf, "\<F2>") + call TermWait(buf) + call term_sendkeys(buf, "\<CR>") + call VerifyScreenDump(buf, 'Test_map_expr_2', {}) + + call term_sendkeys(buf, ":abc\<F2>") + call VerifyScreenDump(buf, 'Test_map_expr_3', {}) + call term_sendkeys(buf, "\<Esc>0") + call VerifyScreenDump(buf, 'Test_map_expr_4', {}) + + " clean up + call StopVimInTerminal(buf) + call delete('XtestExprMap') +endfunc + " Test for mapping errors func Test_map_error() call assert_fails('unmap', 'E474:') |