xref: /vim-8.2.3635/src/testdir/test_langmap.vim (revision 6d91bcb4)
125281634SBram Moolenaar" tests for 'langmap'
225281634SBram Moolenaar
3b46fecd3SBram Moolenaarsource check.vim
4b46fecd3SBram MoolenaarCheckFeature langmap
509e786e7SBram Moolenaar
625281634SBram Moolenaarfunc Test_langmap()
725281634SBram Moolenaar  new
825281634SBram Moolenaar  set langmap=}l,^x,%v
925281634SBram Moolenaar
1025281634SBram Moolenaar  call setline(1, ['abc'])
1125281634SBram Moolenaar  call feedkeys('gg0}^', 'tx')
1225281634SBram Moolenaar  call assert_equal('ac', getline(1))
1325281634SBram Moolenaar
1425281634SBram Moolenaar  " in Replace mode
1525281634SBram Moolenaar  " need silent! to avoid a delay when entering Insert mode
1625281634SBram Moolenaar  call setline(1, ['abcde'])
1725281634SBram Moolenaar  silent! call feedkeys("gg0lR%{z\<Esc>00", 'tx')
1825281634SBram Moolenaar  call assert_equal('a%{ze', getline(1))
1925281634SBram Moolenaar
2025281634SBram Moolenaar  " in Select mode
2125281634SBram Moolenaar  " need silent! to avoid a delay when entering Insert mode
2225281634SBram Moolenaar  call setline(1, ['abcde'])
2325281634SBram Moolenaar  silent! call feedkeys("gg0}%}\<C-G>}^\<Esc>00", 'tx')
2425281634SBram Moolenaar  call assert_equal('a}^de', getline(1))
2525281634SBram Moolenaar
26c2a60ae1SBram Moolenaar  " Error cases
27c2a60ae1SBram Moolenaar  call assert_fails('set langmap=aA,b', 'E357:')
28c2a60ae1SBram Moolenaar  call assert_fails('set langmap=z;y;y;z', 'E358:')
29c2a60ae1SBram Moolenaar
30c2a60ae1SBram Moolenaar  " Map character > 256
31c2a60ae1SBram Moolenaar  enew!
32c2a60ae1SBram Moolenaar  set langmap=āx,ăl,āx
33c2a60ae1SBram Moolenaar  call setline(1, ['abcde'])
34c2a60ae1SBram Moolenaar  call feedkeys('gg2lā', 'tx')
35c2a60ae1SBram Moolenaar  call assert_equal('abde', getline(1))
36c2a60ae1SBram Moolenaar
37c2a60ae1SBram Moolenaar  " special characters in langmap
38c2a60ae1SBram Moolenaar  enew!
39c2a60ae1SBram Moolenaar  call setline(1, ['Hello World'])
40c2a60ae1SBram Moolenaar  set langmap=\\;\\,,\\,\\;
41c2a60ae1SBram Moolenaar  call feedkeys('ggfo,', 'tx')
42c2a60ae1SBram Moolenaar  call assert_equal(8, col('.'))
43c2a60ae1SBram Moolenaar  call feedkeys(';', 'tx')
44c2a60ae1SBram Moolenaar  call assert_equal(5, col('.'))
45c2a60ae1SBram Moolenaar  set langmap&
46c2a60ae1SBram Moolenaar  set langmap=\\;\\,;\\,\\;
47c2a60ae1SBram Moolenaar  call feedkeys('ggfo,', 'tx')
48c2a60ae1SBram Moolenaar  call assert_equal(8, col('.'))
49c2a60ae1SBram Moolenaar  call feedkeys(';', 'tx')
50c2a60ae1SBram Moolenaar  call assert_equal(5, col('.'))
51c2a60ae1SBram Moolenaar
52c2a60ae1SBram Moolenaar  set langmap&
5325281634SBram Moolenaar  quit!
5425281634SBram Moolenaarendfunc
55*6d91bcb4SBram Moolenaar
56*6d91bcb4SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
57