spacevim/bundle/incsearch.vim/test/util/regexp.vimspec
JIe 2bb7059579
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
init
2024-08-21 14:17:26 +08:00

162 lines
4.5 KiB
Plaintext

Describe util.regexp
Before all
let SL = vital#of('vital').import('Vim.ScriptLocal')
let U = SL.sfuncs('autoload/incsearch/util.vim')
End
Describe .regexp_join()
It returns joined regular expression from patterns
let ps = ['incsearch', 'vim']
let r = U.regexp_join(ps)
Assert Equals('\m\%(incsearch\m\|vim\m\)', r)
for p in ps
Assert True(p =~# r)
endfor
End
It supports regular expressions including various flags
let ps = ['\d\+', '\v(neo)?vim']
let r = U.regexp_join(ps)
Assert Equals('\m\%(\d\+\m\|\v(neo)?vim\m\)', r)
for p in ['1', '12310', 'vim', 'neovim']
Assert True(p =~# r)
endfor
End
It handles unbalanced `[` with \m\v flag
let ps = ['\d\+[', '[vim]']
let r = U.regexp_join(ps)
Assert Equals('\m\%(\d\+\[\m\|[vim]\m\)', r)
for p in ['1[', '12310[', 'v', 'i', 'm']
Assert True(p =~# r)
endfor
for p in ['\', '\[']
Assert False(p =~# r)
endfor
End
End
Describe .escape_unbalanced_left_r()
It case 0
Assert Equals('\[', U.escape_unbalanced_left_r('['))
End
It case 1
Assert Equals('\[', U.escape_unbalanced_left_r('\['))
End
It case 2
Assert Equals('\\\[', U.escape_unbalanced_left_r('\\['))
End
It case 3
Assert Equals('\\\[', U.escape_unbalanced_left_r('\\\['))
End
It case 4
Assert Equals('[]', U.escape_unbalanced_left_r('[]'))
End
It case 5
Assert Equals('\[]', U.escape_unbalanced_left_r('\[]'))
End
It case 6
Assert Equals('\\[]', U.escape_unbalanced_left_r('\\[]'))
End
It case 7
Assert Equals('\\\[]', U.escape_unbalanced_left_r('\\\[]'))
End
It case 8
Assert Equals('[]\[', U.escape_unbalanced_left_r('[]['))
End
It case 9
Assert Equals('\[]\[', U.escape_unbalanced_left_r('\[]['))
End
It case 10
Assert Equals('\\[]\[', U.escape_unbalanced_left_r('\\[]['))
End
It case 11
Assert Equals('\\\[]\[', U.escape_unbalanced_left_r('\\\[]['))
End
It case 12
Assert Equals('[]...\[', U.escape_unbalanced_left_r('[]...['))
End
It case 13
Assert Equals('\[]...\[', U.escape_unbalanced_left_r('\[]...['))
End
It case 14
Assert Equals('\\[]...\[', U.escape_unbalanced_left_r('\\[]...['))
End
It case 15
Assert Equals('\\\[]...\[', U.escape_unbalanced_left_r('\\\[]...['))
End
It case 16
Assert Equals('\m\[', U.escape_unbalanced_left_r('\m['))
End
It case 17
Assert Equals('\m\[', U.escape_unbalanced_left_r('\m\['))
End
It case 18
Assert Equals('\m\\\[', U.escape_unbalanced_left_r('\m\\['))
End
It case 19
Assert Equals('\m\\\[', U.escape_unbalanced_left_r('\m\\\['))
End
It case 20
Assert Equals('\v\[', U.escape_unbalanced_left_r('\v['))
End
It case 21
Assert Equals('\v\[', U.escape_unbalanced_left_r('\v\['))
End
It case 22
Assert Equals('\v\\\[', U.escape_unbalanced_left_r('\v\\['))
End
It case 23
Assert Equals('\v\\\[', U.escape_unbalanced_left_r('\v\\\['))
End
It case 24
Assert Equals('\M[', U.escape_unbalanced_left_r('\M['))
End
It case 25
Assert Equals('\M[', U.escape_unbalanced_left_r('\M\['))
End
It case 26
Assert Equals('\M\\[', U.escape_unbalanced_left_r('\M\\['))
End
It case 27
Assert Equals('\M\\[', U.escape_unbalanced_left_r('\M\\\['))
End
It case 28
Assert Equals('\V[', U.escape_unbalanced_left_r('\V['))
End
It case 29
Assert Equals('\V[', U.escape_unbalanced_left_r('\V\['))
End
It case 30
Assert Equals('\V\\[', U.escape_unbalanced_left_r('\V\\['))
End
It case 31
Assert Equals('\V\\[', U.escape_unbalanced_left_r('\V\\\['))
End
It case 32
Assert Equals('\[\M[\v\[', U.escape_unbalanced_left_r('[\M\[\v['))
End
It case 33
Assert Equals('[\M\[\v[]', U.escape_unbalanced_left_r('[\M\[\v[]'))
End
It case 34
Assert Equals('[[]', U.escape_unbalanced_left_r('[[]'))
End
It case 35
Assert Equals('[\[]', U.escape_unbalanced_left_r('[\[]'))
End
It case 36
Assert Equals('\M\[[]', U.escape_unbalanced_left_r('\M\[[]'))
End
It case 37
let p = '[' . repeat('[', 10000) . ']'
Assert Equals(p, U.escape_unbalanced_left_r(p))
End
It case 38
let p = '[' . repeat('\[', 10000) . ']'
Assert Equals(p, U.escape_unbalanced_left_r(p))
End
End
End