diff options
author | Bram Moolenaar <Bram@vim.org> | 2016-01-19 22:29:28 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2016-01-19 22:29:28 +0100 |
commit | b8060fe862f684b591f9ac679eac5b2594d6c5a0 (patch) | |
tree | eaa1b9362e597709e26042b70c7c0556c90ab003 /src/testdir/test_syntax.vim | |
parent | 6773a348da0dcf45df3c6c6649880655ec0d2042 (diff) | |
download | vim-git-b8060fe862f684b591f9ac679eac5b2594d6c5a0.tar.gz |
patch 7.4.1142v7.4.1142
Problem: Cannot define keyword characters for a syntax file.
Solution: Add the ":syn iskeyword" command. (Christian Brabandt)
Diffstat (limited to 'src/testdir/test_syntax.vim')
-rw-r--r-- | src/testdir/test_syntax.vim | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/testdir/test_syntax.vim b/src/testdir/test_syntax.vim new file mode 100644 index 000000000..297e8359a --- /dev/null +++ b/src/testdir/test_syntax.vim @@ -0,0 +1,67 @@ +" Test for syntax and syntax iskeyword option + +if !has("syntax") + finish +endif + +func GetSyntaxItem(pat) + let c = '' + let a = ['a', getreg('a'), getregtype('a')] + 0 + redraw! + call search(a:pat, 'W') + let synid = synID(line('.'), col('.'), 1) + while synid == synID(line('.'), col('.'), 1) + norm! v"ay + " stop at whitespace + if @a =~# '\s' + break + endif + let c .= @a + norm! l + endw + call call('setreg', a) + 0 + return c +endfunc + +func Test_syn_iskeyword() + new + call setline(1, [ + \ 'CREATE TABLE FOOBAR(', + \ ' DLTD_BY VARCHAR2(100)', + \ ');', + \ '']) + + syntax on + set ft=sql + syn match SYN /C\k\+\>/ + hi link SYN ErrorMsg + call assert_equal('DLTD_BY', GetSyntaxItem('DLTD')) + /\<D\k\+\>/:norm! ygn + call assert_equal('DLTD_BY', @0) + redir @c + syn iskeyword + redir END + call assert_equal("\nsyntax iskeyword not set", @c) + + syn iskeyword @,48-57,_,192-255 + redir @c + syn iskeyword + redir END + call assert_equal("\nsyntax iskeyword @,48-57,_,192-255", @c) + + setlocal isk-=_ + call assert_equal('DLTD_BY', GetSyntaxItem('DLTD')) + /\<D\k\+\>/:norm! ygn + let b2=@0 + call assert_equal('DLTD', @0) + + syn iskeyword clear + redir @c + syn iskeyword + redir END + call assert_equal("\nsyntax iskeyword not set", @c) + + quit! +endfunc |