blob: 297e8359a397aaa62f601e9fcf5cb4a5cdf1ba1f [file] [log] [blame]
Bram Moolenaarb8060fe2016-01-19 22:29:28 +01001" Test for syntax and syntax iskeyword option
2
3if !has("syntax")
4 finish
5endif
6
7func GetSyntaxItem(pat)
8 let c = ''
9 let a = ['a', getreg('a'), getregtype('a')]
10 0
11 redraw!
12 call search(a:pat, 'W')
13 let synid = synID(line('.'), col('.'), 1)
14 while synid == synID(line('.'), col('.'), 1)
15 norm! v"ay
16 " stop at whitespace
17 if @a =~# '\s'
18 break
19 endif
20 let c .= @a
21 norm! l
22 endw
23 call call('setreg', a)
24 0
25 return c
26endfunc
27
28func Test_syn_iskeyword()
29 new
30 call setline(1, [
31 \ 'CREATE TABLE FOOBAR(',
32 \ ' DLTD_BY VARCHAR2(100)',
33 \ ');',
34 \ ''])
35
36 syntax on
37 set ft=sql
38 syn match SYN /C\k\+\>/
39 hi link SYN ErrorMsg
40 call assert_equal('DLTD_BY', GetSyntaxItem('DLTD'))
41 /\<D\k\+\>/:norm! ygn
42 call assert_equal('DLTD_BY', @0)
43 redir @c
44 syn iskeyword
45 redir END
46 call assert_equal("\nsyntax iskeyword not set", @c)
47
48 syn iskeyword @,48-57,_,192-255
49 redir @c
50 syn iskeyword
51 redir END
52 call assert_equal("\nsyntax iskeyword @,48-57,_,192-255", @c)
53
54 setlocal isk-=_
55 call assert_equal('DLTD_BY', GetSyntaxItem('DLTD'))
56 /\<D\k\+\>/:norm! ygn
57 let b2=@0
58 call assert_equal('DLTD', @0)
59
60 syn iskeyword clear
61 redir @c
62 syn iskeyword
63 redir END
64 call assert_equal("\nsyntax iskeyword not set", @c)
65
66 quit!
67endfunc