Mercurial > vim
changeset 18289:16dd8ebc2339 v8.1.2139
patch 8.1.2139: the modifyOtherKeys codes are not tested
Commit: https://github.com/vim/vim/commit/18a79a68413365cd7672728d54615ca708764e23
Author: Bram Moolenaar <Bram@vim.org>
Date: Sat Oct 12 15:36:11 2019 +0200
patch 8.1.2139: the modifyOtherKeys codes are not tested
Problem: The modifyOtherKeys codes are not tested.
Solution: Add a test case.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sat, 12 Oct 2019 15:45:06 +0200 |
parents | d65f4e1cc30f |
children | b31d3745f179 |
files | src/testdir/test_termcodes.vim src/version.c |
diffstat | 2 files changed, 66 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_termcodes.vim +++ b/src/testdir/test_termcodes.vim @@ -845,3 +845,67 @@ func Test_get_termcode() set ttybuiltin endfunc + +func GetEscCodeCSI27(key, modifier) + let key = printf("%d", char2nr(a:key)) + let mod = printf("%d", a:modifier) + return "\<Esc>[27;" .. mod .. ';' .. key .. '~' +endfunc + +func GetEscCodeCSIu(key, modifier) + let key = printf("%d", char2nr(a:key)) + let mod = printf("%d", a:modifier) + return "\<Esc>[" .. key .. ';' .. mod .. 'u' +endfunc + +" This checks the CSI sequences when in modifyOtherKeys mode. +" The mode doesn't need to be enabled, the codes are always detected. +func RunTest_modifyOtherKeys(func) + new + set timeoutlen=20 + + " Shift-X is send as 'X' with the shift modifier + call feedkeys('a' .. a:func('X', 2) .. "\<Esc>", 'Lx!') + call assert_equal('X', getline(1)) + + " Ctrl-i is Tab + call setline(1, '') + call feedkeys('a' .. a:func('i', 5) .. "\<Esc>", 'Lx!') + call assert_equal("\t", getline(1)) + + " Ctrl-I is also Tab + call setline(1, '') + call feedkeys('a' .. a:func('I', 5) .. "\<Esc>", 'Lx!') + call assert_equal("\t", getline(1)) + + " Alt-x is ø + call setline(1, '') + call feedkeys('a' .. a:func('x', 3) .. "\<Esc>", 'Lx!') + call assert_equal("ø", getline(1)) + + " Meta-x is also ø + call setline(1, '') + call feedkeys('a' .. a:func('x', 9) .. "\<Esc>", 'Lx!') + call assert_equal("ø", getline(1)) + + " Alt-X is Ø + call setline(1, '') + call feedkeys('a' .. a:func('X', 3) .. "\<Esc>", 'Lx!') + call assert_equal("Ø", getline(1)) + + " Meta-X is ø + call setline(1, '') + call feedkeys('a' .. a:func('X', 9) .. "\<Esc>", 'Lx!') + call assert_equal("Ø", getline(1)) + + bwipe! + set timeoutlen& +endfunc + +func Test_modifyOtherKeys_CSI27() + call RunTest_modifyOtherKeys(function('GetEscCodeCSI27')) +endfunc + +func Test_modifyOtherKeys_CSIu() + call RunTest_modifyOtherKeys(function('GetEscCodeCSIu')) +endfunc