aboutsummaryrefslogtreecommitdiff
path: root/test/functional/legacy/breakindent_spec.lua
diff options
context:
space:
mode:
Diffstat (limited to 'test/functional/legacy/breakindent_spec.lua')
-rw-r--r--test/functional/legacy/breakindent_spec.lua257
1 files changed, 130 insertions, 127 deletions
diff --git a/test/functional/legacy/breakindent_spec.lua b/test/functional/legacy/breakindent_spec.lua
index 2504fe8e51..fd25e809e0 100644
--- a/test/functional/legacy/breakindent_spec.lua
+++ b/test/functional/legacy/breakindent_spec.lua
@@ -2,194 +2,197 @@
local helpers = require('test.functional.helpers')(after_each)
local feed, insert = helpers.feed, helpers.insert
-local clear, execute, expect = helpers.clear, helpers.execute, helpers.expect
+local clear, feed_command, expect = helpers.clear, helpers.feed_command, helpers.expect
describe('breakindent', function()
setup(clear)
+ -- luacheck: ignore 621 (Indentation)
+ -- luacheck: ignore 613 (Trailing whitespace in a string)
+ -- luacheck: ignore 611 (Line contains only whitespaces)
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')
+ feed_command('set wildchar=^E')
+ feed_command('10new')
+ feed_command('vsp')
+ feed_command('vert resize 20')
+ feed_command([[put =\"\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP\"]])
+ feed_command('set ts=4 sw=4 sts=4 breakindent')
+ feed_command('fu! ScreenChar(line, width)')
+ feed_command(' let c=""')
+ feed_command(' for i in range(1,a:width)')
+ feed_command(' let c.=nr2char(screenchar(a:line, i))')
+ feed_command(' endfor')
+ feed_command([[ let c.="\n"]])
+ feed_command(' for i in range(1,a:width)')
+ feed_command(' let c.=nr2char(screenchar(a:line+1, i))')
+ feed_command(' endfor')
+ feed_command([[ let c.="\n"]])
+ feed_command(' for i in range(1,a:width)')
+ feed_command(' let c.=nr2char(screenchar(a:line+2, i))')
+ feed_command(' endfor')
+ feed_command(' return c')
+ feed_command('endfu')
+ feed_command('fu DoRecordScreen()')
+ feed_command(' wincmd l')
+ feed_command([[ $put =printf(\"\n%s\", g:test)]])
+ feed_command(' $put =g:line1')
+ feed_command(' wincmd p')
+ feed_command('endfu')
+ feed_command('set briopt=min:0')
+ feed_command('let g:test="Test 1: Simple breakindent"')
+ feed_command('let line1=ScreenChar(line("."),8)')
+ feed_command('call DoRecordScreen()')
+ feed_command('let g:test="Test 2: Simple breakindent + sbr=>>"')
+ feed_command('set sbr=>>')
+ feed_command('let line1=ScreenChar(line("."),8)')
+ feed_command('call DoRecordScreen()')
+ feed_command('let g:test ="Test 3: Simple breakindent + briopt:sbr"')
+ feed_command('set briopt=sbr,min:0 sbr=++')
+ feed_command('let line1=ScreenChar(line("."),8)')
+ feed_command('call DoRecordScreen()')
+ feed_command('let g:test ="Test 4: Simple breakindent + min width: 18"')
+ feed_command('set sbr= briopt=min:18')
+ feed_command('let line1=ScreenChar(line("."),8)')
+ feed_command('call DoRecordScreen()')
+ feed_command('let g:test =" Test 5: Simple breakindent + shift by 2"')
+ feed_command('set briopt=shift:2,min:0')
+ feed_command('let line1=ScreenChar(line("."),8)')
+ feed_command('call DoRecordScreen()')
+ feed_command('let g:test=" Test 6: Simple breakindent + shift by -1"')
+ feed_command('set briopt=shift:-1,min:0')
+ feed_command('let line1=ScreenChar(line("."),8)')
+ feed_command('call DoRecordScreen()')
+ feed_command('let g:test=" Test 7: breakindent + shift by +1 + nu + sbr=? briopt:sbr"')
+ feed_command('set briopt=shift:1,sbr,min:0 nu sbr=? nuw=4')
+ feed_command('let line1=ScreenChar(line("."),10)')
+ feed_command('call DoRecordScreen()')
+ feed_command('let g:test=" Test 8: breakindent + shift:1 + nu + sbr=# list briopt:sbr"')
+ feed_command('set briopt=shift:1,sbr,min:0 nu sbr=# list lcs&vi')
+ feed_command('let line1=ScreenChar(line("."),10)')
+ feed_command('call DoRecordScreen()')
+ feed_command([[let g:test=" Test 9: breakindent + shift by +1 + 'nu' + sbr=# list"]])
+ feed_command('set briopt-=sbr')
+ feed_command('let line1=ScreenChar(line("."),10)')
+ feed_command('call DoRecordScreen()')
+ feed_command([[let g:test=" Test 10: breakindent + shift by +1 + 'nu' + sbr=~ cpo+=n"]])
+ feed_command('set cpo+=n sbr=~ nu nuw=4 nolist briopt=sbr,min:0')
+ feed_command('let line1=ScreenChar(line("."),10)')
+ feed_command('call DoRecordScreen()')
+ feed_command('wincmd p')
+ feed_command([[let g:test="\n Test 11: strdisplaywidth when breakindent is on"]])
+ feed_command('set cpo-=n sbr=>> nu nuw=4 nolist briopt= ts=4')
-- Skip leading tab when calculating text width.
- execute('let text=getline(2)')
+ feed_command('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_command('let width = strlen(text[1:])+indent(2)*4+strlen(&sbr)*3')
+ feed_command('$put =g:test')
+ feed_command([[$put =printf(\"strdisplaywidth: %d == calculated: %d\", strdisplaywidth(text), width)]])
+ feed_command([[let g:str="\t\t\t\t\t{"]])
+ feed_command('let g:test=" Test 12: breakindent + long indent"')
+ feed_command('wincmd p')
+ feed_command('set all& breakindent linebreak briopt=min:10 nu numberwidth=3 ts=4')
+ feed_command('$put =g:str')
feed('zt')
- execute('let line1=ScreenChar(1,10)')
- execute('wincmd p')
- execute('call DoRecordScreen()')
+ feed_command('let line1=ScreenChar(1,10)')
+ feed_command('wincmd p')
+ feed_command('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_command('only')
+ feed_command('vert 20new')
+ feed_command('set all& breakindent briopt=min:10')
+ feed_command([[call setline(1, [" a\tb\tc\td\te", " z y x w v"])]])
+ feed_command([[/^\s*a]])
feed('fbgjyl')
- execute('let line1 = @0')
- execute([[?^\s*z]])
+ feed_command('let line1 = @0')
+ feed_command([[?^\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!')
+ feed_command('let line2 = @0')
+ feed_command('quit!')
+ feed_command([[$put ='Test 13: breakindent with wrapping Tab']])
+ feed_command('$put =line1')
+ feed_command('$put =line2')
+
+ feed_command('let g:test="Test 14: breakindent + visual blockwise delete #1"')
+ feed_command('set all& breakindent shada+=nX-test-breakindent.shada')
+ feed_command('30vnew')
+ feed_command('normal! 3a1234567890')
+ feed_command('normal! a abcde')
+ feed_command([[exec "normal! 0\<C-V>tex"]])
+ feed_command('let line1=ScreenChar(line("."),8)')
+ feed_command('call DoRecordScreen()')
+
+ feed_command('let g:test="Test 15: breakindent + visual blockwise delete #2"')
+ feed_command('%d')
+ feed_command('normal! 4a1234567890')
+ feed_command([[exec "normal! >>\<C-V>3f0x"]])
+ feed_command('let line1=ScreenChar(line("."),20)')
+ feed_command('call DoRecordScreen()')
+ feed_command('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
@@ -197,12 +200,12 @@ describe('breakindent', function()
Test 13: breakindent with wrapping Tab
d
w
-
+
Test 14: breakindent + visual blockwise delete #1
e
~
~
-
+
Test 15: breakindent + visual blockwise delete #2
1234567890
~