Some checks failed
Detach Plugins / check (FlyGrep.vim) (push) Has been cancelled
Detach Plugins / check (GitHub.vim) (push) Has been cancelled
Detach Plugins / check (JavaUnit.vim) (push) Has been cancelled
Detach Plugins / check (SourceCounter.vim) (push) Has been cancelled
Detach Plugins / check (cpicker.nvim) (push) Has been cancelled
Detach Plugins / check (dein-ui.vim) (push) Has been cancelled
Detach Plugins / check (git.vim) (push) Has been cancelled
Detach Plugins / check (iedit.vim) (push) Has been cancelled
Detach Plugins / check (scrollbar.vim) (push) Has been cancelled
Detach Plugins / check (vim-chat) (push) Has been cancelled
Detach Plugins / check (vim-cheat) (push) Has been cancelled
Detach Plugins / check (vim-todo) (push) Has been cancelled
Detach Plugins / check (xmake.vim) (push) Has been cancelled
test / Linux (nvim, nightly) (push) Has been cancelled
test / Linux (nvim, v0.3.8) (push) Has been cancelled
test / Linux (nvim, v0.4.0) (push) Has been cancelled
test / Linux (nvim, v0.4.2) (push) Has been cancelled
test / Linux (nvim, v0.4.3) (push) Has been cancelled
test / Linux (nvim, v0.4.4) (push) Has been cancelled
test / Linux (nvim, v0.5.0) (push) Has been cancelled
test / Linux (nvim, v0.5.1) (push) Has been cancelled
test / Linux (nvim, v0.6.0) (push) Has been cancelled
test / Linux (nvim, v0.6.1) (push) Has been cancelled
test / Linux (nvim, v0.7.0) (push) Has been cancelled
test / Linux (nvim, v0.7.2) (push) Has been cancelled
test / Linux (nvim, v0.8.0) (push) Has been cancelled
test / Linux (nvim, v0.8.1) (push) Has been cancelled
test / Linux (nvim, v0.8.2) (push) Has been cancelled
test / Linux (nvim, v0.8.3) (push) Has been cancelled
test / Linux (nvim, v0.9.0) (push) Has been cancelled
test / Linux (nvim, v0.9.1) (push) Has been cancelled
test / Linux (true, vim, v7.4.052) (push) Has been cancelled
test / Linux (true, vim, v7.4.1689) (push) Has been cancelled
test / Linux (true, vim, v7.4.629) (push) Has been cancelled
test / Linux (true, vim, v8.0.0027) (push) Has been cancelled
test / Linux (true, vim, v8.0.0183) (push) Has been cancelled
test / Linux (vim, nightly) (push) Has been cancelled
test / Linux (vim, v8.0.0184) (push) Has been cancelled
test / Linux (vim, v8.0.1453) (push) Has been cancelled
test / Linux (vim, v8.1.2269) (push) Has been cancelled
test / Linux (vim, v8.2.2434) (push) Has been cancelled
test / Linux (vim, v8.2.3995) (push) Has been cancelled
test / Windows (nvim, nightly) (push) Has been cancelled
test / Windows (nvim, v0.3.8) (push) Has been cancelled
test / Windows (nvim, v0.4.2) (push) Has been cancelled
test / Windows (nvim, v0.4.3) (push) Has been cancelled
test / Windows (nvim, v0.4.4) (push) Has been cancelled
test / Windows (nvim, v0.5.0) (push) Has been cancelled
test / Windows (nvim, v0.5.1) (push) Has been cancelled
test / Windows (nvim, v0.6.0) (push) Has been cancelled
test / Windows (nvim, v0.6.1) (push) Has been cancelled
test / Windows (nvim, v0.7.0) (push) Has been cancelled
test / Windows (nvim, v0.7.2) (push) Has been cancelled
test / Windows (nvim, v0.8.0) (push) Has been cancelled
test / Windows (nvim, v0.8.1) (push) Has been cancelled
test / Windows (nvim, v0.8.2) (push) Has been cancelled
test / Windows (nvim, v0.8.3) (push) Has been cancelled
test / Windows (nvim, v0.9.0) (push) Has been cancelled
test / Windows (nvim, v0.9.1) (push) Has been cancelled
test / Windows (vim, nightly) (push) Has been cancelled
test / Windows (vim, v7.4.1185) (push) Has been cancelled
test / Windows (vim, v7.4.1689) (push) Has been cancelled
test / Windows (vim, v8.0.0027) (push) Has been cancelled
test / Windows (vim, v8.0.1453) (push) Has been cancelled
test / Windows (vim, v8.1.2269) (push) Has been cancelled
test / Windows (vim, v8.2.2434) (push) Has been cancelled
test / Windows (vim, v8.2.3995) (push) Has been cancelled
docker / docker (push) Has been cancelled
mirror / check (coding) (push) Has been cancelled
mirror / check (gitee) (push) Has been cancelled
mirror / check (gitlab) (push) Has been cancelled
129 lines
2.8 KiB
VimL
129 lines
2.8 KiB
VimL
scriptencoding utf8
|
|
|
|
let s:scan = themis#suite('Function scanning')
|
|
|
|
function! s:scan.basic() abort
|
|
Setup
|
|
call FeedScan('ixxx(', 'xxx(')
|
|
call FeedScan('a)', '')
|
|
call FeedScan('i', 'xxx(')
|
|
call FeedScan('a<cr>', "xxx(\n")
|
|
call FeedScan('a)', '')
|
|
call FeedScan('a)', '')
|
|
call FeedScan('a((', '')
|
|
Teardown
|
|
endfunction
|
|
|
|
|
|
function! s:scan.single_char_func_name() abort
|
|
Setup
|
|
call FeedScan('ix()', '')
|
|
call FeedScan('i', 'x(')
|
|
Teardown
|
|
endfunction
|
|
|
|
|
|
function! s:scan.single_char_func_name_space() abort
|
|
Setup
|
|
call FeedScan('icall x()', '')
|
|
call FeedScan('i', 'x(')
|
|
Teardown
|
|
endfunction
|
|
|
|
|
|
function! s:scan.nested_func() abort
|
|
Setup
|
|
call FeedScan('ix(y(', 'y(')
|
|
call FeedScan('a)', 'x(y()')
|
|
call FeedScan('A,<cr>z', "x(y(),\nz")
|
|
call FeedScan('A(', 'z(')
|
|
Teardown
|
|
endfunction
|
|
|
|
|
|
function! s:scan.non_func_paren() abort
|
|
Setup
|
|
call FeedScan('ixxx((1, 2, 3),', 'xxx((1, 2, 3),')
|
|
call FeedScan('2hCyyy(', 'yyy(')
|
|
call FeedScan('A)', 'xxx((1, 2, yyy()')
|
|
Teardown
|
|
|
|
Setup
|
|
call FeedScan('ixxx\((', '')
|
|
Teardown
|
|
|
|
Setup
|
|
call FeedScan('ixxx ((', 'xxx ((')
|
|
Teardown
|
|
endfunction
|
|
|
|
|
|
function! s:scan.skip_strings() abort
|
|
Setup
|
|
call FeedScan('ixxx("yyy(",', 'xxx("yyy(",')
|
|
Teardown
|
|
|
|
Setup
|
|
call FeedScan('ixxx(`yyy(`,', 'xxx(`yyy(`,')
|
|
Teardown
|
|
|
|
" Ensure escaped delimiters are skipped.
|
|
Setup
|
|
call FeedScan('ixxx("yyy(\"",', 'xxx("yyy(\"",')
|
|
Teardown
|
|
|
|
Setup
|
|
call FeedScan('ixxx(`yyy(\``,', 'xxx(`yyy(\``,')
|
|
Teardown
|
|
|
|
" Ensure string skipping isn't confused by other string delimiters.
|
|
Setup
|
|
call FeedScan('ixxx("yyy(''`",', 'xxx("yyy(''`",')
|
|
Teardown
|
|
|
|
Setup
|
|
call FeedScan('ixxx(`yyy(''"`,', 'xxx(`yyy(''"`,')
|
|
Teardown
|
|
endfunction
|
|
|
|
|
|
function! s:scan.multiline() abort
|
|
Setup
|
|
call FeedScan('ixxx(<cr>', "xxx(\n")
|
|
call FeedScan('a<cr>', '')
|
|
let b:echodoc_max_blank_lines = 2
|
|
call FeedScan('a', "xxx(\n\n")
|
|
Teardown
|
|
|
|
Setup
|
|
let b:echodoc_max_blank_lines = 0
|
|
call FeedScan('ixxx(<cr>', "xxx(\n")
|
|
call FeedScan('a<cr>', '')
|
|
Teardown
|
|
|
|
Setup
|
|
let b:echodoc_max_blank_lines = 100
|
|
let crs = repeat('<cr>aaa,', 4)
|
|
let nls = substitute(crs, '<cr>', "\n", 'g')
|
|
call FeedScan('ixxx('.crs, 'xxx('.nls)
|
|
call FeedScan('a<cr>', '')
|
|
Teardown
|
|
endfunction
|
|
|
|
|
|
function! s:scan.multibyte() abort
|
|
Setup
|
|
call FeedScan('i幸運のための河童頭の上におなら(',
|
|
\ '幸運のための河童頭の上におなら(')
|
|
call FeedScan('A(💨,(🐸 + 🐢), "✨🍀✨"',
|
|
\ '幸運のための河童頭の上におなら((💨,(🐸 + 🐢), "✨🍀✨"')
|
|
call FeedScan('A))', '')
|
|
Teardown
|
|
|
|
Setup
|
|
call FeedScan('i悪い翻訳者(<cr>', "悪い翻訳者(\n")
|
|
call FeedScan('a"כובע חגיגי",<cr>', "悪い翻訳者(\n\"כובע חגיגי\",\n")
|
|
call FeedScan('a"شعر الصدر"', "悪い翻訳者(\n\"כובע חגיגי\",\n\"شعر الصدر\"")
|
|
Teardown
|
|
endfunction
|