Bram Moolenaar | 2528163 | 2016-01-21 23:32:32 +0100 | [diff] [blame] | 1 | " tests for 'langmap' |
| 2 | |
Bram Moolenaar | b46fecd | 2019-06-15 17:58:09 +0200 | [diff] [blame] | 3 | source check.vim |
| 4 | CheckFeature langmap |
Bram Moolenaar | 09e786e | 2016-01-21 23:53:06 +0100 | [diff] [blame] | 5 | |
Bram Moolenaar | 2528163 | 2016-01-21 23:32:32 +0100 | [diff] [blame] | 6 | func Test_langmap() |
| 7 | new |
| 8 | set langmap=}l,^x,%v |
| 9 | |
| 10 | call setline(1, ['abc']) |
| 11 | call feedkeys('gg0}^', 'tx') |
| 12 | call assert_equal('ac', getline(1)) |
| 13 | |
| 14 | " in Replace mode |
| 15 | " need silent! to avoid a delay when entering Insert mode |
| 16 | call setline(1, ['abcde']) |
| 17 | silent! call feedkeys("gg0lR%{z\<Esc>00", 'tx') |
| 18 | call assert_equal('a%{ze', getline(1)) |
| 19 | |
| 20 | " in Select mode |
| 21 | " need silent! to avoid a delay when entering Insert mode |
| 22 | call setline(1, ['abcde']) |
| 23 | silent! call feedkeys("gg0}%}\<C-G>}^\<Esc>00", 'tx') |
| 24 | call assert_equal('a}^de', getline(1)) |
| 25 | |
Bram Moolenaar | c2a60ae | 2020-01-23 16:19:54 +0100 | [diff] [blame] | 26 | " Error cases |
| 27 | call assert_fails('set langmap=aA,b', 'E357:') |
| 28 | call assert_fails('set langmap=z;y;y;z', 'E358:') |
| 29 | |
| 30 | " Map character > 256 |
| 31 | enew! |
| 32 | set langmap=āx,ăl,āx |
| 33 | call setline(1, ['abcde']) |
| 34 | call feedkeys('gg2lā', 'tx') |
| 35 | call assert_equal('abde', getline(1)) |
| 36 | |
| 37 | " special characters in langmap |
| 38 | enew! |
| 39 | call setline(1, ['Hello World']) |
| 40 | set langmap=\\;\\,,\\,\\; |
| 41 | call feedkeys('ggfo,', 'tx') |
| 42 | call assert_equal(8, col('.')) |
| 43 | call feedkeys(';', 'tx') |
| 44 | call assert_equal(5, col('.')) |
| 45 | set langmap& |
| 46 | set langmap=\\;\\,;\\,\\; |
| 47 | call feedkeys('ggfo,', 'tx') |
| 48 | call assert_equal(8, col('.')) |
| 49 | call feedkeys(';', 'tx') |
| 50 | call assert_equal(5, col('.')) |
| 51 | |
| 52 | set langmap& |
Bram Moolenaar | 2528163 | 2016-01-21 23:32:32 +0100 | [diff] [blame] | 53 | quit! |
| 54 | endfunc |