16d91bcb4SBram Moolenaar" Test for 'iminsert' 26d91bcb4SBram Moolenaar 36315a9aeSBram Moolenaarsource view_util.vim 4e2a3f36bSBram Moolenaarsource check.vim 56315a9aeSBram Moolenaar 66315a9aeSBram Moolenaarlet s:imactivatefunc_called = 0 76315a9aeSBram Moolenaarlet s:imstatusfunc_called = 0 8a3a12462SBram Moolenaarlet s:imstatus_active = 0 96315a9aeSBram Moolenaar 106315a9aeSBram Moolenaarfunc IM_activatefunc(active) 116315a9aeSBram Moolenaar let s:imactivatefunc_called = 1 12a3a12462SBram Moolenaar let s:imstatus_active = a:active 136315a9aeSBram Moolenaarendfunc 146315a9aeSBram Moolenaar 156315a9aeSBram Moolenaarfunc IM_statusfunc() 166315a9aeSBram Moolenaar let s:imstatusfunc_called = 1 17a3a12462SBram Moolenaar return s:imstatus_active 186315a9aeSBram Moolenaarendfunc 196315a9aeSBram Moolenaar 206315a9aeSBram Moolenaarfunc Test_iminsert2() 21a3a12462SBram Moolenaar let s:imactivatefunc_called = 0 22a3a12462SBram Moolenaar let s:imstatusfunc_called = 0 23a3a12462SBram Moolenaar 246315a9aeSBram Moolenaar set imactivatefunc=IM_activatefunc 256315a9aeSBram Moolenaar set imstatusfunc=IM_statusfunc 266315a9aeSBram Moolenaar set iminsert=2 276315a9aeSBram Moolenaar normal! i 286315a9aeSBram Moolenaar set iminsert=0 296315a9aeSBram Moolenaar set imactivatefunc= 306315a9aeSBram Moolenaar set imstatusfunc= 312877d334SBram Moolenaar 32c19fd917SBram Moolenaar let expected = (has('win32') && has('gui_running')) ? 0 : 1 332877d334SBram Moolenaar call assert_equal(expected, s:imactivatefunc_called) 342877d334SBram Moolenaar call assert_equal(expected, s:imstatusfunc_called) 356315a9aeSBram Moolenaarendfunc 36a3a12462SBram Moolenaar 37e2a3f36bSBram Moolenaarfunc Test_getimstatus() 38e2a3f36bSBram Moolenaar if has('win32') 39e2a3f36bSBram Moolenaar CheckFeature multi_byte_ime 40*be7529e8SBram Moolenaar else 41e2a3f36bSBram Moolenaar CheckFeature xim 42e2a3f36bSBram Moolenaar endif 43c19fd917SBram Moolenaar if has('win32') && has('gui_running') 44a3a12462SBram Moolenaar set imactivatefunc= 45a3a12462SBram Moolenaar set imstatusfunc= 46a3a12462SBram Moolenaar else 47a3a12462SBram Moolenaar set imactivatefunc=IM_activatefunc 48a3a12462SBram Moolenaar set imstatusfunc=IM_statusfunc 49a3a12462SBram Moolenaar let s:imstatus_active = 0 50a3a12462SBram Moolenaar endif 51a3a12462SBram Moolenaar 52a3a12462SBram Moolenaar new 53a3a12462SBram Moolenaar set iminsert=2 54a3a12462SBram Moolenaar call feedkeys("i\<C-R>=getimstatus()\<CR>\<ESC>", 'nx') 55a3a12462SBram Moolenaar call assert_equal('1', getline(1)) 56a3a12462SBram Moolenaar set iminsert=0 57a3a12462SBram Moolenaar call feedkeys("o\<C-R>=getimstatus()\<CR>\<ESC>", 'nx') 58a3a12462SBram Moolenaar call assert_equal('0', getline(2)) 59a3a12462SBram Moolenaar bw! 60a3a12462SBram Moolenaar 61a3a12462SBram Moolenaar set imactivatefunc= 62a3a12462SBram Moolenaar set imstatusfunc= 63a3a12462SBram Moolenaarendfunc 640546d7dfSBram Moolenaar 651671f448SBram Moolenaar" Test for using an lmap in insert mode 661671f448SBram Moolenaarfunc Test_lmap_in_insert_mode() 671671f448SBram Moolenaar new 681671f448SBram Moolenaar call setline(1, 'abc') 691671f448SBram Moolenaar lmap { w 701671f448SBram Moolenaar set iminsert=1 711671f448SBram Moolenaar call feedkeys('r{', 'xt') 721671f448SBram Moolenaar call assert_equal('wbc', getline(1)) 731671f448SBram Moolenaar set iminsert=2 741671f448SBram Moolenaar call feedkeys('$r{', 'xt') 751671f448SBram Moolenaar call assert_equal('wb{', getline(1)) 761671f448SBram Moolenaar call setline(1, 'vim web') 771671f448SBram Moolenaar set iminsert=1 781671f448SBram Moolenaar call feedkeys('0f{', 'xt') 791671f448SBram Moolenaar call assert_equal(5, col('.')) 801671f448SBram Moolenaar set iminsert& 811671f448SBram Moolenaar lunmap { 82845e0ee5SBram Moolenaar close! 83845e0ee5SBram Moolenaarendfunc 84845e0ee5SBram Moolenaar 85845e0ee5SBram Moolenaar" Test for using CTRL-^ to toggle iminsert in insert mode 86845e0ee5SBram Moolenaarfunc Test_iminsert_toggle() 87845e0ee5SBram Moolenaar CheckGui 88845e0ee5SBram Moolenaar if has('win32') 89845e0ee5SBram Moolenaar CheckFeature multi_byte_ime 90*be7529e8SBram Moolenaar else 91845e0ee5SBram Moolenaar CheckFeature xim 92845e0ee5SBram Moolenaar endif 93845e0ee5SBram Moolenaar if has('gui_running') && !has('win32') 946d91bcb4SBram Moolenaar throw 'Skipped: works only in Win32 GUI version (for some reason)' 95845e0ee5SBram Moolenaar endif 96845e0ee5SBram Moolenaar new 97845e0ee5SBram Moolenaar let save_imdisable = &imdisable 98845e0ee5SBram Moolenaar let save_iminsert = &iminsert 99845e0ee5SBram Moolenaar set noimdisable 100845e0ee5SBram Moolenaar set iminsert=0 101845e0ee5SBram Moolenaar exe "normal i\<C-^>" 102845e0ee5SBram Moolenaar call assert_equal(2, &iminsert) 103845e0ee5SBram Moolenaar exe "normal i\<C-^>" 104845e0ee5SBram Moolenaar call assert_equal(0, &iminsert) 105845e0ee5SBram Moolenaar let &iminsert = save_iminsert 106845e0ee5SBram Moolenaar let &imdisable = save_imdisable 1071671f448SBram Moolenaar close! 1081671f448SBram Moolenaarendfunc 1091671f448SBram Moolenaar 1100546d7dfSBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 111