2017-11-25 15:20:02 +01:00
|
|
|
source view_util.vim
|
|
|
|
|
|
|
|
|
|
let s:imactivatefunc_called = 0
|
|
|
|
|
let s:imstatusfunc_called = 0
|
2019-09-07 15:08:38 +02:00
|
|
|
let s:imstatus_active = 0
|
2017-11-25 15:20:02 +01:00
|
|
|
|
|
|
|
|
func IM_activatefunc(active)
|
|
|
|
|
let s:imactivatefunc_called = 1
|
2019-09-07 15:08:38 +02:00
|
|
|
let s:imstatus_active = a:active
|
2017-11-25 15:20:02 +01:00
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
func IM_statusfunc()
|
|
|
|
|
let s:imstatusfunc_called = 1
|
2019-09-07 15:08:38 +02:00
|
|
|
return s:imstatus_active
|
2017-11-25 15:20:02 +01:00
|
|
|
endfunc
|
|
|
|
|
|
|
|
|
|
func Test_iminsert2()
|
2019-09-07 15:08:38 +02:00
|
|
|
let s:imactivatefunc_called = 0
|
|
|
|
|
let s:imstatusfunc_called = 0
|
|
|
|
|
|
2017-11-25 15:20:02 +01:00
|
|
|
set imactivatefunc=IM_activatefunc
|
|
|
|
|
set imstatusfunc=IM_statusfunc
|
|
|
|
|
set iminsert=2
|
|
|
|
|
normal! i
|
|
|
|
|
set iminsert=0
|
|
|
|
|
set imactivatefunc=
|
|
|
|
|
set imstatusfunc=
|
2017-11-26 14:56:16 +01:00
|
|
|
|
|
|
|
|
let expected = has('gui_running') ? 0 : 1
|
|
|
|
|
call assert_equal(expected, s:imactivatefunc_called)
|
|
|
|
|
call assert_equal(expected, s:imstatusfunc_called)
|
2017-11-25 15:20:02 +01:00
|
|
|
endfunc
|
2019-09-07 15:08:38 +02:00
|
|
|
|
|
|
|
|
func Test_imgetstatus()
|
|
|
|
|
if has('gui_running')
|
|
|
|
|
if !has('win32')
|
|
|
|
|
throw 'Skipped: running in the GUI, only works on MS-Windows'
|
|
|
|
|
endif
|
|
|
|
|
set imactivatefunc=
|
|
|
|
|
set imstatusfunc=
|
|
|
|
|
else
|
|
|
|
|
set imactivatefunc=IM_activatefunc
|
|
|
|
|
set imstatusfunc=IM_statusfunc
|
|
|
|
|
let s:imstatus_active = 0
|
|
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
new
|
|
|
|
|
set iminsert=2
|
|
|
|
|
call feedkeys("i\<C-R>=getimstatus()\<CR>\<ESC>", 'nx')
|
|
|
|
|
call assert_equal('1', getline(1))
|
|
|
|
|
set iminsert=0
|
|
|
|
|
call feedkeys("o\<C-R>=getimstatus()\<CR>\<ESC>", 'nx')
|
|
|
|
|
call assert_equal('0', getline(2))
|
|
|
|
|
bw!
|
|
|
|
|
|
|
|
|
|
set imactivatefunc=
|
|
|
|
|
set imstatusfunc=
|
|
|
|
|
endfunc
|