mirror of
https://github.com/vim/vim.git
synced 2025-09-26 04:04:07 -04:00
patch 8.0.0659: no test for conceal mode
Problem: No test for conceal mode. Solution: Add a conceal mode test. (Dominique Pelle, closes #1783)
This commit is contained in:
@@ -4,6 +4,8 @@ if !has("syntax")
|
||||
finish
|
||||
endif
|
||||
|
||||
source view_util.vim
|
||||
|
||||
func GetSyntaxItem(pat)
|
||||
let c = ''
|
||||
let a = ['a', getreg('a'), getregtype('a')]
|
||||
@@ -458,3 +460,46 @@ func Test_syntax_hangs()
|
||||
set redrawtime&
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
|
||||
func Test_conceal()
|
||||
if !has('conceal')
|
||||
return
|
||||
endif
|
||||
|
||||
new
|
||||
call setline(1, ['', '123456'])
|
||||
syn match test23 "23" conceal cchar=X
|
||||
syn match test45 "45" conceal
|
||||
|
||||
set conceallevel=0
|
||||
call assert_equal('123456 ', ScreenLines(2, 7)[0])
|
||||
call assert_equal([[0, ''], [0, ''], [0, ''], [0, ''], [0, ''], [0, '']], map(range(1, 6), 'synconcealed(2, v:val)[0:1]'))
|
||||
|
||||
set conceallevel=1
|
||||
call assert_equal('1X 6 ', ScreenLines(2, 7)[0])
|
||||
" FIXME: with conceallevel=1, I would expect that the portion "45" of
|
||||
" the line to be replaced with a space since ":help 'conceallevel'
|
||||
" states that if listchars is not set, then the default replacement
|
||||
" should be a space. But synconcealed() gives an empty string in
|
||||
" the 2nd value of the returned list. Bug?
|
||||
" So for now, the following line is commented out:
|
||||
call assert_equal([[0, ''], [1, 'X'], [1, 'X'], [1, ' '], [1, ' '], [0, '']], map(range(1, 6), 'synconcealed(2, v:val)[0:1]'))
|
||||
|
||||
set conceallevel=1
|
||||
set listchars=conceal:Y
|
||||
call assert_equal([[0, ''], [1, 'X'], [1, 'X'], [1, 'Y'], [1, 'Y'], [0, '']], map(range(1, 6), 'synconcealed(2, v:val)[0:1]'))
|
||||
call assert_equal('1XY6 ', ScreenLines(2, 7)[0])
|
||||
|
||||
set conceallevel=2
|
||||
call assert_match('1X6 ', ScreenLines(2, 7)[0])
|
||||
call assert_equal([[0, ''], [1, 'X'], [1, 'X'], [1, ''], [1, ''], [0, '']], map(range(1, 6), 'synconcealed(2, v:val)[0:1]'))
|
||||
|
||||
set conceallevel=3
|
||||
call assert_match('16 ', ScreenLines(2, 7)[0])
|
||||
call assert_equal([[0, ''], [1, ''], [1, ''], [1, ''], [1, ''], [0, '']], map(range(1, 6), 'synconcealed(2, v:val)[0:1]'))
|
||||
|
||||
syn clear
|
||||
set conceallevel&
|
||||
bw!
|
||||
endfunc
|
||||
|
Reference in New Issue
Block a user