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