mirror of
https://github.com/neovim/neovim.git
synced 2025-01-01 17:23:36 -07:00
Merge pull request #13419 from janlazo/vim-8.2.2067
vim-patch:8.1.2264,8.2.{617,620,628,2067,2069}
This commit is contained in:
commit
a1a4dd34ea
@ -6155,7 +6155,7 @@ static int qf_setprop_items_from_lines(
|
|||||||
qf_free_items(&qi->qf_lists[qf_idx]);
|
qf_free_items(&qi->qf_lists[qf_idx]);
|
||||||
}
|
}
|
||||||
if (qf_init_ext(qi, qf_idx, NULL, NULL, &di->di_tv, errorformat,
|
if (qf_init_ext(qi, qf_idx, NULL, NULL, &di->di_tv, errorformat,
|
||||||
false, (linenr_T)0, (linenr_T)0, NULL, NULL) > 0) {
|
false, (linenr_T)0, (linenr_T)0, NULL, NULL) >= 0) {
|
||||||
retval = OK;
|
retval = OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -6256,9 +6256,12 @@ static int qf_set_properties(qf_info_T *qi, const dict_T *what, int action,
|
|||||||
retval = qf_setprop_curidx(qi, qfl, di);
|
retval = qf_setprop_curidx(qi, qfl, di);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (retval == OK) {
|
if (newlist || retval == OK) {
|
||||||
qf_list_changed(qfl);
|
qf_list_changed(qfl);
|
||||||
}
|
}
|
||||||
|
if (newlist) {
|
||||||
|
qf_update_buffer(qi, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
@ -318,7 +318,7 @@ let ExtraVimCount = 0
|
|||||||
let ExtraVimBase = expand("<sfile>")
|
let ExtraVimBase = expand("<sfile>")
|
||||||
let ExtraVimTestEnv = ""
|
let ExtraVimTestEnv = ""
|
||||||
"
|
"
|
||||||
function! ExtraVim(...)
|
function ExtraVim(...)
|
||||||
" Count how often this function is called.
|
" Count how often this function is called.
|
||||||
let g:ExtraVimCount = g:ExtraVimCount + 1
|
let g:ExtraVimCount = g:ExtraVimCount + 1
|
||||||
|
|
||||||
@ -500,7 +500,7 @@ endfunction
|
|||||||
" an ExtraVim script as passed by ExtraVim() in ExtraVimBegin.
|
" an ExtraVim script as passed by ExtraVim() in ExtraVimBegin.
|
||||||
"
|
"
|
||||||
" EXTRA_VIM_START - do not change or remove this line.
|
" EXTRA_VIM_START - do not change or remove this line.
|
||||||
function! ExtraVimThrowpoint()
|
function ExtraVimThrowpoint()
|
||||||
if !exists("g:ExtraVimBegin")
|
if !exists("g:ExtraVimBegin")
|
||||||
Xout "ExtraVimThrowpoint() used outside ExtraVim() script."
|
Xout "ExtraVimThrowpoint() used outside ExtraVim() script."
|
||||||
return v:throwpoint
|
return v:throwpoint
|
||||||
@ -530,7 +530,7 @@ endfunction
|
|||||||
" as a script file, use ExecAsScript below.
|
" as a script file, use ExecAsScript below.
|
||||||
"
|
"
|
||||||
" EXTRA_VIM_START - do not change or remove this line.
|
" EXTRA_VIM_START - do not change or remove this line.
|
||||||
function! MakeScript(funcname, ...)
|
function MakeScript(funcname, ...)
|
||||||
let script = tempname()
|
let script = tempname()
|
||||||
execute "redir! >" . script
|
execute "redir! >" . script
|
||||||
execute "function" a:funcname
|
execute "function" a:funcname
|
||||||
@ -568,7 +568,7 @@ endfunction
|
|||||||
" location specified in the function.
|
" location specified in the function.
|
||||||
"
|
"
|
||||||
" EXTRA_VIM_START - do not change or remove this line.
|
" EXTRA_VIM_START - do not change or remove this line.
|
||||||
function! ExecAsScript(funcname)
|
function ExecAsScript(funcname)
|
||||||
" Make a script from the function passed as argument.
|
" Make a script from the function passed as argument.
|
||||||
let script = MakeScript(a:funcname)
|
let script = MakeScript(a:funcname)
|
||||||
|
|
||||||
@ -3694,7 +3694,7 @@ endif
|
|||||||
if ExtraVim(msgfile)
|
if ExtraVim(msgfile)
|
||||||
try
|
try
|
||||||
Xpath 4194304 " X: 4194304
|
Xpath 4194304 " X: 4194304
|
||||||
let x = novar " error E121/E15; exception: E121
|
let x = novar " error E121; exception: E121
|
||||||
catch /E15:/ " should not catch
|
catch /E15:/ " should not catch
|
||||||
Xpath 8388608 " X: 0
|
Xpath 8388608 " X: 0
|
||||||
endtry
|
endtry
|
||||||
@ -3702,7 +3702,7 @@ if ExtraVim(msgfile)
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
Xpath 33554432 " X: 33554432
|
Xpath 33554432 " X: 33554432
|
||||||
if !MESSAGES('E121', "Undefined variable", 'E15', "Invalid expression")
|
if !MESSAGES('E121', "Undefined variable")
|
||||||
Xpath 67108864 " X: 0
|
Xpath 67108864 " X: 0
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -8548,7 +8548,7 @@ endfunction
|
|||||||
|
|
||||||
" Remove the autocommands for the events specified as arguments in all used
|
" Remove the autocommands for the events specified as arguments in all used
|
||||||
" autogroups.
|
" autogroups.
|
||||||
function! Delete_autocommands(...)
|
function Delete_autocommands(...)
|
||||||
let augfile = tempname()
|
let augfile = tempname()
|
||||||
while 1
|
while 1
|
||||||
try
|
try
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
" A series of tests that can run in one Vim invocation.
|
" A series of tests that can run in one Vim invocation.
|
||||||
" This makes testing go faster, since Vim doesn't need to restart.
|
" This makes testing go faster, since Vim doesn't need to restart.
|
||||||
|
|
||||||
source test_assign.vim
|
|
||||||
source test_backup.vim
|
source test_backup.vim
|
||||||
source test_behave.vim
|
source test_behave.vim
|
||||||
source test_cd.vim
|
source test_cd.vim
|
||||||
|
@ -1,47 +0,0 @@
|
|||||||
" Test for assignment
|
|
||||||
|
|
||||||
func Test_no_type_checking()
|
|
||||||
let v = 1
|
|
||||||
let v = [1,2,3]
|
|
||||||
let v = {'a': 1, 'b': 2}
|
|
||||||
let v = 3.4
|
|
||||||
let v = 'hello'
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func Test_let_termcap()
|
|
||||||
" Nvim does not support `:set termcap`.
|
|
||||||
return
|
|
||||||
" Terminal code
|
|
||||||
let old_t_te = &t_te
|
|
||||||
let &t_te = "\<Esc>[yes;"
|
|
||||||
call assert_match('t_te.*^[[yes;', execute("set termcap"))
|
|
||||||
let &t_te = old_t_te
|
|
||||||
|
|
||||||
if exists("+t_k1")
|
|
||||||
" Key code
|
|
||||||
let old_t_k1 = &t_k1
|
|
||||||
let &t_k1 = "that"
|
|
||||||
call assert_match('t_k1.*that', execute("set termcap"))
|
|
||||||
let &t_k1 = old_t_k1
|
|
||||||
endif
|
|
||||||
|
|
||||||
call assert_fails('let x = &t_xx', 'E15')
|
|
||||||
let &t_xx = "yes"
|
|
||||||
call assert_equal("yes", &t_xx)
|
|
||||||
let &t_xx = ""
|
|
||||||
call assert_fails('let x = &t_xx', 'E15')
|
|
||||||
endfunc
|
|
||||||
|
|
||||||
func Test_let_option_error()
|
|
||||||
let _w = &tw
|
|
||||||
let &tw = 80
|
|
||||||
call assert_fails('let &tw .= 1', 'E734')
|
|
||||||
call assert_equal(80, &tw)
|
|
||||||
let &tw = _w
|
|
||||||
|
|
||||||
let _w = &fillchars
|
|
||||||
let &fillchars = "vert:|"
|
|
||||||
call assert_fails('let &fillchars += "diff:-"', 'E734')
|
|
||||||
call assert_equal("vert:|", &fillchars)
|
|
||||||
let &fillchars = _w
|
|
||||||
endfunc
|
|
@ -1359,7 +1359,7 @@ func Test_ChangedP()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
let g:setline_handled = v:false
|
let g:setline_handled = v:false
|
||||||
func! SetLineOne()
|
func SetLineOne()
|
||||||
if !g:setline_handled
|
if !g:setline_handled
|
||||||
call setline(1, "(x)")
|
call setline(1, "(x)")
|
||||||
let g:setline_handled = v:true
|
let g:setline_handled = v:true
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
function! Test_charsearch()
|
func Test_charsearch()
|
||||||
enew!
|
enew!
|
||||||
call append(0, ['Xabcdefghijkemnopqretuvwxyz',
|
call append(0, ['Xabcdefghijkemnopqretuvwxyz',
|
||||||
\ 'Yabcdefghijkemnopqretuvwxyz',
|
\ 'Yabcdefghijkemnopqretuvwxyz',
|
||||||
@ -29,10 +29,10 @@ function! Test_charsearch()
|
|||||||
normal! ;;p
|
normal! ;;p
|
||||||
call assert_equal('ZabcdeZfghijkZZemnokqretkZvwxyz', getline(3))
|
call assert_equal('ZabcdeZfghijkZZemnokqretkZvwxyz', getline(3))
|
||||||
enew!
|
enew!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
" Test for t,f,F,T movement commands and 'cpo-;' setting
|
" Test for t,f,F,T movement commands and 'cpo-;' setting
|
||||||
function! Test_search_cmds()
|
func Test_search_cmds()
|
||||||
enew!
|
enew!
|
||||||
call append(0, ["aaa two three four", " zzz", "yyy ",
|
call append(0, ["aaa two three four", " zzz", "yyy ",
|
||||||
\ "bbb yee yoo four", "ccc two three four",
|
\ "bbb yee yoo four", "ccc two three four",
|
||||||
@ -59,4 +59,4 @@ function! Test_search_cmds()
|
|||||||
call assert_equal('ccc', getline(5))
|
call assert_equal('ccc', getline(5))
|
||||||
call assert_equal('ddd yee y', getline(6))
|
call assert_equal('ddd yee y', getline(6))
|
||||||
enew!
|
enew!
|
||||||
endfunction
|
endfunc
|
||||||
|
@ -14,6 +14,6 @@ function! Test_search_cmds()
|
|||||||
normal! ,
|
normal! ,
|
||||||
call assert_equal([0, 1, 28, 0], getpos('.'))
|
call assert_equal([0, 1, 28, 0], getpos('.'))
|
||||||
bw!
|
bw!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -11,7 +11,7 @@ source view_util.vim
|
|||||||
|
|
||||||
" Needs to come first until the bug in getchar() is
|
" Needs to come first until the bug in getchar() is
|
||||||
" fixed: https://groups.google.com/d/msg/vim_dev/fXL9yme4H4c/bOR-U6_bAQAJ
|
" fixed: https://groups.google.com/d/msg/vim_dev/fXL9yme4H4c/bOR-U6_bAQAJ
|
||||||
func! Test_edit_00b()
|
func Test_edit_00b()
|
||||||
new
|
new
|
||||||
call setline(1, ['abc '])
|
call setline(1, ['abc '])
|
||||||
inoreabbr <buffer> h here some more
|
inoreabbr <buffer> h here some more
|
||||||
@ -23,7 +23,7 @@ func! Test_edit_00b()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_01()
|
func Test_edit_01()
|
||||||
" set for Travis CI?
|
" set for Travis CI?
|
||||||
" set nocp noesckeys
|
" set nocp noesckeys
|
||||||
new
|
new
|
||||||
@ -61,7 +61,7 @@ func! Test_edit_01()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_02()
|
func Test_edit_02()
|
||||||
" Change cursor position in InsertCharPre command
|
" Change cursor position in InsertCharPre command
|
||||||
new
|
new
|
||||||
call setline(1, 'abc')
|
call setline(1, 'abc')
|
||||||
@ -101,7 +101,7 @@ func! Test_edit_02()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_03()
|
func Test_edit_03()
|
||||||
" Change cursor after <c-o> command to end of line
|
" Change cursor after <c-o> command to end of line
|
||||||
new
|
new
|
||||||
call setline(1, 'abc')
|
call setline(1, 'abc')
|
||||||
@ -120,7 +120,7 @@ func! Test_edit_03()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_04()
|
func Test_edit_04()
|
||||||
" test for :stopinsert
|
" test for :stopinsert
|
||||||
new
|
new
|
||||||
call setline(1, 'abc')
|
call setline(1, 'abc')
|
||||||
@ -132,7 +132,7 @@ func! Test_edit_04()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_05()
|
func Test_edit_05()
|
||||||
" test for folds being opened
|
" test for folds being opened
|
||||||
new
|
new
|
||||||
call setline(1, ['abcX', 'abcX', 'zzzZ'])
|
call setline(1, ['abcX', 'abcX', 'zzzZ'])
|
||||||
@ -154,7 +154,7 @@ func! Test_edit_05()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_06()
|
func Test_edit_06()
|
||||||
" Test in diff mode
|
" Test in diff mode
|
||||||
if !has("diff") || !executable("diff")
|
if !has("diff") || !executable("diff")
|
||||||
return
|
return
|
||||||
@ -176,7 +176,7 @@ func! Test_edit_06()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_07()
|
func Test_edit_07()
|
||||||
" 1) Test with completion <c-l> when popupmenu is visible
|
" 1) Test with completion <c-l> when popupmenu is visible
|
||||||
new
|
new
|
||||||
call setline(1, 'J')
|
call setline(1, 'J')
|
||||||
@ -228,7 +228,7 @@ func! Test_edit_08()
|
|||||||
unlet g:bufnr
|
unlet g:bufnr
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_09()
|
func Test_edit_09()
|
||||||
" test i_CTRL-\ combinations
|
" test i_CTRL-\ combinations
|
||||||
new
|
new
|
||||||
call setline(1, ['abc', 'def', 'ghi'])
|
call setline(1, ['abc', 'def', 'ghi'])
|
||||||
@ -258,7 +258,7 @@ func! Test_edit_09()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_10()
|
func Test_edit_10()
|
||||||
" Test for starting selectmode
|
" Test for starting selectmode
|
||||||
new
|
new
|
||||||
set selectmode=key keymodel=startsel
|
set selectmode=key keymodel=startsel
|
||||||
@ -270,7 +270,7 @@ func! Test_edit_10()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_11()
|
func Test_edit_11()
|
||||||
" Test that indenting kicks in
|
" Test that indenting kicks in
|
||||||
new
|
new
|
||||||
set cindent
|
set cindent
|
||||||
@ -314,7 +314,7 @@ func! Test_edit_11()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_11_indentexpr()
|
func Test_edit_11_indentexpr()
|
||||||
" Test that indenting kicks in
|
" Test that indenting kicks in
|
||||||
new
|
new
|
||||||
" Use indentexpr instead of cindenting
|
" Use indentexpr instead of cindenting
|
||||||
@ -341,7 +341,7 @@ func! Test_edit_11_indentexpr()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_12()
|
func Test_edit_12()
|
||||||
" Test changing indent in replace mode
|
" Test changing indent in replace mode
|
||||||
new
|
new
|
||||||
call setline(1, ["\tabc", "\tdef"])
|
call setline(1, ["\tabc", "\tdef"])
|
||||||
@ -393,7 +393,7 @@ func! Test_edit_12()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_13()
|
func Test_edit_13()
|
||||||
" Test smartindenting
|
" Test smartindenting
|
||||||
if exists("+smartindent")
|
if exists("+smartindent")
|
||||||
new
|
new
|
||||||
@ -481,7 +481,7 @@ func! Test_edit_CTRL_()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" needs to come first, to have the @. register empty
|
" needs to come first, to have the @. register empty
|
||||||
func! Test_edit_00a_CTRL_A()
|
func Test_edit_00a_CTRL_A()
|
||||||
" Test pressing CTRL-A
|
" Test pressing CTRL-A
|
||||||
new
|
new
|
||||||
call setline(1, repeat([''], 5))
|
call setline(1, repeat([''], 5))
|
||||||
@ -501,7 +501,7 @@ func! Test_edit_00a_CTRL_A()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_EY()
|
func Test_edit_CTRL_EY()
|
||||||
" Ctrl-E/ Ctrl-Y in insert mode completion to scroll
|
" Ctrl-E/ Ctrl-Y in insert mode completion to scroll
|
||||||
10new
|
10new
|
||||||
call setline(1, range(1, 100))
|
call setline(1, range(1, 100))
|
||||||
@ -517,7 +517,7 @@ func! Test_edit_CTRL_EY()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_G()
|
func Test_edit_CTRL_G()
|
||||||
new
|
new
|
||||||
call setline(1, ['foobar', 'foobar', 'foobar'])
|
call setline(1, ['foobar', 'foobar', 'foobar'])
|
||||||
call cursor(2, 4)
|
call cursor(2, 4)
|
||||||
@ -535,7 +535,7 @@ func! Test_edit_CTRL_G()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_I()
|
func Test_edit_CTRL_I()
|
||||||
" Tab in completion mode
|
" Tab in completion mode
|
||||||
let path=expand("%:p:h")
|
let path=expand("%:p:h")
|
||||||
new
|
new
|
||||||
@ -559,7 +559,7 @@ func! Test_edit_CTRL_I()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_K()
|
func Test_edit_CTRL_K()
|
||||||
" Test pressing CTRL-K (basically only dictionary completion and digraphs
|
" Test pressing CTRL-K (basically only dictionary completion and digraphs
|
||||||
" the rest is already covered
|
" the rest is already covered
|
||||||
call writefile(['A', 'AA', 'AAA', 'AAAA'], 'Xdictionary.txt')
|
call writefile(['A', 'AA', 'AAA', 'AAAA'], 'Xdictionary.txt')
|
||||||
@ -632,7 +632,7 @@ func! Test_edit_CTRL_K()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_L()
|
func Test_edit_CTRL_L()
|
||||||
" Test Ctrl-X Ctrl-L (line completion)
|
" Test Ctrl-X Ctrl-L (line completion)
|
||||||
new
|
new
|
||||||
set complete=.
|
set complete=.
|
||||||
@ -688,7 +688,7 @@ func! Test_edit_CTRL_L()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_N()
|
func Test_edit_CTRL_N()
|
||||||
" Check keyword completion
|
" Check keyword completion
|
||||||
new
|
new
|
||||||
set complete=.
|
set complete=.
|
||||||
@ -709,7 +709,7 @@ func! Test_edit_CTRL_N()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_O()
|
func Test_edit_CTRL_O()
|
||||||
" Check for CTRL-O in insert mode
|
" Check for CTRL-O in insert mode
|
||||||
new
|
new
|
||||||
inoreabbr <buffer> h here some more
|
inoreabbr <buffer> h here some more
|
||||||
@ -749,7 +749,7 @@ func! Test_edit_CTRL_R()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_S()
|
func Test_edit_CTRL_S()
|
||||||
" Test pressing CTRL-S (basically only spellfile completion)
|
" Test pressing CTRL-S (basically only spellfile completion)
|
||||||
" the rest is already covered
|
" the rest is already covered
|
||||||
new
|
new
|
||||||
@ -793,7 +793,7 @@ func! Test_edit_CTRL_S()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_T()
|
func Test_edit_CTRL_T()
|
||||||
" Check for CTRL-T and CTRL-X CTRL-T in insert mode
|
" Check for CTRL-T and CTRL-X CTRL-T in insert mode
|
||||||
" 1) increase indent
|
" 1) increase indent
|
||||||
new
|
new
|
||||||
@ -870,7 +870,7 @@ func! Test_edit_CTRL_T()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_U()
|
func Test_edit_CTRL_U()
|
||||||
" Test 'completefunc'
|
" Test 'completefunc'
|
||||||
new
|
new
|
||||||
" -1, -2 and -3 are special return values
|
" -1, -2 and -3 are special return values
|
||||||
@ -929,7 +929,7 @@ func! Test_edit_CTRL_U()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_Z()
|
func Test_edit_CTRL_Z()
|
||||||
" Ctrl-Z when insertmode is not set inserts it literally
|
" Ctrl-Z when insertmode is not set inserts it literally
|
||||||
new
|
new
|
||||||
call setline(1, 'abc')
|
call setline(1, 'abc')
|
||||||
@ -939,7 +939,7 @@ func! Test_edit_CTRL_Z()
|
|||||||
" TODO: How to Test Ctrl-Z in insert mode, e.g. suspend?
|
" TODO: How to Test Ctrl-Z in insert mode, e.g. suspend?
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_DROP()
|
func Test_edit_DROP()
|
||||||
if !has("dnd")
|
if !has("dnd")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -955,7 +955,7 @@ func! Test_edit_DROP()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_CTRL_V()
|
func Test_edit_CTRL_V()
|
||||||
if has("ebcdic")
|
if has("ebcdic")
|
||||||
return
|
return
|
||||||
endif
|
endif
|
||||||
@ -983,7 +983,7 @@ func! Test_edit_CTRL_V()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_F1()
|
func Test_edit_F1()
|
||||||
" Pressing <f1>
|
" Pressing <f1>
|
||||||
new
|
new
|
||||||
call feedkeys(":set im\<cr>\<f1>\<c-l>", 'tnix')
|
call feedkeys(":set im\<cr>\<f1>\<c-l>", 'tnix')
|
||||||
@ -993,7 +993,7 @@ func! Test_edit_F1()
|
|||||||
bw
|
bw
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_F21()
|
func Test_edit_F21()
|
||||||
" Pressing <f21>
|
" Pressing <f21>
|
||||||
" sends a netbeans command
|
" sends a netbeans command
|
||||||
if has("netbeans_intg")
|
if has("netbeans_intg")
|
||||||
@ -1004,7 +1004,7 @@ func! Test_edit_F21()
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_HOME_END()
|
func Test_edit_HOME_END()
|
||||||
" Test Home/End Keys
|
" Test Home/End Keys
|
||||||
new
|
new
|
||||||
set foldopen+=hor
|
set foldopen+=hor
|
||||||
@ -1019,7 +1019,7 @@ func! Test_edit_HOME_END()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_INS()
|
func Test_edit_INS()
|
||||||
" Test for Pressing <Insert>
|
" Test for Pressing <Insert>
|
||||||
new
|
new
|
||||||
call setline(1, ['abc', 'def'])
|
call setline(1, ['abc', 'def'])
|
||||||
@ -1033,7 +1033,7 @@ func! Test_edit_INS()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_LEFT_RIGHT()
|
func Test_edit_LEFT_RIGHT()
|
||||||
" Left, Shift-Left, Right, Shift-Right
|
" Left, Shift-Left, Right, Shift-Right
|
||||||
new
|
new
|
||||||
call setline(1, ['abc def ghi', 'ABC DEF GHI', 'ZZZ YYY XXX'])
|
call setline(1, ['abc def ghi', 'ABC DEF GHI', 'ZZZ YYY XXX'])
|
||||||
@ -1080,7 +1080,7 @@ func! Test_edit_LEFT_RIGHT()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_MOUSE()
|
func Test_edit_MOUSE()
|
||||||
" This is a simple test, since we not really using the mouse here
|
" This is a simple test, since we not really using the mouse here
|
||||||
if !has("mouse")
|
if !has("mouse")
|
||||||
return
|
return
|
||||||
@ -1135,7 +1135,7 @@ func! Test_edit_MOUSE()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_PAGEUP_PAGEDOWN()
|
func Test_edit_PAGEUP_PAGEDOWN()
|
||||||
10new
|
10new
|
||||||
call setline(1, repeat(['abc def ghi'], 30))
|
call setline(1, repeat(['abc def ghi'], 30))
|
||||||
call cursor(1, 1)
|
call cursor(1, 1)
|
||||||
@ -1234,7 +1234,7 @@ func! Test_edit_PAGEUP_PAGEDOWN()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_forbidden()
|
func Test_edit_forbidden()
|
||||||
new
|
new
|
||||||
" 1) edit in the sandbox is not allowed
|
" 1) edit in the sandbox is not allowed
|
||||||
call setline(1, 'a')
|
call setline(1, 'a')
|
||||||
@ -1294,7 +1294,7 @@ func! Test_edit_forbidden()
|
|||||||
bw!
|
bw!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_edit_rightleft()
|
func Test_edit_rightleft()
|
||||||
" Cursor in rightleft mode moves differently
|
" Cursor in rightleft mode moves differently
|
||||||
if !exists("+rightleft")
|
if !exists("+rightleft")
|
||||||
return
|
return
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
|
|
||||||
" Test if fnameescape is correct for special chars like !
|
" Test if fnameescape is correct for special chars like !
|
||||||
function! Test_fnameescape()
|
func Test_fnameescape()
|
||||||
let fname = 'Xspa ce'
|
let fname = 'Xspa ce'
|
||||||
let status = v:false
|
let status = v:false
|
||||||
try
|
try
|
||||||
@ -18,4 +18,4 @@ function! Test_fnameescape()
|
|||||||
endtry
|
endtry
|
||||||
call assert_true(status, "ExclamationMark")
|
call assert_true(status, "ExclamationMark")
|
||||||
call delete(fname)
|
call delete(fname)
|
||||||
endfunction
|
endfunc
|
||||||
|
@ -1,112 +1,112 @@
|
|||||||
function! GetCwdInfo(win, tab)
|
func GetCwdInfo(win, tab)
|
||||||
let tab_changed = 0
|
let tab_changed = 0
|
||||||
let mod = ":t"
|
let mod = ":t"
|
||||||
if a:tab > 0 && a:tab != tabpagenr()
|
if a:tab > 0 && a:tab != tabpagenr()
|
||||||
let tab_changed = 1
|
let tab_changed = 1
|
||||||
exec "tabnext " . a:tab
|
exec "tabnext " . a:tab
|
||||||
endif
|
endif
|
||||||
let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
|
let bufname = fnamemodify(bufname(winbufnr(a:win)), mod)
|
||||||
if tab_changed
|
if tab_changed
|
||||||
tabprevious
|
tabprevious
|
||||||
endif
|
endif
|
||||||
if a:win == 0 && a:tab == 0
|
if a:win == 0 && a:tab == 0
|
||||||
let dirname = fnamemodify(getcwd(), mod)
|
let dirname = fnamemodify(getcwd(), mod)
|
||||||
let lflag = haslocaldir()
|
let lflag = haslocaldir()
|
||||||
elseif a:tab == 0
|
elseif a:tab == 0
|
||||||
let dirname = fnamemodify(getcwd(a:win), mod)
|
let dirname = fnamemodify(getcwd(a:win), mod)
|
||||||
let lflag = haslocaldir(a:win)
|
let lflag = haslocaldir(a:win)
|
||||||
else
|
else
|
||||||
let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
|
let dirname = fnamemodify(getcwd(a:win, a:tab), mod)
|
||||||
let lflag = haslocaldir(a:win, a:tab)
|
let lflag = haslocaldir(a:win, a:tab)
|
||||||
endif
|
endif
|
||||||
return bufname . ' ' . dirname . ' ' . lflag
|
return bufname . ' ' . dirname . ' ' . lflag
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
" Do all test in a separate window to avoid E211 when we recursively
|
" Do all test in a separate window to avoid E211 when we recursively
|
||||||
" delete the Xtopdir directory during cleanup
|
" delete the Xtopdir directory during cleanup
|
||||||
function SetUp()
|
function SetUp()
|
||||||
set visualbell
|
set visualbell
|
||||||
set nocp viminfo+=nviminfo
|
set nocp viminfo+=nviminfo
|
||||||
|
|
||||||
" On windows a swapfile in Xtopdir prevents it from being cleaned up.
|
" On windows a swapfile in Xtopdir prevents it from being cleaned up.
|
||||||
set noswapfile
|
set noswapfile
|
||||||
|
|
||||||
" On windows a stale "Xtopdir" directory may exist, remove it so that
|
" On windows a stale "Xtopdir" directory may exist, remove it so that
|
||||||
" we start from a clean state.
|
" we start from a clean state.
|
||||||
call delete("Xtopdir", "rf")
|
call delete("Xtopdir", "rf")
|
||||||
new
|
new
|
||||||
call mkdir('Xtopdir')
|
call mkdir('Xtopdir')
|
||||||
cd Xtopdir
|
cd Xtopdir
|
||||||
let g:topdir = getcwd()
|
let g:topdir = getcwd()
|
||||||
call mkdir('Xdir1')
|
call mkdir('Xdir1')
|
||||||
call mkdir('Xdir2')
|
call mkdir('Xdir2')
|
||||||
call mkdir('Xdir3')
|
call mkdir('Xdir3')
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
let g:cwd=getcwd()
|
let g:cwd=getcwd()
|
||||||
function TearDown()
|
function TearDown()
|
||||||
q
|
q
|
||||||
exec "cd " . g:cwd
|
exec "cd " . g:cwd
|
||||||
call delete("Xtopdir", "rf")
|
call delete("Xtopdir", "rf")
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function Test_GetCwd()
|
function Test_GetCwd()
|
||||||
new a
|
new a
|
||||||
new b
|
new b
|
||||||
new c
|
new c
|
||||||
3wincmd w
|
3wincmd w
|
||||||
lcd Xdir1
|
lcd Xdir1
|
||||||
call assert_equal("a Xdir1 1", GetCwdInfo(0, 0))
|
call assert_equal("a Xdir1 1", GetCwdInfo(0, 0))
|
||||||
call assert_equal(g:topdir, getcwd(-1))
|
call assert_equal(g:topdir, getcwd(-1))
|
||||||
wincmd W
|
wincmd W
|
||||||
call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
|
call assert_equal("b Xtopdir 0", GetCwdInfo(0, 0))
|
||||||
call assert_equal(g:topdir, getcwd(-1))
|
call assert_equal(g:topdir, getcwd(-1))
|
||||||
wincmd W
|
wincmd W
|
||||||
lcd Xdir3
|
lcd Xdir3
|
||||||
call assert_equal("c Xdir3 1", GetCwdInfo(0, 0))
|
call assert_equal("c Xdir3 1", GetCwdInfo(0, 0))
|
||||||
call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0))
|
call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), 0))
|
||||||
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
|
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), 0))
|
||||||
call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0))
|
call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), 0))
|
||||||
call assert_equal(g:topdir, getcwd(-1))
|
call assert_equal(g:topdir, getcwd(-1))
|
||||||
wincmd W
|
wincmd W
|
||||||
call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
|
call assert_equal("a Xdir1 1", GetCwdInfo(bufwinnr("a"), tabpagenr()))
|
||||||
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
|
call assert_equal("b Xtopdir 0", GetCwdInfo(bufwinnr("b"), tabpagenr()))
|
||||||
call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
|
call assert_equal("c Xdir3 1", GetCwdInfo(bufwinnr("c"), tabpagenr()))
|
||||||
call assert_equal(g:topdir, getcwd(-1))
|
call assert_equal(g:topdir, getcwd(-1))
|
||||||
|
|
||||||
tabnew x
|
tabnew x
|
||||||
new y
|
new y
|
||||||
new z
|
new z
|
||||||
3wincmd w
|
3wincmd w
|
||||||
call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
|
call assert_equal("x Xtopdir 0", GetCwdInfo(0, 0))
|
||||||
call assert_equal(g:topdir, getcwd(-1))
|
call assert_equal(g:topdir, getcwd(-1))
|
||||||
wincmd W
|
wincmd W
|
||||||
lcd Xdir2
|
lcd Xdir2
|
||||||
call assert_equal("y Xdir2 1", GetCwdInfo(0, 0))
|
call assert_equal("y Xdir2 1", GetCwdInfo(0, 0))
|
||||||
call assert_equal(g:topdir, getcwd(-1))
|
call assert_equal(g:topdir, getcwd(-1))
|
||||||
wincmd W
|
wincmd W
|
||||||
lcd Xdir3
|
lcd Xdir3
|
||||||
call assert_equal("z Xdir3 1", GetCwdInfo(0, 0))
|
call assert_equal("z Xdir3 1", GetCwdInfo(0, 0))
|
||||||
call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
|
call assert_equal("x Xtopdir 0", GetCwdInfo(bufwinnr("x"), 0))
|
||||||
call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0))
|
call assert_equal("y Xdir2 1", GetCwdInfo(bufwinnr("y"), 0))
|
||||||
call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0))
|
call assert_equal("z Xdir3 1", GetCwdInfo(bufwinnr("z"), 0))
|
||||||
call assert_equal(g:topdir, getcwd(-1))
|
call assert_equal(g:topdir, getcwd(-1))
|
||||||
let tp_nr = tabpagenr()
|
let tp_nr = tabpagenr()
|
||||||
tabrewind
|
tabrewind
|
||||||
call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
|
call assert_equal("x Xtopdir 0", GetCwdInfo(3, tp_nr))
|
||||||
call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr))
|
call assert_equal("y Xdir2 1", GetCwdInfo(2, tp_nr))
|
||||||
call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr))
|
call assert_equal("z Xdir3 1", GetCwdInfo(1, tp_nr))
|
||||||
call assert_equal(g:topdir, getcwd(-1))
|
call assert_equal(g:topdir, getcwd(-1))
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
function Test_GetCwd_lcd_shellslash()
|
function Test_GetCwd_lcd_shellslash()
|
||||||
new
|
new
|
||||||
let root = fnamemodify('/', ':p')
|
let root = fnamemodify('/', ':p')
|
||||||
exe 'lcd '.root
|
exe 'lcd '.root
|
||||||
let cwd = getcwd()
|
let cwd = getcwd()
|
||||||
if !exists('+shellslash') || &shellslash
|
if !exists('+shellslash') || &shellslash
|
||||||
call assert_equal(cwd[-1:], '/')
|
call assert_equal(cwd[-1:], '/')
|
||||||
else
|
else
|
||||||
call assert_equal(cwd[-1:], '\')
|
call assert_equal(cwd[-1:], '\')
|
||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
@ -39,15 +39,15 @@ func Test_highlight()
|
|||||||
call assert_fails("hi Crash term='asdf", "E475:")
|
call assert_fails("hi Crash term='asdf", "E475:")
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
function! HighlightArgs(name)
|
func HighlightArgs(name)
|
||||||
return 'hi ' . substitute(split(execute('hi ' . a:name), '\n')[0], '\<xxx\>', '', '')
|
return 'hi ' . substitute(split(execute('hi ' . a:name), '\n')[0], '\<xxx\>', '', '')
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! IsColorable()
|
func IsColorable()
|
||||||
return has('gui_running') || str2nr(&t_Co) >= 8
|
return has('gui_running') || str2nr(&t_Co) >= 8
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! HiCursorLine()
|
func HiCursorLine()
|
||||||
let hiCursorLine = HighlightArgs('CursorLine')
|
let hiCursorLine = HighlightArgs('CursorLine')
|
||||||
if has('gui_running')
|
if has('gui_running')
|
||||||
let guibg = matchstr(hiCursorLine, 'guibg=\w\+')
|
let guibg = matchstr(hiCursorLine, 'guibg=\w\+')
|
||||||
@ -58,9 +58,9 @@ function! HiCursorLine()
|
|||||||
let hi_bg = 'hi CursorLine cterm=NONE ctermbg=Gray'
|
let hi_bg = 'hi CursorLine cterm=NONE ctermbg=Gray'
|
||||||
endif
|
endif
|
||||||
return [hiCursorLine, hi_ul, hi_bg]
|
return [hiCursorLine, hi_ul, hi_bg]
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Check_lcs_eol_attrs(attrs, row, col)
|
func Check_lcs_eol_attrs(attrs, row, col)
|
||||||
let save_lcs = &lcs
|
let save_lcs = &lcs
|
||||||
set list
|
set list
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ function! Check_lcs_eol_attrs(attrs, row, col)
|
|||||||
|
|
||||||
set nolist
|
set nolist
|
||||||
let &lcs = save_lcs
|
let &lcs = save_lcs
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
func Test_highlight_eol_with_cursorline()
|
func Test_highlight_eol_with_cursorline()
|
||||||
let [hiCursorLine, hi_ul, hi_bg] = HiCursorLine()
|
let [hiCursorLine, hi_ul, hi_bg] = HiCursorLine()
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
" Test for v:hlsearch
|
" Test for v:hlsearch
|
||||||
|
|
||||||
function! Test_hlsearch()
|
func Test_hlsearch()
|
||||||
new
|
new
|
||||||
call setline(1, repeat(['aaa'], 10))
|
call setline(1, repeat(['aaa'], 10))
|
||||||
set hlsearch nolazyredraw
|
set hlsearch nolazyredraw
|
||||||
@ -30,7 +30,7 @@ function! Test_hlsearch()
|
|||||||
call garbagecollect(1)
|
call garbagecollect(1)
|
||||||
call getchar(1)
|
call getchar(1)
|
||||||
enew!
|
enew!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
func Test_hlsearch_hangs()
|
func Test_hlsearch_hangs()
|
||||||
if !has('reltime') || !has('float')
|
if !has('reltime') || !has('float')
|
||||||
|
@ -150,6 +150,59 @@ func Test_let_utf8_environment()
|
|||||||
call assert_equal('ĀĒĪŌŪあいうえお', $a)
|
call assert_equal('ĀĒĪŌŪあいうえお', $a)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_let_no_type_checking()
|
||||||
|
let v = 1
|
||||||
|
let v = [1,2,3]
|
||||||
|
let v = {'a': 1, 'b': 2}
|
||||||
|
let v = 3.4
|
||||||
|
let v = 'hello'
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_let_termcap()
|
||||||
|
throw 'skipped: Nvim does not support termcap option'
|
||||||
|
" Terminal code
|
||||||
|
let old_t_te = &t_te
|
||||||
|
let &t_te = "\<Esc>[yes;"
|
||||||
|
call assert_match('t_te.*^[[yes;', execute("set termcap"))
|
||||||
|
let &t_te = old_t_te
|
||||||
|
|
||||||
|
if exists("+t_k1")
|
||||||
|
" Key code
|
||||||
|
let old_t_k1 = &t_k1
|
||||||
|
let &t_k1 = "that"
|
||||||
|
call assert_match('t_k1.*that', execute("set termcap"))
|
||||||
|
let &t_k1 = old_t_k1
|
||||||
|
endif
|
||||||
|
|
||||||
|
call assert_fails('let x = &t_xx', 'E113')
|
||||||
|
let &t_xx = "yes"
|
||||||
|
call assert_equal("yes", &t_xx)
|
||||||
|
let &t_xx = ""
|
||||||
|
call assert_fails('let x = &t_xx', 'E113')
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_let_option_error()
|
||||||
|
let _w = &tw
|
||||||
|
let &tw = 80
|
||||||
|
call assert_fails('let &tw .= 1', 'E734')
|
||||||
|
call assert_equal(80, &tw)
|
||||||
|
let &tw = _w
|
||||||
|
|
||||||
|
let _w = &fillchars
|
||||||
|
let &fillchars = "vert:|"
|
||||||
|
call assert_fails('let &fillchars += "diff:-"', 'E734')
|
||||||
|
call assert_equal("vert:|", &fillchars)
|
||||||
|
let &fillchars = _w
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_let_errors()
|
||||||
|
let s = 'abcd'
|
||||||
|
call assert_fails('let s[1] = 5', 'E689:')
|
||||||
|
|
||||||
|
let l = [1, 2, 3]
|
||||||
|
call assert_fails('let l[:] = 5', 'E709:')
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_let_heredoc_fails()
|
func Test_let_heredoc_fails()
|
||||||
call assert_fails('let v =<< marker', 'E991:')
|
call assert_fails('let v =<< marker', 'E991:')
|
||||||
|
|
||||||
|
@ -16,9 +16,9 @@ function s:screen_lines(lnum, width) abort
|
|||||||
return ScreenLines(a:lnum, a:width)
|
return ScreenLines(a:lnum, a:width)
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! s:compare_lines(expect, actual)
|
func s:compare_lines(expect, actual)
|
||||||
call assert_equal(join(a:expect, "\n"), join(a:actual, "\n"))
|
call assert_equal(join(a:expect, "\n"), join(a:actual, "\n"))
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function s:test_windows(...)
|
function s:test_windows(...)
|
||||||
call NewWindow(10, 20)
|
call NewWindow(10, 20)
|
||||||
|
@ -9,15 +9,15 @@ endif
|
|||||||
|
|
||||||
source view_util.vim
|
source view_util.vim
|
||||||
|
|
||||||
function s:screen_lines(lnum, width) abort
|
func s:screen_lines(lnum, width) abort
|
||||||
return ScreenLines(a:lnum, a:width)
|
return ScreenLines(a:lnum, a:width)
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! s:compare_lines(expect, actual)
|
func s:compare_lines(expect, actual)
|
||||||
call assert_equal(a:expect, a:actual)
|
call assert_equal(a:expect, a:actual)
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function s:screen_attr(lnum, chars, ...) abort
|
func s:screen_attr(lnum, chars, ...) abort
|
||||||
let line = getline(a:lnum)
|
let line = getline(a:lnum)
|
||||||
let attr = []
|
let attr = []
|
||||||
let prefix = get(a:000, 0, 0)
|
let prefix = get(a:000, 0, 0)
|
||||||
@ -26,18 +26,18 @@ function s:screen_attr(lnum, chars, ...) abort
|
|||||||
let attr += [screenattr(a:lnum, scol + prefix)]
|
let attr += [screenattr(a:lnum, scol + prefix)]
|
||||||
endfor
|
endfor
|
||||||
return attr
|
return attr
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function s:test_windows(...)
|
func s:test_windows(...)
|
||||||
call NewWindow(10, 20)
|
call NewWindow(10, 20)
|
||||||
setl ts=4 sw=4 sts=4 linebreak sbr=+ wrap
|
setl ts=4 sw=4 sts=4 linebreak sbr=+ wrap
|
||||||
exe get(a:000, 0, '')
|
exe get(a:000, 0, '')
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function s:close_windows(...)
|
func s:close_windows(...)
|
||||||
call CloseWindow()
|
call CloseWindow()
|
||||||
exe get(a:000, 0, '')
|
exe get(a:000, 0, '')
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
func Test_linebreak_with_fancy_listchars()
|
func Test_linebreak_with_fancy_listchars()
|
||||||
call s:test_windows("setl list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6")
|
call s:test_windows("setl list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6")
|
||||||
|
@ -27,9 +27,9 @@ function! Test_simple_matchadd()
|
|||||||
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
|
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
|
||||||
|
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_simple_matchadd_and_conceal()
|
func Test_simple_matchadd_and_conceal()
|
||||||
new
|
new
|
||||||
setlocal concealcursor=n conceallevel=1
|
setlocal concealcursor=n conceallevel=1
|
||||||
|
|
||||||
@ -49,9 +49,9 @@ function! Test_simple_matchadd_and_conceal()
|
|||||||
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
|
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
|
||||||
|
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_matchadd_and_conceallevel_3()
|
func Test_matchadd_and_conceallevel_3()
|
||||||
new
|
new
|
||||||
|
|
||||||
setlocal conceallevel=3
|
setlocal conceallevel=3
|
||||||
@ -90,9 +90,9 @@ function! Test_matchadd_and_conceallevel_3()
|
|||||||
|
|
||||||
syntax off
|
syntax off
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_default_conceal_char()
|
func Test_default_conceal_char()
|
||||||
new
|
new
|
||||||
setlocal concealcursor=n conceallevel=1
|
setlocal concealcursor=n conceallevel=1
|
||||||
|
|
||||||
@ -126,9 +126,9 @@ function! Test_default_conceal_char()
|
|||||||
|
|
||||||
let &listchars = listchars_save
|
let &listchars = listchars_save
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_syn_and_match_conceal()
|
func Test_syn_and_match_conceal()
|
||||||
new
|
new
|
||||||
setlocal concealcursor=n conceallevel=1
|
setlocal concealcursor=n conceallevel=1
|
||||||
|
|
||||||
@ -162,9 +162,9 @@ function! Test_syn_and_match_conceal()
|
|||||||
|
|
||||||
syntax off
|
syntax off
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_clearmatches()
|
func Test_clearmatches()
|
||||||
new
|
new
|
||||||
setlocal concealcursor=n conceallevel=1
|
setlocal concealcursor=n conceallevel=1
|
||||||
|
|
||||||
@ -201,9 +201,9 @@ function! Test_clearmatches()
|
|||||||
call assert_equal({'group': 'Conceal', 'pattern': '\%2l ', 'priority': 10, 'id': a[0].id, 'conceal': 'Z'}, a[0])
|
call assert_equal({'group': 'Conceal', 'pattern': '\%2l ', 'priority': 10, 'id': a[0].id, 'conceal': 'Z'}, a[0])
|
||||||
|
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_using_matchaddpos()
|
func Test_using_matchaddpos()
|
||||||
new
|
new
|
||||||
setlocal concealcursor=n conceallevel=1
|
setlocal concealcursor=n conceallevel=1
|
||||||
" set filetype and :syntax on to change screenattr()
|
" set filetype and :syntax on to change screenattr()
|
||||||
@ -232,9 +232,9 @@ function! Test_using_matchaddpos()
|
|||||||
|
|
||||||
syntax off
|
syntax off
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_matchadd_repeat_conceal_with_syntax_off()
|
func Test_matchadd_repeat_conceal_with_syntax_off()
|
||||||
new
|
new
|
||||||
|
|
||||||
" To test targets in the same line string is replaced with conceal char
|
" To test targets in the same line string is replaced with conceal char
|
||||||
@ -251,9 +251,9 @@ function! Test_matchadd_repeat_conceal_with_syntax_off()
|
|||||||
call assert_equal('t_tt', Screenline(2))
|
call assert_equal('t_tt', Screenline(2))
|
||||||
|
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_matchadd_and_syn_conceal()
|
func Test_matchadd_and_syn_conceal()
|
||||||
new
|
new
|
||||||
let cnt='Inductive bool : Type := | true : bool | false : bool.'
|
let cnt='Inductive bool : Type := | true : bool | false : bool.'
|
||||||
let expect = 'Inductive - : Type := | true : - | false : -.'
|
let expect = 'Inductive - : Type := | true : - | false : -.'
|
||||||
|
@ -36,4 +36,4 @@ function! Test_match_using_multibyte_conceal_char()
|
|||||||
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
|
call assert_equal(screenattr(lnum, 1), screenattr(lnum, 16))
|
||||||
|
|
||||||
quit!
|
quit!
|
||||||
endfunction
|
endfunc
|
||||||
|
@ -2,23 +2,23 @@
|
|||||||
|
|
||||||
source view_util.vim
|
source view_util.vim
|
||||||
|
|
||||||
func! s:screen_lines(start, end) abort
|
func s:screen_lines(start, end) abort
|
||||||
return ScreenLines([a:start, a:end], 8)
|
return ScreenLines([a:start, a:end], 8)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! s:compare_lines(expect, actual)
|
func s:compare_lines(expect, actual)
|
||||||
call assert_equal(a:expect, a:actual)
|
call assert_equal(a:expect, a:actual)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! s:test_windows(h, w) abort
|
func s:test_windows(h, w) abort
|
||||||
call NewWindow(a:h, a:w)
|
call NewWindow(a:h, a:w)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! s:close_windows() abort
|
func s:close_windows() abort
|
||||||
call CloseWindow()
|
call CloseWindow()
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! s:validate_cursor() abort
|
func s:validate_cursor() abort
|
||||||
" update skipcol.
|
" update skipcol.
|
||||||
" wincol():
|
" wincol():
|
||||||
" f_wincol
|
" f_wincol
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
" Test for options
|
" Test for options
|
||||||
|
|
||||||
function! Test_whichwrap()
|
func Test_whichwrap()
|
||||||
set whichwrap=b,s
|
set whichwrap=b,s
|
||||||
call assert_equal('b,s', &whichwrap)
|
call assert_equal('b,s', &whichwrap)
|
||||||
|
|
||||||
|
@ -113,9 +113,9 @@ func Test_function_in_dict()
|
|||||||
call OuterCall()
|
call OuterCall()
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
function! s:cache_clear() dict
|
func s:cache_clear() dict
|
||||||
return self.name
|
return self.name
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
func Test_script_function_in_dict()
|
func Test_script_function_in_dict()
|
||||||
let s:obj = {'name': 'foo'}
|
let s:obj = {'name': 'foo'}
|
||||||
@ -135,10 +135,10 @@ func Test_script_function_in_dict()
|
|||||||
call assert_equal('bar', B())
|
call assert_equal('bar', B())
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
function! s:cache_arg(arg) dict
|
func s:cache_arg(arg) dict
|
||||||
let s:result = self.name . '/' . a:arg
|
let s:result = self.name . '/' . a:arg
|
||||||
return s:result
|
return s:result
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
func Test_script_function_in_dict_arg()
|
func Test_script_function_in_dict_arg()
|
||||||
let s:obj = {'name': 'foo'}
|
let s:obj = {'name': 'foo'}
|
||||||
|
@ -4485,4 +4485,62 @@ func Test_quickfix_window_fails_to_open()
|
|||||||
call delete('XquickfixFails')
|
call delete('XquickfixFails')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test for updating the quickfix buffer whenever the assocaited quickfix list
|
||||||
|
" is changed.
|
||||||
|
func Xqfbuf_update(cchar)
|
||||||
|
call s:setup_commands(a:cchar)
|
||||||
|
|
||||||
|
Xexpr "F1:1:line1"
|
||||||
|
Xopen
|
||||||
|
call assert_equal(['F1|1| line1'], getline(1, '$'))
|
||||||
|
call assert_equal(1, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
|
||||||
|
" Test setqflist() using the 'lines' key in 'what'
|
||||||
|
" add a new entry
|
||||||
|
call g:Xsetlist([], 'a', {'lines' : ['F2:2: line2']})
|
||||||
|
call assert_equal(['F1|1| line1', 'F2|2| line2'], getline(1, '$'))
|
||||||
|
call assert_equal(2, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
" replace all the entries with a single entry
|
||||||
|
call g:Xsetlist([], 'r', {'lines' : ['F3:3: line3']})
|
||||||
|
call assert_equal(['F3|3| line3'], getline(1, '$'))
|
||||||
|
call assert_equal(3, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
" remove all the entries
|
||||||
|
call g:Xsetlist([], 'r', {'lines' : []})
|
||||||
|
call assert_equal([''], getline(1, '$'))
|
||||||
|
call assert_equal(4, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
" add a new list
|
||||||
|
call g:Xsetlist([], ' ', {'lines' : ['F4:4: line4']})
|
||||||
|
call assert_equal(['F4|4| line4'], getline(1, '$'))
|
||||||
|
call assert_equal(1, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
|
||||||
|
" Test setqflist() using the 'items' key in 'what'
|
||||||
|
" add a new entry
|
||||||
|
call g:Xsetlist([], 'a', {'items' : [{'filename' : 'F5', 'lnum' : 5, 'text' : 'line5'}]})
|
||||||
|
call assert_equal(['F4|4| line4', 'F5|5| line5'], getline(1, '$'))
|
||||||
|
call assert_equal(2, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
" replace all the entries with a single entry
|
||||||
|
call g:Xsetlist([], 'r', {'items' : [{'filename' : 'F6', 'lnum' : 6, 'text' : 'line6'}]})
|
||||||
|
call assert_equal(['F6|6| line6'], getline(1, '$'))
|
||||||
|
call assert_equal(3, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
" remove all the entries
|
||||||
|
call g:Xsetlist([], 'r', {'items' : []})
|
||||||
|
call assert_equal([''], getline(1, '$'))
|
||||||
|
call assert_equal(4, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
" add a new list
|
||||||
|
call g:Xsetlist([], ' ', {'items' : [{'filename' : 'F7', 'lnum' : 7, 'text' : 'line7'}]})
|
||||||
|
call assert_equal(['F7|7| line7'], getline(1, '$'))
|
||||||
|
call assert_equal(1, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
|
||||||
|
call g:Xsetlist([], ' ', {})
|
||||||
|
call assert_equal([''], getline(1, '$'))
|
||||||
|
call assert_equal(1, g:Xgetlist({'changedtick' : 0}).changedtick)
|
||||||
|
|
||||||
|
Xclose
|
||||||
|
endfunc
|
||||||
|
|
||||||
|
func Test_qfbuf_update()
|
||||||
|
call Xqfbuf_update('c')
|
||||||
|
call Xqfbuf_update('l')
|
||||||
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
" Tests for smartindent
|
" Tests for smartindent
|
||||||
|
|
||||||
" Tests for not doing smart indenting when it isn't set.
|
" Tests for not doing smart indenting when it isn't set.
|
||||||
function! Test_nosmartindent()
|
func Test_nosmartindent()
|
||||||
new
|
new
|
||||||
call append(0, [" some test text",
|
call append(0, [" some test text",
|
||||||
\ " test text",
|
\ " test text",
|
||||||
\ "test text",
|
\ "test text",
|
||||||
\ " test text"])
|
\ " test text"])
|
||||||
set nocindent nosmartindent autoindent
|
set nocindent nosmartindent autoindent
|
||||||
exe "normal! gg/some\<CR>"
|
exe "normal! gg/some\<CR>"
|
||||||
exe "normal! 2cc#test\<Esc>"
|
exe "normal! 2cc#test\<Esc>"
|
||||||
call assert_equal(" #test", getline(1))
|
call assert_equal(" #test", getline(1))
|
||||||
enew! | close
|
enew! | close
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function MyIndent()
|
func MyIndent()
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
" When 'indentexpr' is set, setting 'si' has no effect.
|
" When 'indentexpr' is set, setting 'si' has no effect.
|
||||||
function Test_smartindent_has_no_effect()
|
func Test_smartindent_has_no_effect()
|
||||||
new
|
new
|
||||||
exe "normal! i\<Tab>one\<Esc>"
|
exe "normal! i\<Tab>one\<Esc>"
|
||||||
set noautoindent
|
set noautoindent
|
||||||
@ -36,6 +36,6 @@ function Test_smartindent_has_no_effect()
|
|||||||
set smartindent&
|
set smartindent&
|
||||||
set indentexpr&
|
set indentexpr&
|
||||||
bwipe!
|
bwipe!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
" vim: shiftwidth=2 sts=2 expandtab
|
" vim: shiftwidth=2 sts=2 expandtab
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
" Tests for multi-line regexps with ":s".
|
" Tests for multi-line regexps with ":s".
|
||||||
|
|
||||||
function! Test_multiline_subst()
|
func Test_multiline_subst()
|
||||||
enew!
|
enew!
|
||||||
call append(0, ["1 aa",
|
call append(0, ["1 aa",
|
||||||
\ "bb",
|
\ "bb",
|
||||||
@ -38,9 +38,9 @@ function! Test_multiline_subst()
|
|||||||
call assert_equal('7x7f', getline(12))
|
call assert_equal('7x7f', getline(12))
|
||||||
call assert_equal('xxxxx', getline(13))
|
call assert_equal('xxxxx', getline(13))
|
||||||
enew!
|
enew!
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Test_substitute_variants()
|
func Test_substitute_variants()
|
||||||
" Validate that all the 2-/3-letter variants which embed the flags into the
|
" Validate that all the 2-/3-letter variants which embed the flags into the
|
||||||
" command name actually work.
|
" command name actually work.
|
||||||
enew!
|
enew!
|
||||||
@ -248,9 +248,9 @@ func Test_sub_cmd_4()
|
|||||||
|
|
||||||
" List entry format: [input, cmd, output]
|
" List entry format: [input, cmd, output]
|
||||||
let tests = [ ['aAa', "s/A/\\=substitute(submatch(0), '.', '\\', '')/",
|
let tests = [ ['aAa', "s/A/\\=substitute(submatch(0), '.', '\\', '')/",
|
||||||
\ ['a\a']],
|
\ ['a\a']],
|
||||||
\ ['bBb', "s/B/\\=substitute(submatch(0), '.', '\\', '')/",
|
\ ['bBb', "s/B/\\=substitute(submatch(0), '.', '\\', '')/",
|
||||||
\ ['b\b']],
|
\ ['b\b']],
|
||||||
\ ['cCc', "s/C/\\=substitute(submatch(0), '.', '\<C-V>\<C-M>', '')/",
|
\ ['cCc', "s/C/\\=substitute(submatch(0), '.', '\<C-V>\<C-M>', '')/",
|
||||||
\ ["c\<C-V>", 'c']],
|
\ ["c\<C-V>", 'c']],
|
||||||
\ ['dDd', "s/D/\\=substitute(submatch(0), '.', '\\\<C-V>\<C-M>', '')/",
|
\ ['dDd', "s/D/\\=substitute(submatch(0), '.', '\\\<C-V>\<C-M>', '')/",
|
||||||
|
@ -301,7 +301,7 @@ func Test_sentence_with_quotes()
|
|||||||
%delete _
|
%delete _
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
func! Test_sentence_with_cursor_on_delimiter()
|
func Test_sentence_with_cursor_on_delimiter()
|
||||||
enew!
|
enew!
|
||||||
call setline(1, "A '([sentence.])' A sentence.")
|
call setline(1, "A '([sentence.])' A sentence.")
|
||||||
|
|
||||||
|
@ -22,17 +22,17 @@ func Test_strchars()
|
|||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
" Test for customlist completion
|
" Test for customlist completion
|
||||||
function! CustomComplete1(lead, line, pos)
|
func CustomComplete1(lead, line, pos)
|
||||||
return ['あ', 'い']
|
return ['あ', 'い']
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! CustomComplete2(lead, line, pos)
|
func CustomComplete2(lead, line, pos)
|
||||||
return ['あたし', 'あたま', 'あたりめ']
|
return ['あたし', 'あたま', 'あたりめ']
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! CustomComplete3(lead, line, pos)
|
func CustomComplete3(lead, line, pos)
|
||||||
return ['Nこ', 'Nん', 'Nぶ']
|
return ['Nこ', 'Nん', 'Nぶ']
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
func Test_customlist_completion()
|
func Test_customlist_completion()
|
||||||
command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
|
command -nargs=1 -complete=customlist,CustomComplete1 Test1 echo
|
||||||
|
@ -29,26 +29,26 @@ function! Chk(a, b, result)
|
|||||||
call Ch(a:a, '<?', a:b, 1)
|
call Ch(a:a, '<?', a:b, 1)
|
||||||
call Ch(a:a, '>?', a:b, 0)
|
call Ch(a:a, '>?', a:b, 0)
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! Check(a, b, result)
|
func Check(a, b, result)
|
||||||
call Chk(a:a, a:b, a:result)
|
call Chk(a:a, a:b, a:result)
|
||||||
call Chk(a:b, a:a, -a:result)
|
call Chk(a:b, a:a, -a:result)
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! LT(a, b)
|
func LT(a, b)
|
||||||
call Check(a:a, a:b, -1)
|
call Check(a:a, a:b, -1)
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! GT(a, b)
|
func GT(a, b)
|
||||||
call Check(a:a, a:b, 1)
|
call Check(a:a, a:b, 1)
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function! EQ(a, b)
|
func EQ(a, b)
|
||||||
call Check(a:a, a:b, 0)
|
call Check(a:a, a:b, 0)
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
function Test_comparisons()
|
func Test_comparisons()
|
||||||
call EQ('', '')
|
call EQ('', '')
|
||||||
call LT('', 'a')
|
call LT('', 'a')
|
||||||
call EQ('abc', 'abc')
|
call EQ('abc', 'abc')
|
||||||
@ -81,11 +81,11 @@ function Test_comparisons()
|
|||||||
for n in range(0xC0, 0xFF)
|
for n in range(0xC0, 0xFF)
|
||||||
call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n))
|
call LT(printf('xYz\xc2\x%.2XUvW', n), printf('XyZ\xc2\x%.2XuVw', n))
|
||||||
endfor
|
endfor
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
" test that g~ap changes one paragraph only.
|
" test that g~ap changes one paragraph only.
|
||||||
function Test_gap()
|
func Test_gap()
|
||||||
new
|
new
|
||||||
call feedkeys("iabcd\n\ndefggg0g~ap", "tx")
|
call feedkeys("iabcd\n\ndefggg0g~ap", "tx")
|
||||||
call assert_equal(["ABCD", "", "defg"], getline(1,3))
|
call assert_equal(["ABCD", "", "defg"], getline(1,3))
|
||||||
endfunction
|
endfunc
|
||||||
|
@ -5,11 +5,11 @@
|
|||||||
" Test environment {{{1
|
" Test environment {{{1
|
||||||
"-------------------------------------------------------------------------------
|
"-------------------------------------------------------------------------------
|
||||||
|
|
||||||
com! XpathINIT let g:Xpath = ''
|
com! XpathINIT let g:Xpath = ''
|
||||||
com! -nargs=1 -bar Xpath let g:Xpath = g:Xpath . <args>
|
com! -nargs=1 -bar Xpath let g:Xpath = g:Xpath . <args>
|
||||||
|
|
||||||
" Append a message to the "messages" file
|
" Append a message to the "messages" file
|
||||||
func! Xout(text)
|
func Xout(text)
|
||||||
split messages
|
split messages
|
||||||
$put =a:text
|
$put =a:text
|
||||||
wq
|
wq
|
||||||
@ -50,7 +50,7 @@ function! MakeScript(funcname, ...)
|
|||||||
write
|
write
|
||||||
bwipeout
|
bwipeout
|
||||||
return script
|
return script
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
" ExecAsScript - Source a temporary script made from a function. {{{2
|
" ExecAsScript - Source a temporary script made from a function. {{{2
|
||||||
"
|
"
|
||||||
@ -301,9 +301,9 @@ XpathINIT
|
|||||||
"
|
"
|
||||||
let calls = ""
|
let calls = ""
|
||||||
com! -nargs=1 CALL
|
com! -nargs=1 CALL
|
||||||
\ if !exists("calls") && !exists("outer") |
|
\ if !exists("calls") && !exists("outer") |
|
||||||
\ let g:calls = g:calls . <args> |
|
\ let g:calls = g:calls . <args> |
|
||||||
\ endif
|
\ endif
|
||||||
|
|
||||||
let i = 0
|
let i = 0
|
||||||
while i < 3
|
while i < 3
|
||||||
@ -357,7 +357,7 @@ endif
|
|||||||
if exists("*F1")
|
if exists("*F1")
|
||||||
call F1("F1")
|
call F1("F1")
|
||||||
if exists("*G1")
|
if exists("*G1")
|
||||||
call G1("G1")
|
call G1("G1")
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -367,13 +367,13 @@ endif
|
|||||||
if exists("*F2")
|
if exists("*F2")
|
||||||
call F2(2, "F2")
|
call F2(2, "F2")
|
||||||
if exists("*G21")
|
if exists("*G21")
|
||||||
call G21("G21")
|
call G21("G21")
|
||||||
endif
|
endif
|
||||||
if exists("*G22")
|
if exists("*G22")
|
||||||
call G22("G22")
|
call G22("G22")
|
||||||
endif
|
endif
|
||||||
if exists("*G23")
|
if exists("*G23")
|
||||||
call G23("G23")
|
call G23("G23")
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -383,13 +383,13 @@ endif
|
|||||||
if exists("*F3")
|
if exists("*F3")
|
||||||
call F3(3, "F3")
|
call F3(3, "F3")
|
||||||
if exists("*G31")
|
if exists("*G31")
|
||||||
call G31("G31")
|
call G31("G31")
|
||||||
endif
|
endif
|
||||||
if exists("*G32")
|
if exists("*G32")
|
||||||
call G32("G32")
|
call G32("G32")
|
||||||
endif
|
endif
|
||||||
if exists("*G33")
|
if exists("*G33")
|
||||||
call G33("G33")
|
call G33("G33")
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -640,7 +640,7 @@ function! MSG(enr, emsg)
|
|||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
return match
|
return match
|
||||||
endfunction
|
endfunc
|
||||||
|
|
||||||
if 1 || strlen("\"") | Xpath 'a'
|
if 1 || strlen("\"") | Xpath 'a'
|
||||||
Xpath 'b'
|
Xpath 'b'
|
||||||
@ -1099,70 +1099,70 @@ endfunction
|
|||||||
func Test_script_lines()
|
func Test_script_lines()
|
||||||
" :append
|
" :append
|
||||||
try
|
try
|
||||||
call DefineFunction('T_Append', [
|
call DefineFunction('T_Append', [
|
||||||
\ 'append',
|
\ 'append',
|
||||||
\ 'py <<EOS',
|
\ 'py <<EOS',
|
||||||
\ '.',
|
\ '.',
|
||||||
\ ])
|
\ ])
|
||||||
catch
|
catch
|
||||||
call assert_report("Can't define function")
|
call assert_report("Can't define function")
|
||||||
endtry
|
endtry
|
||||||
try
|
try
|
||||||
call DefineFunction('T_Append', [
|
call DefineFunction('T_Append', [
|
||||||
\ 'append',
|
\ 'append',
|
||||||
\ 'abc',
|
\ 'abc',
|
||||||
\ ])
|
\ ])
|
||||||
call assert_report("Shouldn't be able to define function")
|
call assert_report("Shouldn't be able to define function")
|
||||||
catch
|
catch
|
||||||
call assert_exception('Vim(function):E126: Missing :endfunction')
|
call assert_exception('Vim(function):E126: Missing :endfunction')
|
||||||
endtry
|
endtry
|
||||||
|
|
||||||
" :change
|
" :change
|
||||||
try
|
try
|
||||||
call DefineFunction('T_Change', [
|
call DefineFunction('T_Change', [
|
||||||
\ 'change',
|
\ 'change',
|
||||||
\ 'py <<EOS',
|
\ 'py <<EOS',
|
||||||
\ '.',
|
\ '.',
|
||||||
\ ])
|
\ ])
|
||||||
catch
|
catch
|
||||||
call assert_report("Can't define function")
|
call assert_report("Can't define function")
|
||||||
endtry
|
endtry
|
||||||
try
|
try
|
||||||
call DefineFunction('T_Change', [
|
call DefineFunction('T_Change', [
|
||||||
\ 'change',
|
\ 'change',
|
||||||
\ 'abc',
|
\ 'abc',
|
||||||
\ ])
|
\ ])
|
||||||
call assert_report("Shouldn't be able to define function")
|
call assert_report("Shouldn't be able to define function")
|
||||||
catch
|
catch
|
||||||
call assert_exception('Vim(function):E126: Missing :endfunction')
|
call assert_exception('Vim(function):E126: Missing :endfunction')
|
||||||
endtry
|
endtry
|
||||||
|
|
||||||
" :insert
|
" :insert
|
||||||
try
|
try
|
||||||
call DefineFunction('T_Insert', [
|
call DefineFunction('T_Insert', [
|
||||||
\ 'insert',
|
\ 'insert',
|
||||||
\ 'py <<EOS',
|
\ 'py <<EOS',
|
||||||
\ '.',
|
\ '.',
|
||||||
\ ])
|
\ ])
|
||||||
catch
|
catch
|
||||||
call assert_report("Can't define function")
|
call assert_report("Can't define function")
|
||||||
endtry
|
endtry
|
||||||
try
|
try
|
||||||
call DefineFunction('T_Insert', [
|
call DefineFunction('T_Insert', [
|
||||||
\ 'insert',
|
\ 'insert',
|
||||||
\ 'abc',
|
\ 'abc',
|
||||||
\ ])
|
\ ])
|
||||||
call assert_report("Shouldn't be able to define function")
|
call assert_report("Shouldn't be able to define function")
|
||||||
catch
|
catch
|
||||||
call assert_exception('Vim(function):E126: Missing :endfunction')
|
call assert_exception('Vim(function):E126: Missing :endfunction')
|
||||||
endtry
|
endtry
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
"-------------------------------------------------------------------------------
|
"-------------------------------------------------------------------------------
|
||||||
" Test 96: line continuation {{{1
|
" Test 96: line continuation {{{1
|
||||||
"
|
"
|
||||||
" Undefined behavior was detected by ubsan with line continuation
|
" Undefined behavior was detected by ubsan with line continuation
|
||||||
" after an empty line.
|
" after an empty line.
|
||||||
"-------------------------------------------------------------------------------
|
"-------------------------------------------------------------------------------
|
||||||
func Test_script_emty_line_continuation()
|
func Test_script_emty_line_continuation()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user