mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
tests: Migrate legacy test breakindent.
This commit is contained in:
parent
bb56564900
commit
1e7c6380fe
@ -34,7 +34,6 @@ SCRIPTS := \
|
|||||||
test79.out \
|
test79.out \
|
||||||
test88.out \
|
test88.out \
|
||||||
test_listlbr.out \
|
test_listlbr.out \
|
||||||
test_breakindent.out \
|
|
||||||
test_close_count.out \
|
test_close_count.out \
|
||||||
test_marks.out \
|
test_marks.out \
|
||||||
test_match_conceal.out \
|
test_match_conceal.out \
|
||||||
|
@ -1,123 +0,0 @@
|
|||||||
Test for breakindent
|
|
||||||
|
|
||||||
STARTTEST
|
|
||||||
:so small.vim
|
|
||||||
:if !exists("+breakindent") | e! test.ok | w! test.out | qa! | endif
|
|
||||||
:set wildchar=^E
|
|
||||||
:10new|:vsp|:vert resize 20
|
|
||||||
:put =\"\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP\"
|
|
||||||
:set ts=4 sw=4 sts=4 breakindent
|
|
||||||
:fu! ScreenChar(line, width)
|
|
||||||
: let c=''
|
|
||||||
: for i in range(1,a:width)
|
|
||||||
: let c.=nr2char(screenchar(a:line, i))
|
|
||||||
: endfor
|
|
||||||
: let c.="\n"
|
|
||||||
: for i in range(1,a:width)
|
|
||||||
: let c.=nr2char(screenchar(a:line+1, i))
|
|
||||||
: endfor
|
|
||||||
: let c.="\n"
|
|
||||||
: for i in range(1,a:width)
|
|
||||||
: let c.=nr2char(screenchar(a:line+2, i))
|
|
||||||
: endfor
|
|
||||||
: return c
|
|
||||||
:endfu
|
|
||||||
:fu DoRecordScreen()
|
|
||||||
: wincmd l
|
|
||||||
: $put =printf(\"\n%s\", g:test)
|
|
||||||
: $put =g:line1
|
|
||||||
: wincmd p
|
|
||||||
:endfu
|
|
||||||
:set briopt=min:0
|
|
||||||
:let g:test="Test 1: Simple breakindent"
|
|
||||||
:let line1=ScreenChar(line('.'),8)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test="Test 2: Simple breakindent + sbr=>>"
|
|
||||||
:set sbr=>>
|
|
||||||
:let line1=ScreenChar(line('.'),8)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test ="Test 3: Simple breakindent + briopt:sbr"
|
|
||||||
:set briopt=sbr,min:0 sbr=++
|
|
||||||
:let line1=ScreenChar(line('.'),8)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test ="Test 4: Simple breakindent + min width: 18"
|
|
||||||
:set sbr= briopt=min:18
|
|
||||||
:let line1=ScreenChar(line('.'),8)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test =" Test 5: Simple breakindent + shift by 2"
|
|
||||||
:set briopt=shift:2,min:0
|
|
||||||
:let line1=ScreenChar(line('.'),8)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test=" Test 6: Simple breakindent + shift by -1"
|
|
||||||
:set briopt=shift:-1,min:0
|
|
||||||
:let line1=ScreenChar(line('.'),8)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test=" Test 7: breakindent + shift by +1 + nu + sbr=? briopt:sbr"
|
|
||||||
:set briopt=shift:1,sbr,min:0 nu sbr=? nuw=4
|
|
||||||
:let line1=ScreenChar(line('.'),10)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test=" Test 8: breakindent + shift:1 + nu + sbr=# list briopt:sbr"
|
|
||||||
:set briopt=shift:1,sbr,min:0 nu sbr=# list lcs&vi
|
|
||||||
:let line1=ScreenChar(line('.'),10)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test=" Test 9: breakindent + shift by +1 + 'nu' + sbr=# list"
|
|
||||||
:set briopt-=sbr
|
|
||||||
:let line1=ScreenChar(line('.'),10)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:let g:test=" Test 10: breakindent + shift by +1 + 'nu' + sbr=~ cpo+=n"
|
|
||||||
:set cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0
|
|
||||||
:let line1=ScreenChar(line('.'),10)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:wincmd p
|
|
||||||
:let g:test="\n Test 11: strdisplaywidth when breakindent is on"
|
|
||||||
:set cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4
|
|
||||||
:let text=getline(2) "skip leading tab when calculating text width
|
|
||||||
:let width = strlen(text[1:])+indent(2)*4+strlen(&sbr)*3 " text wraps 3 times
|
|
||||||
:$put =g:test
|
|
||||||
:$put =printf(\"strdisplaywidth: %d == calculated: %d\", strdisplaywidth(text), width)
|
|
||||||
:let g:str="\t\t\t\t\t{"
|
|
||||||
:let g:test=" Test 12: breakindent + long indent"
|
|
||||||
:wincmd p
|
|
||||||
:set all& breakindent linebreak briopt=min:10 nu numberwidth=3 ts=4
|
|
||||||
:$put =g:str
|
|
||||||
zt:let line1=ScreenChar(1,10)
|
|
||||||
:wincmd p
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:"
|
|
||||||
:" Test, that the string " a\tb\tc\td\te" is correctly
|
|
||||||
:" displayed in a 20 column wide window (see bug report
|
|
||||||
:" https://groups.google.com/d/msg/vim_dev/ZOdg2mc9c9Y/TT8EhFjEy0IJ
|
|
||||||
:only
|
|
||||||
:vert 20new
|
|
||||||
:set all& breakindent briopt=min:10
|
|
||||||
:call setline(1, [" a\tb\tc\td\te", " z y x w v"])
|
|
||||||
:/^\s*a
|
|
||||||
fbgjyl:let line1 = @0
|
|
||||||
:?^\s*z
|
|
||||||
fygjyl:let line2 = @0
|
|
||||||
:quit!
|
|
||||||
:$put ='Test 13: breakindent with wrapping Tab'
|
|
||||||
:$put =line1
|
|
||||||
:$put =line2
|
|
||||||
:"
|
|
||||||
:let g:test="Test 14: breakindent + visual blockwise delete #1"
|
|
||||||
:set all& breakindent shada+=nX-test-breakindent.shada
|
|
||||||
:30vnew
|
|
||||||
:normal! 3a1234567890
|
|
||||||
:normal! a abcde
|
|
||||||
:exec "normal! 0\<C-V>tex"
|
|
||||||
:let line1=ScreenChar(line('.'),8)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:"
|
|
||||||
:let g:test="Test 15: breakindent + visual blockwise delete #2"
|
|
||||||
:%d
|
|
||||||
:normal! 4a1234567890
|
|
||||||
:exec "normal! >>\<C-V>3f0x"
|
|
||||||
:let line1=ScreenChar(line('.'),20)
|
|
||||||
:call DoRecordScreen()
|
|
||||||
:quit!
|
|
||||||
:"
|
|
||||||
:%w! test.out
|
|
||||||
:qa!
|
|
||||||
ENDTEST
|
|
||||||
dummy text
|
|
@ -1,74 +0,0 @@
|
|||||||
|
|
||||||
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP
|
|
||||||
|
|
||||||
Test 1: Simple breakindent
|
|
||||||
abcd
|
|
||||||
qrst
|
|
||||||
GHIJ
|
|
||||||
|
|
||||||
Test 2: Simple breakindent + sbr=>>
|
|
||||||
abcd
|
|
||||||
>>qr
|
|
||||||
>>EF
|
|
||||||
|
|
||||||
Test 3: Simple breakindent + briopt:sbr
|
|
||||||
abcd
|
|
||||||
++ qrst
|
|
||||||
++ GHIJ
|
|
||||||
|
|
||||||
Test 4: Simple breakindent + min width: 18
|
|
||||||
abcd
|
|
||||||
qrstuv
|
|
||||||
IJKLMN
|
|
||||||
|
|
||||||
Test 5: Simple breakindent + shift by 2
|
|
||||||
abcd
|
|
||||||
qr
|
|
||||||
EF
|
|
||||||
|
|
||||||
Test 6: Simple breakindent + shift by -1
|
|
||||||
abcd
|
|
||||||
qrstu
|
|
||||||
HIJKL
|
|
||||||
|
|
||||||
Test 7: breakindent + shift by +1 + nu + sbr=? briopt:sbr
|
|
||||||
2 ab
|
|
||||||
? m
|
|
||||||
? x
|
|
||||||
|
|
||||||
Test 8: breakindent + shift:1 + nu + sbr=# list briopt:sbr
|
|
||||||
2 ^Iabcd
|
|
||||||
# opq
|
|
||||||
# BCD
|
|
||||||
|
|
||||||
Test 9: breakindent + shift by +1 + 'nu' + sbr=# list
|
|
||||||
2 ^Iabcd
|
|
||||||
#op
|
|
||||||
#AB
|
|
||||||
|
|
||||||
Test 10: breakindent + shift by +1 + 'nu' + sbr=~ cpo+=n
|
|
||||||
2 ab
|
|
||||||
~ mn
|
|
||||||
~ yz
|
|
||||||
|
|
||||||
Test 11: strdisplaywidth when breakindent is on
|
|
||||||
strdisplaywidth: 46 == calculated: 64
|
|
||||||
{
|
|
||||||
|
|
||||||
Test 12: breakindent + long indent
|
|
||||||
56
|
|
||||||
|
|
||||||
~
|
|
||||||
Test 13: breakindent with wrapping Tab
|
|
||||||
d
|
|
||||||
w
|
|
||||||
|
|
||||||
Test 14: breakindent + visual blockwise delete #1
|
|
||||||
e
|
|
||||||
~
|
|
||||||
~
|
|
||||||
|
|
||||||
Test 15: breakindent + visual blockwise delete #2
|
|
||||||
1234567890
|
|
||||||
~
|
|
||||||
~
|
|
211
test/functional/legacy/breakindent_spec.lua
Normal file
211
test/functional/legacy/breakindent_spec.lua
Normal file
@ -0,0 +1,211 @@
|
|||||||
|
-- Test for breakindent
|
||||||
|
|
||||||
|
local helpers = require('test.functional.helpers')
|
||||||
|
local feed, insert, source = helpers.feed, helpers.insert, helpers.source
|
||||||
|
local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
|
||||||
|
|
||||||
|
describe('breakindent', function()
|
||||||
|
setup(clear)
|
||||||
|
|
||||||
|
it('is working', function()
|
||||||
|
insert('dummy text')
|
||||||
|
|
||||||
|
execute('set wildchar=^E')
|
||||||
|
execute('10new')
|
||||||
|
execute('vsp')
|
||||||
|
execute('vert resize 20')
|
||||||
|
execute([[put =\"\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP\"]])
|
||||||
|
execute('set ts=4 sw=4 sts=4 breakindent')
|
||||||
|
execute('fu! ScreenChar(line, width)')
|
||||||
|
execute(' let c=""')
|
||||||
|
execute(' for i in range(1,a:width)')
|
||||||
|
execute(' let c.=nr2char(screenchar(a:line, i))')
|
||||||
|
execute(' endfor')
|
||||||
|
execute([[ let c.="\n"]])
|
||||||
|
execute(' for i in range(1,a:width)')
|
||||||
|
execute(' let c.=nr2char(screenchar(a:line+1, i))')
|
||||||
|
execute(' endfor')
|
||||||
|
execute([[ let c.="\n"]])
|
||||||
|
execute(' for i in range(1,a:width)')
|
||||||
|
execute(' let c.=nr2char(screenchar(a:line+2, i))')
|
||||||
|
execute(' endfor')
|
||||||
|
execute(' return c')
|
||||||
|
execute('endfu')
|
||||||
|
execute('fu DoRecordScreen()')
|
||||||
|
execute(' wincmd l')
|
||||||
|
execute([[ $put =printf(\"\n%s\", g:test)]])
|
||||||
|
execute(' $put =g:line1')
|
||||||
|
execute(' wincmd p')
|
||||||
|
execute('endfu')
|
||||||
|
execute('set briopt=min:0')
|
||||||
|
execute('let g:test="Test 1: Simple breakindent"')
|
||||||
|
execute('let line1=ScreenChar(line("."),8)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('let g:test="Test 2: Simple breakindent + sbr=>>"')
|
||||||
|
execute('set sbr=>>')
|
||||||
|
execute('let line1=ScreenChar(line("."),8)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('let g:test ="Test 3: Simple breakindent + briopt:sbr"')
|
||||||
|
execute('set briopt=sbr,min:0 sbr=++')
|
||||||
|
execute('let line1=ScreenChar(line("."),8)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('let g:test ="Test 4: Simple breakindent + min width: 18"')
|
||||||
|
execute('set sbr= briopt=min:18')
|
||||||
|
execute('let line1=ScreenChar(line("."),8)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('let g:test =" Test 5: Simple breakindent + shift by 2"')
|
||||||
|
execute('set briopt=shift:2,min:0')
|
||||||
|
execute('let line1=ScreenChar(line("."),8)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('let g:test=" Test 6: Simple breakindent + shift by -1"')
|
||||||
|
execute('set briopt=shift:-1,min:0')
|
||||||
|
execute('let line1=ScreenChar(line("."),8)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('let g:test=" Test 7: breakindent + shift by +1 + nu + sbr=? briopt:sbr"')
|
||||||
|
execute('set briopt=shift:1,sbr,min:0 nu sbr=? nuw=4')
|
||||||
|
execute('let line1=ScreenChar(line("."),10)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('let g:test=" Test 8: breakindent + shift:1 + nu + sbr=# list briopt:sbr"')
|
||||||
|
execute('set briopt=shift:1,sbr,min:0 nu sbr=# list lcs&vi')
|
||||||
|
execute('let line1=ScreenChar(line("."),10)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute([[let g:test=" Test 9: breakindent + shift by +1 + 'nu' + sbr=# list"]])
|
||||||
|
execute('set briopt-=sbr')
|
||||||
|
execute('let line1=ScreenChar(line("."),10)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute([[let g:test=" Test 10: breakindent + shift by +1 + 'nu' + sbr=~ cpo+=n"]])
|
||||||
|
execute('set cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0')
|
||||||
|
execute('let line1=ScreenChar(line("."),10)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('wincmd p')
|
||||||
|
execute([[let g:test="\n Test 11: strdisplaywidth when breakindent is on"]])
|
||||||
|
execute('set cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4')
|
||||||
|
-- Skip leading tab when calculating text width.
|
||||||
|
execute('let text=getline(2)')
|
||||||
|
-- Text wraps 3 times.
|
||||||
|
execute('let width = strlen(text[1:])+indent(2)*4+strlen(&sbr)*3')
|
||||||
|
execute('$put =g:test')
|
||||||
|
execute([[$put =printf(\"strdisplaywidth: %d == calculated: %d\", strdisplaywidth(text), width)]])
|
||||||
|
execute([[let g:str="\t\t\t\t\t{"]])
|
||||||
|
execute('let g:test=" Test 12: breakindent + long indent"')
|
||||||
|
execute('wincmd p')
|
||||||
|
execute('set all& breakindent linebreak briopt=min:10 nu numberwidth=3 ts=4')
|
||||||
|
execute('$put =g:str')
|
||||||
|
feed('zt')
|
||||||
|
execute('let line1=ScreenChar(1,10)')
|
||||||
|
execute('wincmd p')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
|
||||||
|
-- Test, that the string " a\tb\tc\td\te" is correctly displayed in a
|
||||||
|
-- 20 column wide window (see bug report
|
||||||
|
-- https://groups.google.com/d/msg/vim_dev/ZOdg2mc9c9Y/TT8EhFjEy0IJ ).
|
||||||
|
execute('only')
|
||||||
|
execute('vert 20new')
|
||||||
|
execute('set all& breakindent briopt=min:10')
|
||||||
|
execute([[call setline(1, [" a\tb\tc\td\te", " z y x w v"])]])
|
||||||
|
execute([[/^\s*a]])
|
||||||
|
feed('fbgjyl')
|
||||||
|
execute('let line1 = @0')
|
||||||
|
execute([[?^\s*z]])
|
||||||
|
feed('fygjyl')
|
||||||
|
execute('let line2 = @0')
|
||||||
|
execute('quit!')
|
||||||
|
execute([[$put ='Test 13: breakindent with wrapping Tab']])
|
||||||
|
execute('$put =line1')
|
||||||
|
execute('$put =line2')
|
||||||
|
|
||||||
|
execute('let g:test="Test 14: breakindent + visual blockwise delete #1"')
|
||||||
|
execute('set all& breakindent shada+=nX-test-breakindent.shada')
|
||||||
|
execute('30vnew')
|
||||||
|
execute('normal! 3a1234567890')
|
||||||
|
execute('normal! a abcde')
|
||||||
|
execute([[exec "normal! 0\<C-V>tex"]])
|
||||||
|
execute('let line1=ScreenChar(line("."),8)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
|
||||||
|
execute('let g:test="Test 15: breakindent + visual blockwise delete #2"')
|
||||||
|
execute('%d')
|
||||||
|
execute('normal! 4a1234567890')
|
||||||
|
execute([[exec "normal! >>\<C-V>3f0x"]])
|
||||||
|
execute('let line1=ScreenChar(line("."),20)')
|
||||||
|
execute('call DoRecordScreen()')
|
||||||
|
execute('quit!')
|
||||||
|
|
||||||
|
-- Assert buffer contents.
|
||||||
|
expect([[
|
||||||
|
|
||||||
|
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP
|
||||||
|
|
||||||
|
Test 1: Simple breakindent
|
||||||
|
abcd
|
||||||
|
qrst
|
||||||
|
GHIJ
|
||||||
|
|
||||||
|
Test 2: Simple breakindent + sbr=>>
|
||||||
|
abcd
|
||||||
|
>>qr
|
||||||
|
>>EF
|
||||||
|
|
||||||
|
Test 3: Simple breakindent + briopt:sbr
|
||||||
|
abcd
|
||||||
|
++ qrst
|
||||||
|
++ GHIJ
|
||||||
|
|
||||||
|
Test 4: Simple breakindent + min width: 18
|
||||||
|
abcd
|
||||||
|
qrstuv
|
||||||
|
IJKLMN
|
||||||
|
|
||||||
|
Test 5: Simple breakindent + shift by 2
|
||||||
|
abcd
|
||||||
|
qr
|
||||||
|
EF
|
||||||
|
|
||||||
|
Test 6: Simple breakindent + shift by -1
|
||||||
|
abcd
|
||||||
|
qrstu
|
||||||
|
HIJKL
|
||||||
|
|
||||||
|
Test 7: breakindent + shift by +1 + nu + sbr=? briopt:sbr
|
||||||
|
2 ab
|
||||||
|
? m
|
||||||
|
? x
|
||||||
|
|
||||||
|
Test 8: breakindent + shift:1 + nu + sbr=# list briopt:sbr
|
||||||
|
2 ^Iabcd
|
||||||
|
# opq
|
||||||
|
# BCD
|
||||||
|
|
||||||
|
Test 9: breakindent + shift by +1 + 'nu' + sbr=# list
|
||||||
|
2 ^Iabcd
|
||||||
|
#op
|
||||||
|
#AB
|
||||||
|
|
||||||
|
Test 10: breakindent + shift by +1 + 'nu' + sbr=~ cpo+=n
|
||||||
|
2 ab
|
||||||
|
~ mn
|
||||||
|
~ yz
|
||||||
|
|
||||||
|
Test 11: strdisplaywidth when breakindent is on
|
||||||
|
strdisplaywidth: 46 == calculated: 64
|
||||||
|
{
|
||||||
|
|
||||||
|
Test 12: breakindent + long indent
|
||||||
|
56
|
||||||
|
|
||||||
|
~
|
||||||
|
Test 13: breakindent with wrapping Tab
|
||||||
|
d
|
||||||
|
w
|
||||||
|
|
||||||
|
Test 14: breakindent + visual blockwise delete #1
|
||||||
|
e
|
||||||
|
~
|
||||||
|
~
|
||||||
|
|
||||||
|
Test 15: breakindent + visual blockwise delete #2
|
||||||
|
1234567890
|
||||||
|
~
|
||||||
|
~ ]])
|
||||||
|
end)
|
||||||
|
end)
|
Loading…
Reference in New Issue
Block a user