diff options
author | Nova <novadev94@gmail.com> | 2016-09-21 17:15:37 +0700 |
---|---|---|
committer | Nova <novadev94@gmail.com> | 2016-09-22 01:46:30 +0700 |
commit | a20a00459c8e9272f6dc9b09f42b7ff329da0eea (patch) | |
tree | 8af629876451baccff1c7335955d6426f68ea295 /test/functional/legacy/match_conceal_spec.lua | |
parent | baf91a455c50ce146230c4cd32c6aedcfa7b9f80 (diff) | |
download | rneovim-a20a00459c8e9272f6dc9b09f42b7ff329da0eea.tar.gz rneovim-a20a00459c8e9272f6dc9b09f42b7ff329da0eea.tar.bz2 rneovim-a20a00459c8e9272f6dc9b09f42b7ff329da0eea.zip |
vim-patch:7.4.1740
Problem: syn-cchar defined with matchadd() does not appear if there are no
other syntax definitions which matches buffer text.
Solution: Check for startcol. (Ozaki Kiichi, haya14busa, closes vim/vim#757)
https://github.com/vim/vim/commit/4d585022023b96f6507e8cae5ed8fc8d926f5140
Diffstat (limited to 'test/functional/legacy/match_conceal_spec.lua')
-rw-r--r-- | test/functional/legacy/match_conceal_spec.lua | 228 |
1 files changed, 0 insertions, 228 deletions
diff --git a/test/functional/legacy/match_conceal_spec.lua b/test/functional/legacy/match_conceal_spec.lua deleted file mode 100644 index d95b07d695..0000000000 --- a/test/functional/legacy/match_conceal_spec.lua +++ /dev/null @@ -1,228 +0,0 @@ --- Test for matchadd() and conceal feature - -local helpers = require('test.functional.helpers')(after_each) -local clear = helpers.clear -local expect = helpers.expect -local source = helpers.source - -describe('match_conceal', function() - before_each(function() - clear() - - source([[ - set wildchar=^E - 10new - vsp - vert resize 20 - put =\"\#\ This\ is\ a\ Test\" - norm! mazt - - fu! ScreenChar(width, lines) - let c='' - for j in range(1,a:lines) - for i in range(1,a:width) - let c.=nr2char(screenchar(j, i)) - endfor - let c.="\n" - endfor - return c - endfu - - fu! ScreenAttr(line, pos, eval) - let g:attr=[] - for col in a:pos - call add(g:attr, screenattr(a:line,col)) - endfor - " In case all values are zero, probably the terminal - " isn't set correctly, so catch that case - let null = (eval(join(g:attr, '+')) == 0) - let str=substitute(a:eval, '\d\+', 'g:attr[&]', 'g') - if null || eval(str) - let g:attr_test="OK: ". str - else - let g:attr_test="FAILED: ".str - let g:attr_test.="\n". join(g:attr, ' ') - let g:attr_test.="\n TERM: ". &term - endif - endfu - - fu! DoRecordScreen() - wincmd l - $put =printf(\"\n%s\", g:test) - $put =g:line - $put =g:attr_test - wincmd p - endfu - ]]) - end) - - it('is working', function() - source([=[ - let g:test ="Test 1: simple addmatch()" - call matchadd('Conceal', '\%2l ') - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") - call DoRecordScreen() - - let g:test ="Test 2: simple addmatch() and conceal (should be: #XThisXisXaXTest)" - norm! 'azt - call clearmatches() - syntax on - set concealcursor=n conceallevel=1 - call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'}) - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") - call DoRecordScreen() - - let g:test ="Test 3: addmatch() and conceallevel=3 (should be: #ThisisaTest)" - norm! 'azt - set conceallevel=3 - call clearmatches() - call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'X'}) - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0==1 && 1==2 && 1==3 && 1==4 && 0!=5") - call DoRecordScreen() - - let g:test ="Test 4: more match() (should be: #Thisisa Test)" - norm! 'azt - call matchadd('ErrorMsg', '\%2l Test', 20, -1, {'conceal': 'X'}) - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0==1 && 1==2 && 0!=3 && 3==4 && 0!=5 && 3!=5") - call DoRecordScreen() - - let g:test ="Test 5/1: default conceal char (should be: # This is a Test)" - norm! 'azt - call clearmatches() - set conceallevel=1 - call matchadd('Conceal', '\%2l ', 10, -1, {}) - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") - call DoRecordScreen() - let g:test ="Test 5/2: default conceal char (should be: #+This+is+a+Test)" - norm! 'azt - set listchars=conceal:+ - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") - call DoRecordScreen() - set listchars&vi - - let g:test ="Test 6/1: syn and match conceal (should be: #ZThisZisZaZTest)" - norm! 'azt - call clearmatches() - set conceallevel=1 - call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'Z'}) - syn match MyConceal /\%2l / conceal containedin=ALL cchar=* - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") - call DoRecordScreen() - let g:test ="Test 6/2: syn and match conceal (should be: #*This*is*a*Test)" - norm! 'azt - call clearmatches() - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") - call DoRecordScreen() - - let g:test ="Test 7/1: clear matches" - norm! 'azt - syn on - call matchadd('Conceal', '\%2l ', 10, -1, {'conceal': 'Z'}) - let a=getmatches() - call clearmatches() - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0==1 && 0==2 && 0==3 && 0==4 && 0==5") - call DoRecordScreen() - $put =a - call setmatches(a) - norm! 'azt - let g:test ="Test 7/2: reset match using setmatches()" - norm! 'azt - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") - call DoRecordScreen() - - let g:test ="Test 8: using matchaddpos() (should be #Pis a Test" - norm! 'azt - call clearmatches() - call matchaddpos('Conceal', [[2,2,6]], 10, -1, {'conceal': 'P'}) - let a=getmatches() - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1!=2 && 0==2 && 0==3 && 0!=4 && 0!=5 && 4==5") - call DoRecordScreen() - $put =a - - let g:test ="Test 9: match using multibyte conceal char (should be: #ˑThisˑisˑaˑTest)" - norm! 'azt - call clearmatches() - call matchadd('Conceal', '\%2l ', 20, -1, {'conceal': "\u02d1"}) - redraw! - let line=ScreenChar(winwidth(0),1) - call ScreenAttr(1,[1,2,7,10,12,16], "0!=1 && 1==2 && 1==3 && 1==4 && 0==5") - call DoRecordScreen() - ]=]) - - expect([=[ - - # This is a Test - - Test 1: simple addmatch() - # This is a Test - OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] - - Test 2: simple addmatch() and conceal (should be: #XThisXisXaXTest) - #XThisXisXaXTest - OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] - - Test 3: addmatch() and conceallevel=3 (should be: #ThisisaTest) - #ThisisaTest - OK: g:attr[0]==g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]!=g:attr[5] - - Test 4: more match() (should be: #Thisisa Test) - #Thisisa Test - OK: g:attr[0]==g:attr[1] && g:attr[1]==g:attr[2] && g:attr[0]!=g:attr[3] && g:attr[3]==g:attr[4] && g:attr[0]!=g:attr[5] && g:attr[3]!=g:attr[5] - - Test 5/1: default conceal char (should be: # This is a Test) - # This is a Test - OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] - - Test 5/2: default conceal char (should be: #+This+is+a+Test) - #+This+is+a+Test - OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] - - Test 6/1: syn and match conceal (should be: #ZThisZisZaZTest) - #ZThisZisZaZTest - OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] - - Test 6/2: syn and match conceal (should be: #*This*is*a*Test) - #*This*is*a*Test - OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] - - Test 7/1: clear matches - # This is a Test - OK: g:attr[0]==g:attr[1] && g:attr[0]==g:attr[2] && g:attr[0]==g:attr[3] && g:attr[0]==g:attr[4] && g:attr[0]==g:attr[5] - {'group': 'Conceal', 'pattern': '\%2l ', 'priority': 10, 'id': 10, 'conceal': 'Z'} - - Test 7/2: reset match using setmatches() - #ZThisZisZaZTest - OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5] - - Test 8: using matchaddpos() (should be #Pis a Test - #Pis a Test - OK: g:attr[0]!=g:attr[1] && g:attr[1]!=g:attr[2] && g:attr[0]==g:attr[2] && g:attr[0]==g:attr[3] && g:attr[0]!=g:attr[4] && g:attr[0]!=g:attr[5] && g:attr[4]==g:attr[5] - {'group': 'Conceal', 'id': 11, 'priority': 10, 'pos1': [2, 2, 6], 'conceal': 'P'} - - Test 9: match using multibyte conceal char (should be: #ˑThisˑisˑaˑTest) - #ˑThisˑisˑaˑTest - OK: g:attr[0]!=g:attr[1] && g:attr[1]==g:attr[2] && g:attr[1]==g:attr[3] && g:attr[1]==g:attr[4] && g:attr[0]==g:attr[5]]=]) - end) -end) |