139 lines
3.0 KiB
VimL
139 lines
3.0 KiB
VimL
" don't spam the user when Vim is started in Vi compatibility mode
|
|
let s:cpo_save = &cpo
|
|
set cpo&vim
|
|
|
|
func! Test_GoTermNewMode()
|
|
if !(has('nvim') || has('terminal'))
|
|
return
|
|
endif
|
|
|
|
let l:wd = getcwd()
|
|
try
|
|
let g:go_gopls_enabled = 0
|
|
let l:filename = 'term/term.go'
|
|
let l:tmp = gotest#load_fixture(l:filename)
|
|
call go#util#Chdir(l:tmp . '/src/term')
|
|
|
|
let expected = expand('%:p')
|
|
let l:winid = win_getid()
|
|
|
|
let l:expectedwindows = len(getwininfo()) + 1
|
|
|
|
let cmd = "go run ". go#util#Shelljoin(go#tool#Files())
|
|
|
|
set nosplitright
|
|
|
|
let l:jobid = go#term#new(0, cmd, &errorformat)
|
|
|
|
call go#job#Wait(l:jobid)
|
|
|
|
let actual = expand('%:p')
|
|
call assert_equal(actual, l:expected)
|
|
call assert_equal(l:expectedwindows, len(getwininfo()))
|
|
|
|
finally
|
|
call win_gotoid(l:winid)
|
|
only!
|
|
call go#util#Chdir(l:wd)
|
|
call delete(l:tmp, 'rf')
|
|
endtry
|
|
endfunc
|
|
|
|
func! Test_GoTermNewMode_SplitRight()
|
|
if !(has('nvim') || has('terminal'))
|
|
return
|
|
endif
|
|
|
|
let l:wd = getcwd()
|
|
try
|
|
let g:go_gopls_enabled = 0
|
|
let l:filename = 'term/term.go'
|
|
let l:tmp = gotest#load_fixture(l:filename)
|
|
call go#util#Chdir(l:tmp . '/src/term')
|
|
|
|
let expected = expand('%:p')
|
|
let l:winid = win_getid()
|
|
|
|
let l:expectedwindows = len(getwininfo()) + 1
|
|
|
|
let cmd = "go run ". go#util#Shelljoin(go#tool#Files())
|
|
|
|
set splitright
|
|
|
|
let l:jobid = go#term#new(0, cmd, &errorformat)
|
|
|
|
call go#job#Wait(l:jobid)
|
|
|
|
let actual = expand('%:p')
|
|
call assert_equal(actual, l:expected)
|
|
call assert_equal(l:expectedwindows, len(getwininfo()))
|
|
|
|
finally
|
|
call win_gotoid(l:winid)
|
|
only!
|
|
call go#util#Chdir(l:wd)
|
|
call delete(l:tmp, 'rf')
|
|
set nosplitright
|
|
endtry
|
|
endfunc
|
|
|
|
func! Test_GoTermReuse()
|
|
if !(has('nvim') || has('terminal'))
|
|
return
|
|
endif
|
|
|
|
let l:wd = getcwd()
|
|
try
|
|
let g:go_gopls_enabled = 0
|
|
let l:filename = 'term/term.go'
|
|
let l:tmp = gotest#load_fixture(l:filename)
|
|
|
|
call go#util#Chdir(l:tmp . '/src/term')
|
|
|
|
let l:winid = win_getid()
|
|
let expected = expand('%:p')
|
|
|
|
let l:expectedwindows = len(getwininfo())+1
|
|
|
|
let cmd = "go run ". go#util#Shelljoin(go#tool#Files())
|
|
|
|
set nosplitright
|
|
|
|
" prime the terminal window
|
|
let l:jobid = go#term#new(0, cmd, &errorformat)
|
|
|
|
call go#job#Wait(l:jobid)
|
|
|
|
let g:go_term_reuse = 1
|
|
|
|
let l:jobid = go#term#new(0, cmd, &errorformat)
|
|
|
|
call go#job#Wait(l:jobid)
|
|
|
|
let actual = expand('%:p')
|
|
call assert_equal(actual, l:expected)
|
|
call assert_equal(l:expectedwindows, len(getwininfo()))
|
|
|
|
let l:jobid = go#term#new(0, cmd, &errorformat)
|
|
|
|
call go#job#Wait(l:jobid)
|
|
|
|
let actual = expand('%:p')
|
|
call assert_equal(actual, l:expected)
|
|
|
|
call assert_equal(l:expectedwindows, len(getwininfo()))
|
|
|
|
finally
|
|
call win_gotoid(l:winid)
|
|
only!
|
|
call go#util#Chdir(l:wd)
|
|
call delete(l:tmp, 'rf')
|
|
endtry
|
|
endfunc
|
|
|
|
" restore Vi compatibility settings
|
|
let &cpo = s:cpo_save
|
|
unlet s:cpo_save
|
|
|
|
" vim: sw=2 ts=2 et
|