diff src/testdir/test_syntax.vim @ 7687:61354fabf8a2 v7.4.1142

commit https://github.com/vim/vim/commit/b8060fe862f684b591f9ac679eac5b2594d6c5a0 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Jan 19 22:29:28 2016 +0100 patch 7.4.1142 Problem: Cannot define keyword characters for a syntax file. Solution: Add the ":syn iskeyword" command. (Christian Brabandt)
author Christian Brabandt <cb@256bit.org>
date Tue, 19 Jan 2016 22:30:07 +0100
parents
children da4f6e238374
line wrap: on
line diff
new file mode 100644
--- /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