neovim/test/functional/legacy/listlbr_utf8_spec.lua
2015-03-11 00:22:23 -04:00

80 lines
2.1 KiB
Lua
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.

-- Test for linebreak and list option in utf-8 mode
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('linebreak', function()
setup(clear)
it('is working', function()
source([[
set wildchar=^E
10new
vsp
vert resize 20
put =\"\tabcdef hijklmn\tpqrstuvwxyz\u00a01060ABCDEFGHIJKLMNOP \"
norm! zt
set ts=4 sw=4 sts=4 linebreak sbr=+ wrap
fu! ScreenChar(width)
let c=''
for j in range(1,4)
for i in range(1,a:width)
let c.=nr2char(screenchar(j, i))
endfor
let c.="\n"
endfor
return c
endfu
fu! DoRecordScreen()
wincmd l
$put =printf(\"\n%s\", g:test)
$put =g:line
wincmd p
endfu
let g:test ="Test 1: set linebreak + set list + fancy listchars"
exe "set linebreak list listchars=nbsp:\u2423,tab:\u2595\u2014,trail:\u02d1,eol:\ub6"
redraw!
let line=ScreenChar(winwidth(0))
call DoRecordScreen()
let g:test ="Test 2: set nolinebreak list"
set list nolinebreak
redraw!
let line=ScreenChar(winwidth(0))
call DoRecordScreen()
let g:test ="Test 3: set linebreak nolist"
$put =\"\t*mask = nil;\"
$
norm! zt
set nolist linebreak
redraw!
let line=ScreenChar(winwidth(0))
call DoRecordScreen()
]])
-- Assert buffer contents.
expect([[
abcdef hijklmn pqrstuvwxyz 1060ABCDEFGHIJKLMNOP
Test 1: set linebreak + set list + fancy listchars
▕———abcdef
+hijklmn▕———
+pqrstuvwxyz␣1060ABC
+DEFGHIJKLMNOPˑ¶
Test 2: set nolinebreak list
▕———abcdef hijklmn▕—
+pqrstuvwxyz␣1060ABC
+DEFGHIJKLMNOPˑ¶
*mask = nil;
Test 3: set linebreak nolist
*mask = nil;
~
~
~ ]])
end)
end)