mirror of
https://github.com/vim/vim.git
synced 2025-11-14 23:04:02 -05:00
updated for version 7.4.338
Problem: Cannot wrap lines taking indent into account.
Solution: Add the 'breakindent' option. (many authors, final improvements by
Christian Brabandt)
This commit is contained in:
@@ -37,6 +37,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
|
||||
test99.out test100.out test101.out test102.out test103.out \
|
||||
test104.out test105.out test106.out test107.out \
|
||||
test_autoformat_join.out \
|
||||
test_breakindent.out \
|
||||
test_eval.out \
|
||||
test_options.out
|
||||
|
||||
@@ -163,5 +164,6 @@ test105.out: test105.in
|
||||
test106.out: test106.in
|
||||
test107.out: test107.in
|
||||
test_autoformat_join.out: test_autoformat_join.in
|
||||
test_breakindent.out: test_breakindent.in
|
||||
test_eval.out: test_eval.in
|
||||
test_options.out: test_options.in
|
||||
|
||||
@@ -36,6 +36,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
|
||||
test100.out test101.out test102.out test103.out test104.out \
|
||||
test105.out test106.out test107.out\
|
||||
test_autoformat_join.out \
|
||||
test_breakindent.out \
|
||||
test_eval.out \
|
||||
test_options.out
|
||||
|
||||
|
||||
@@ -56,6 +56,7 @@ SCRIPTS = test3.out test4.out test5.out test6.out test7.out \
|
||||
test100.out test101.out test102.out test103.out test104.out \
|
||||
test105.out test106.out test107.out \
|
||||
test_autoformat_join.out \
|
||||
test_breakindent.out \
|
||||
test_eval.out \
|
||||
test_options.out
|
||||
|
||||
|
||||
@@ -39,6 +39,7 @@ SCRIPTS = test1.out test3.out test4.out test5.out test6.out \
|
||||
test105.out test106.out test107.out \
|
||||
test_autoformat_join.out \
|
||||
test_eval.out \
|
||||
test_breakindent.out \
|
||||
test_options.out
|
||||
|
||||
.SUFFIXES: .in .out
|
||||
|
||||
@@ -97,6 +97,7 @@ SCRIPT = test1.out test2.out test3.out test4.out test5.out \
|
||||
test100.out test101.out test103.out test104.out \
|
||||
test105.out test106.out test107.out \
|
||||
test_autoformat_join.out \
|
||||
test_breakindent.out \
|
||||
test_eval.out \
|
||||
test_options.out
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ SCRIPTS = test1.out test2.out test3.out test4.out test5.out test6.out \
|
||||
test99.out test100.out test101.out test102.out test103.out \
|
||||
test104.out test105.out test106.out test107.out \
|
||||
test_autoformat_join.out \
|
||||
test_breakindent.out \
|
||||
test_eval.out \
|
||||
test_options.out
|
||||
|
||||
|
||||
79
src/testdir/test_breakindent.in
Normal file
79
src/testdir/test_breakindent.in
Normal file
@@ -0,0 +1,79 @@
|
||||
Test for breakindent
|
||||
|
||||
STARTTEST
|
||||
:so small.vim
|
||||
:if !exists("+breakindent") | e! test.ok | w! test.out | qa! | endif
|
||||
:10new|:vsp|:vert resize 20
|
||||
:put =\"\tabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOP\"
|
||||
:set ts=4 sw=4 sts=4 breakindent
|
||||
:fu! ScreenChar(width)
|
||||
: let c=''
|
||||
: for i in range(1,a:width)
|
||||
: let c.=nr2char(screenchar(line('.'), i))
|
||||
: endfor
|
||||
: let c.="\n"
|
||||
: for i in range(1,a:width)
|
||||
: let c.=nr2char(screenchar(line('.')+1, i))
|
||||
: endfor
|
||||
: let c.="\n"
|
||||
: for i in range(1,a:width)
|
||||
: let c.=nr2char(screenchar(line('.')+2, i))
|
||||
: endfor
|
||||
: return c
|
||||
:endfu
|
||||
:fu DoRecordScreen()
|
||||
: wincmd l
|
||||
: $put =printf(\"\n%s\", g:test)
|
||||
: $put =g:line1
|
||||
: wincmd p
|
||||
:endfu
|
||||
:let g:test="Test 1: Simple breakindent"
|
||||
:let line1=ScreenChar(8)
|
||||
:call DoRecordScreen()
|
||||
:let g:test="Test 2: Simple breakindent + sbr=>>"
|
||||
:set sbr=>>
|
||||
:let line1=ScreenChar(8)
|
||||
:call DoRecordScreen()
|
||||
:let g:test ="Test 3: Simple breakindent + briopt:sbr"
|
||||
:set briopt=sbr,min:0 sbr=++
|
||||
:let line1=ScreenChar(8)
|
||||
:call DoRecordScreen()
|
||||
:let g:test ="Test 4: Simple breakindent + min width: 18"
|
||||
:set sbr= briopt=min:18
|
||||
:let line1=ScreenChar(8)
|
||||
:call DoRecordScreen()
|
||||
:let g:test =" Test 5: Simple breakindent + shift by 2"
|
||||
:set briopt=shift:2,min:0
|
||||
:let line1=ScreenChar(8)
|
||||
:call DoRecordScreen()
|
||||
:let g:test=" Test 6: Simple breakindent + shift by -1"
|
||||
:set briopt=shift:-1,min:0
|
||||
:let line1=ScreenChar(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(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
|
||||
:let line1=ScreenChar(10)
|
||||
:call DoRecordScreen()
|
||||
:let g:test=" Test 9: breakindent + shift by +1 + 'nu' + sbr=# list"
|
||||
:set briopt-=sbr
|
||||
:let line1=ScreenChar(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(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)
|
||||
:%w! test.out
|
||||
:qa!
|
||||
ENDTEST
|
||||
dummy text
|
||||
55
src/testdir/test_breakindent.ok
Normal file
55
src/testdir/test_breakindent.ok
Normal file
@@ -0,0 +1,55 @@
|
||||
|
||||
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
|
||||
Reference in New Issue
Block a user