16315a9aeSBram Moolenaarsource view_util.vim 2e2a3f36bSBram Moolenaarsource check.vim 36315a9aeSBram Moolenaar 46315a9aeSBram Moolenaarlet s:imactivatefunc_called = 0 56315a9aeSBram Moolenaarlet s:imstatusfunc_called = 0 6a3a12462SBram Moolenaarlet s:imstatus_active = 0 76315a9aeSBram Moolenaar 86315a9aeSBram Moolenaarfunc IM_activatefunc(active) 96315a9aeSBram Moolenaar let s:imactivatefunc_called = 1 10a3a12462SBram Moolenaar let s:imstatus_active = a:active 116315a9aeSBram Moolenaarendfunc 126315a9aeSBram Moolenaar 136315a9aeSBram Moolenaarfunc IM_statusfunc() 146315a9aeSBram Moolenaar let s:imstatusfunc_called = 1 15a3a12462SBram Moolenaar return s:imstatus_active 166315a9aeSBram Moolenaarendfunc 176315a9aeSBram Moolenaar 186315a9aeSBram Moolenaarfunc Test_iminsert2() 19a3a12462SBram Moolenaar let s:imactivatefunc_called = 0 20a3a12462SBram Moolenaar let s:imstatusfunc_called = 0 21a3a12462SBram Moolenaar 226315a9aeSBram Moolenaar set imactivatefunc=IM_activatefunc 236315a9aeSBram Moolenaar set imstatusfunc=IM_statusfunc 246315a9aeSBram Moolenaar set iminsert=2 256315a9aeSBram Moolenaar normal! i 266315a9aeSBram Moolenaar set iminsert=0 276315a9aeSBram Moolenaar set imactivatefunc= 286315a9aeSBram Moolenaar set imstatusfunc= 292877d334SBram Moolenaar 30*c19fd917SBram Moolenaar let expected = (has('win32') && has('gui_running')) ? 0 : 1 312877d334SBram Moolenaar call assert_equal(expected, s:imactivatefunc_called) 322877d334SBram Moolenaar call assert_equal(expected, s:imstatusfunc_called) 336315a9aeSBram Moolenaarendfunc 34a3a12462SBram Moolenaar 35e2a3f36bSBram Moolenaarfunc Test_getimstatus() 36e2a3f36bSBram Moolenaar if has('win32') 37e2a3f36bSBram Moolenaar CheckFeature multi_byte_ime 38e2a3f36bSBram Moolenaar elseif !has('gui_mac') 39e2a3f36bSBram Moolenaar CheckFeature xim 40e2a3f36bSBram Moolenaar endif 41*c19fd917SBram Moolenaar if has('win32') && has('gui_running') 42a3a12462SBram Moolenaar set imactivatefunc= 43a3a12462SBram Moolenaar set imstatusfunc= 44a3a12462SBram Moolenaar else 45a3a12462SBram Moolenaar set imactivatefunc=IM_activatefunc 46a3a12462SBram Moolenaar set imstatusfunc=IM_statusfunc 47a3a12462SBram Moolenaar let s:imstatus_active = 0 48a3a12462SBram Moolenaar endif 49a3a12462SBram Moolenaar 50a3a12462SBram Moolenaar new 51a3a12462SBram Moolenaar set iminsert=2 52a3a12462SBram Moolenaar call feedkeys("i\<C-R>=getimstatus()\<CR>\<ESC>", 'nx') 53a3a12462SBram Moolenaar call assert_equal('1', getline(1)) 54a3a12462SBram Moolenaar set iminsert=0 55a3a12462SBram Moolenaar call feedkeys("o\<C-R>=getimstatus()\<CR>\<ESC>", 'nx') 56a3a12462SBram Moolenaar call assert_equal('0', getline(2)) 57a3a12462SBram Moolenaar bw! 58a3a12462SBram Moolenaar 59a3a12462SBram Moolenaar set imactivatefunc= 60a3a12462SBram Moolenaar set imstatusfunc= 61a3a12462SBram Moolenaarendfunc 620546d7dfSBram Moolenaar 631671f448SBram Moolenaar" Test for using an lmap in insert mode 641671f448SBram Moolenaarfunc Test_lmap_in_insert_mode() 651671f448SBram Moolenaar new 661671f448SBram Moolenaar call setline(1, 'abc') 671671f448SBram Moolenaar lmap { w 681671f448SBram Moolenaar set iminsert=1 691671f448SBram Moolenaar call feedkeys('r{', 'xt') 701671f448SBram Moolenaar call assert_equal('wbc', getline(1)) 711671f448SBram Moolenaar set iminsert=2 721671f448SBram Moolenaar call feedkeys('$r{', 'xt') 731671f448SBram Moolenaar call assert_equal('wb{', getline(1)) 741671f448SBram Moolenaar call setline(1, 'vim web') 751671f448SBram Moolenaar set iminsert=1 761671f448SBram Moolenaar call feedkeys('0f{', 'xt') 771671f448SBram Moolenaar call assert_equal(5, col('.')) 781671f448SBram Moolenaar set iminsert& 791671f448SBram Moolenaar lunmap { 80845e0ee5SBram Moolenaar close! 81845e0ee5SBram Moolenaarendfunc 82845e0ee5SBram Moolenaar 83845e0ee5SBram Moolenaar" Test for using CTRL-^ to toggle iminsert in insert mode 84845e0ee5SBram Moolenaarfunc Test_iminsert_toggle() 85845e0ee5SBram Moolenaar CheckGui 86845e0ee5SBram Moolenaar if has('win32') 87845e0ee5SBram Moolenaar CheckFeature multi_byte_ime 88845e0ee5SBram Moolenaar elseif !has('gui_mac') 89845e0ee5SBram Moolenaar CheckFeature xim 90845e0ee5SBram Moolenaar endif 91845e0ee5SBram Moolenaar if has('gui_running') && !has('win32') 92845e0ee5SBram Moolenaar " this works only in Win32 GUI version (for some reason) 93845e0ee5SBram Moolenaar return 94845e0ee5SBram Moolenaar endif 95845e0ee5SBram Moolenaar new 96845e0ee5SBram Moolenaar let save_imdisable = &imdisable 97845e0ee5SBram Moolenaar let save_iminsert = &iminsert 98845e0ee5SBram Moolenaar set noimdisable 99845e0ee5SBram Moolenaar set iminsert=0 100845e0ee5SBram Moolenaar exe "normal i\<C-^>" 101845e0ee5SBram Moolenaar call assert_equal(2, &iminsert) 102845e0ee5SBram Moolenaar exe "normal i\<C-^>" 103845e0ee5SBram Moolenaar call assert_equal(0, &iminsert) 104845e0ee5SBram Moolenaar let &iminsert = save_iminsert 105845e0ee5SBram Moolenaar let &imdisable = save_imdisable 1061671f448SBram Moolenaar close! 1071671f448SBram Moolenaarendfunc 1081671f448SBram Moolenaar 1090546d7dfSBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 110