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
244 lines
8.2 KiB
Plaintext
244 lines
8.2 KiB
Plaintext
Describe gina#command#grep
|
||
Before all
|
||
let Path = vital#gina#import('System.Filepath')
|
||
let slit1 = Slit(tempname(), 1)
|
||
call slit1.write('A/foo.txt', ['a', 'b', 'c', 'd', 'e'])
|
||
call slit1.write('B/foo.txt', ['A', 'B', 'C', 'D', 'E'])
|
||
call slit1.write('C/foo.txt', ['aa', 'bb', 'cc', 'dd', 'ee'])
|
||
call slit1.write('D/foo.txt', ['--color-text'])
|
||
call slit1.execute('add .')
|
||
call slit1.execute('commit --quiet -am "First"')
|
||
End
|
||
|
||
After all
|
||
%bwipeout!
|
||
End
|
||
|
||
Before
|
||
%bwipeout!
|
||
End
|
||
|
||
Describe Use cases
|
||
It might be called with {pattern}
|
||
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
|
||
GinaSync grep a
|
||
Assert Equals(winnr('$'), 1)
|
||
" Focused buffer
|
||
Assert Equals(bufname('%'), printf('gina://%s:grep', slit1.refname))
|
||
Assert Equals(getline(1, '$'), [
|
||
\ 'A/foo.txt[36m:[m1[36m:[m[1;31ma[m',
|
||
\ 'C/foo.txt[36m:[m1[36m:[m[1;31ma[m[1;31ma[m',
|
||
\])
|
||
Assert Equals(gina#action#candidates(1, line('$')), [
|
||
\ {
|
||
\ '__lnum': 1,
|
||
\ 'word': 'a',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'A/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 1,
|
||
\ 'abbr': 'A/foo.txt[36m:[m1[36m:[m[1;31ma[m'
|
||
\ },
|
||
\ {
|
||
\ '__lnum': 2,
|
||
\ 'word': 'aa',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'C/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 1,
|
||
\ 'abbr': 'C/foo.txt[36m:[m1[36m:[m[1;31ma[m[1;31ma[m',
|
||
\ },
|
||
\])
|
||
End
|
||
|
||
It might be called with -e --color-text
|
||
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
|
||
GinaSync grep -e --color-text
|
||
Assert Equals(winnr('$'), 1)
|
||
" Focused buffer
|
||
Assert Equals(bufname('%'), printf('gina://%s:grep', slit1.refname))
|
||
Assert Equals(getline(1, '$'), [
|
||
\ "D/foo.txt\e[36m:\e[m1\e[36m:\e[m\e[1;31m--color-text\e[m",
|
||
\])
|
||
Assert Equals(gina#action#candidates(1, line('$')), [
|
||
\ {
|
||
\ '__lnum': 1,
|
||
\ 'word': '--color-text',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'D/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 1,
|
||
\ 'abbr': "D/foo.txt\e[36m:\e[m1\e[36m:\e[m\e[1;31m--color-text\e[m",
|
||
\ },
|
||
\])
|
||
End
|
||
|
||
It might be called with -e{pattern} --or -e{pattern}
|
||
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
|
||
GinaSync grep -ea --or -eb
|
||
Assert Equals(winnr('$'), 1)
|
||
" Focused buffer
|
||
Assert Equals(bufname('%'), printf('gina://%s:grep', slit1.refname))
|
||
Assert Equals(getline(1, '$'), [
|
||
\ 'A/foo.txt[36m:[m1[36m:[m[1;31ma[m',
|
||
\ 'A/foo.txt[36m:[m2[36m:[m[1;31mb[m',
|
||
\ 'C/foo.txt[36m:[m1[36m:[m[1;31ma[m[1;31ma[m',
|
||
\ 'C/foo.txt[36m:[m2[36m:[m[1;31mb[m[1;31mb[m',
|
||
\])
|
||
Assert Equals(gina#action#candidates(1, line('$')), [
|
||
\ {
|
||
\ '__lnum': 1,
|
||
\ 'word': 'a',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'A/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 1,
|
||
\ 'abbr': 'A/foo.txt[36m:[m1[36m:[m[1;31ma[m'
|
||
\ },
|
||
\ {
|
||
\ '__lnum': 2,
|
||
\ 'word': 'b',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'A/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 2,
|
||
\ 'abbr': 'A/foo.txt[36m:[m2[36m:[m[1;31mb[m'
|
||
\ },
|
||
\ {
|
||
\ '__lnum': 3,
|
||
\ 'word': 'aa',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'C/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 1,
|
||
\ 'abbr': 'C/foo.txt[36m:[m1[36m:[m[1;31ma[m[1;31ma[m'
|
||
\ },
|
||
\ {
|
||
\ '__lnum': 4,
|
||
\ 'word': 'bb',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'C/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 2,
|
||
\ 'abbr': 'C/foo.txt[36m:[m2[36m:[m[1;31mb[m[1;31mb[m'
|
||
\ },
|
||
\])
|
||
End
|
||
|
||
It might be called with -e {pattern} --or -e {pattern}
|
||
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
|
||
GinaSync grep -ea --or -eb
|
||
Assert Equals(winnr('$'), 1)
|
||
" Focused buffer
|
||
Assert Equals(bufname('%'), printf('gina://%s:grep', slit1.refname))
|
||
Assert Equals(getline(1, '$'), [
|
||
\ 'A/foo.txt[36m:[m1[36m:[m[1;31ma[m',
|
||
\ 'A/foo.txt[36m:[m2[36m:[m[1;31mb[m',
|
||
\ 'C/foo.txt[36m:[m1[36m:[m[1;31ma[m[1;31ma[m',
|
||
\ 'C/foo.txt[36m:[m2[36m:[m[1;31mb[m[1;31mb[m',
|
||
\])
|
||
Assert Equals(gina#action#candidates(1, line('$')), [
|
||
\ {
|
||
\ '__lnum': 1,
|
||
\ 'word': 'a',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'A/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 1,
|
||
\ 'abbr': 'A/foo.txt[36m:[m1[36m:[m[1;31ma[m'
|
||
\ },
|
||
\ {
|
||
\ '__lnum': 2,
|
||
\ 'word': 'b',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'A/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 2,
|
||
\ 'abbr': 'A/foo.txt[36m:[m2[36m:[m[1;31mb[m'
|
||
\ },
|
||
\ {
|
||
\ '__lnum': 3,
|
||
\ 'word': 'aa',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'C/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 1,
|
||
\ 'abbr': 'C/foo.txt[36m:[m1[36m:[m[1;31ma[m[1;31ma[m'
|
||
\ },
|
||
\ {
|
||
\ '__lnum': 4,
|
||
\ 'word': 'bb',
|
||
\ 'col': 1,
|
||
\ 'residual': [],
|
||
\ 'path': 'C/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 2,
|
||
\ 'abbr': 'C/foo.txt[36m:[m2[36m:[m[1;31mb[m[1;31mb[m'
|
||
\ },
|
||
\])
|
||
End
|
||
|
||
It might be called with {pattern} -- A/*.txt
|
||
execute 'edit' fnameescape(slit1.path('A/foo.txt'))
|
||
GinaSync grep a -- A/*.txt
|
||
Assert Equals(winnr('$'), 1)
|
||
" Focused buffer
|
||
Assert Equals(bufname('%'), printf('gina://%s:grep:--', slit1.refname))
|
||
Assert Equals(getline(1, '$'), [
|
||
\ 'A/foo.txt[36m:[m1[36m:[m[1;31ma[m',
|
||
\])
|
||
Assert Equals(gina#action#candidates(1, line('$')), [
|
||
\ {
|
||
\ '__lnum': 1,
|
||
\ 'word': 'a',
|
||
\ 'col': 1,
|
||
\ 'residual': ['A/*.txt'],
|
||
\ 'path': 'A/foo.txt',
|
||
\ 'rev': '',
|
||
\ 'line': 1,
|
||
\ 'abbr': 'A/foo.txt[36m:[m1[36m:[m[1;31ma[m'
|
||
\ },
|
||
\])
|
||
End
|
||
End
|
||
|
||
Describe #_is_column_supported()
|
||
It returns 1 for version 3.0, 3.0.0, ...
|
||
Assert True(gina#command#grep#_is_column_supported('3.0'))
|
||
Assert True(gina#command#grep#_is_column_supported('3.0.0'))
|
||
Assert True(gina#command#grep#_is_column_supported('4.0'))
|
||
Assert True(gina#command#grep#_is_column_supported('5'))
|
||
End
|
||
|
||
It returns 1 for version 2.20, 2.20.0, ...
|
||
Assert True(gina#command#grep#_is_column_supported('2.20'))
|
||
Assert True(gina#command#grep#_is_column_supported('2.20.0'))
|
||
Assert True(gina#command#grep#_is_column_supported('2.3'))
|
||
End
|
||
|
||
It returns 1 for version 2.19, 2.19.1, ...
|
||
Assert True(gina#command#grep#_is_column_supported('2.19'))
|
||
Assert True(gina#command#grep#_is_column_supported('2.19.1'))
|
||
Assert True(gina#command#grep#_is_column_supported('2.190'))
|
||
End
|
||
|
||
It returns 0 for version 2.18, 2.0, ...
|
||
Assert False(gina#command#grep#_is_column_supported('2.18'))
|
||
Assert False(gina#command#grep#_is_column_supported('2.18.1'))
|
||
Assert False(gina#command#grep#_is_column_supported('2.0'))
|
||
Assert False(gina#command#grep#_is_column_supported('1.0'))
|
||
Assert False(gina#command#grep#_is_column_supported('0.1'))
|
||
End
|
||
End
|
||
End
|