spacevim/bundle/gina.vim/test/gina/command/grep.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

244 lines
8.2 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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:1:a',
\ 'C/foo.txt:1:aa',
\])
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:1:a'
\ },
\ {
\ '__lnum': 2,
\ 'word': 'aa',
\ 'col': 1,
\ 'residual': [],
\ 'path': 'C/foo.txt',
\ 'rev': '',
\ 'line': 1,
\ 'abbr': 'C/foo.txt:1:aa',
\ },
\])
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:1:a',
\ 'A/foo.txt:2:b',
\ 'C/foo.txt:1:aa',
\ 'C/foo.txt:2:bb',
\])
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:1:a'
\ },
\ {
\ '__lnum': 2,
\ 'word': 'b',
\ 'col': 1,
\ 'residual': [],
\ 'path': 'A/foo.txt',
\ 'rev': '',
\ 'line': 2,
\ 'abbr': 'A/foo.txt:2:b'
\ },
\ {
\ '__lnum': 3,
\ 'word': 'aa',
\ 'col': 1,
\ 'residual': [],
\ 'path': 'C/foo.txt',
\ 'rev': '',
\ 'line': 1,
\ 'abbr': 'C/foo.txt:1:aa'
\ },
\ {
\ '__lnum': 4,
\ 'word': 'bb',
\ 'col': 1,
\ 'residual': [],
\ 'path': 'C/foo.txt',
\ 'rev': '',
\ 'line': 2,
\ 'abbr': 'C/foo.txt:2:bb'
\ },
\])
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:1:a',
\ 'A/foo.txt:2:b',
\ 'C/foo.txt:1:aa',
\ 'C/foo.txt:2:bb',
\])
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:1:a'
\ },
\ {
\ '__lnum': 2,
\ 'word': 'b',
\ 'col': 1,
\ 'residual': [],
\ 'path': 'A/foo.txt',
\ 'rev': '',
\ 'line': 2,
\ 'abbr': 'A/foo.txt:2:b'
\ },
\ {
\ '__lnum': 3,
\ 'word': 'aa',
\ 'col': 1,
\ 'residual': [],
\ 'path': 'C/foo.txt',
\ 'rev': '',
\ 'line': 1,
\ 'abbr': 'C/foo.txt:1:aa'
\ },
\ {
\ '__lnum': 4,
\ 'word': 'bb',
\ 'col': 1,
\ 'residual': [],
\ 'path': 'C/foo.txt',
\ 'rev': '',
\ 'line': 2,
\ 'abbr': 'C/foo.txt:2:bb'
\ },
\])
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:1:a',
\])
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:1:a'
\ },
\])
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