mirror of
https://github.com/neovim/neovim.git
synced 2025-10-17 23:31:51 +00:00
vim-patch:7.4.1142
Problem: Cannot define keyword characters for a syntax file.
Solution: Add the ":syn iskeyword" command. (Christian Brabandt)
b8060fe862
This commit is contained in:
63
src/nvim/testdir/test_syntax.vim
Normal file
63
src/nvim/testdir/test_syntax.vim
Normal file
@@ -0,0 +1,63 @@
|
||||
" Test for syntax and syntax iskeyword option
|
||||
|
||||
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
|
Reference in New Issue
Block a user