1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-01-24 05:30:07 +08:00
SpaceVim/bundle/VimRegStyle/test/002_extended-regex_vrs.vim
2020-09-06 21:56:12 +08:00

40 lines
3.2 KiB
VimL

call vimtest#StartTap()
call vimtap#Plan(8 + 8 + 7) " <== XXX Keep plan number updated. XXX
let erex = ExtendedRegexObject('vrs#get')
let t = '\<\%{_ip4_segment,4,.}\>'
let t_expanded = '\<\%(25[0-5]\|2[0-4]\d\|[01]\?\d\d\?\)\.\%(25[0-5]\|2[0-4]\d\|[01]\?\d\d\?\)\.\%(25[0-5]\|2[0-4]\d\|[01]\?\d\d\?\)\.\%(25[0-5]\|2[0-4]\d\|[01]\?\d\d\?\)\>'
let vim_func_pat = '^[\ :]*fu\%[nction]!\?\s*\(.\{-}\)('
call vimtap#Is(erex.expand_composition_atom(t), t_expanded, 'expand _ip4_segment')
call vimtap#Is(erex.expand_composition_atom('\%{_ip4_segment,2,.}'), '\%(25[0-5]\|2[0-4]\d\|[01]\?\d\d\?\)\.\%(25[0-5]\|2[0-4]\d\|[01]\?\d\d\?\)', 'explicit count of 2 and explicit sep of dot')
call vimtap#Is(erex.expand_composition_atom('\%{vim_function,1,}'), vim_func_pat, 'explicit count of 1 and explicitly empty sep')
call vimtap#Is(erex.expand_composition_atom('\%{vim_function,1}'), vim_func_pat, 'explicit count of 1 and implicit sep')
call vimtap#Is(erex.expand_composition_atom('\%{vim_function}'), vim_func_pat, 'implicitly expand name only')
call vimtap#Is(erex.expand_composition_atom('\%{vim_function,2,}'), vim_func_pat . vim_func_pat, 'explicit count and explicitly empty sep')
call vimtap#Is(erex.expand_composition_atom('\%{vim_function,2}'), vim_func_pat . vim_func_pat, 'explicit count, implicit sep')
call vimtap#Is(erex.expand_composition_atom('\%{vim_function,3,\n}'), join(repeat(vim_func_pat, 3), "\n"), 'explicit literal sep')
call vimtap#Is(erex.parse(t), t_expanded, 'expand _ip4_segment')
call vimtap#Is(erex.parse('\%{_ip4_segment,2,.}'), '\%(25[0-5]\|2[0-4]\d\|[01]\?\d\d\?\)\.\%(25[0-5]\|2[0-4]\d\|[01]\?\d\d\?\)', 'explicit count of 2 and explicit sep of dot')
call vimtap#Is(erex.parse('\%{vim_function,1,}'), vim_func_pat, 'explicit count of 1 and explicitly empty sep')
call vimtap#Is(erex.parse('\%{vim_function,1}'), vim_func_pat, 'explicit count of 1 and implicit sep')
call vimtap#Is(erex.parse('\%{vim_function}'), vim_func_pat, 'expand name only')
call vimtap#Is(erex.parse('\%{vim_function,2,}'), vim_func_pat . vim_func_pat, 'explicit count and explicitly empty sep')
call vimtap#Is(erex.parse('\%{vim_function,2}'), vim_func_pat . vim_func_pat, 'explicit count, implicit sep')
call vimtap#Is(erex.parse('\%{vim_function,3,\n}'), join(repeat(vim_func_pat, 3), "\n"), 'explicit literal sep')
" with spaces
let t = '\<\%{_ip4_segment, 4, .}\>'
call vimtap#Is( erex.parse(t), t_expanded, 'expand _ip4_segment with spaces')
call vimtap#Is( erex.parse('\%{vim_function , 1 , }'), vim_func_pat, 'expand explicitly empty sep with spaces')
call vimtap#Is( erex.parse('\%{vim_function ,1}'), vim_func_pat, 'expand implicit sep with spaces')
call vimtap#Is( erex.parse('\%{vim_function }'), vim_func_pat, 'expand name only with space')
call vimtap#Is( erex.parse('\%{vim_function, 2, }'), vim_func_pat . vim_func_pat, 'expand count of 2 and explicitly empty sep with spaces')
call vimtap#Is( erex.parse('\%{vim_function , 2}'), vim_func_pat . vim_func_pat, 'expand count of 2 and implicit sep with spaces')
call vimtap#Is( erex.parse('\%{ vim_function , 3 , \n }'), join(repeat(vim_func_pat, 3), "\n"), 'expand count of 3 and explicit of \\n sep with spaces')
call vimtest#Quit()