1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 16:40:05 +08:00
SpaceVim/bundle/gina.vim/test/gina/command/grep.vimspec

244 lines
8.2 KiB
Plaintext
Vendored
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