diff options
| author | James McCoy <jamessan@jamessan.com> | 2016-06-02 09:40:55 -0400 |
|---|---|---|
| committer | James McCoy <jamessan@jamessan.com> | 2016-06-02 10:28:46 -0400 |
| commit | 1b6681e07340a281f2f0dfe5c5d7541af6c1e257 (patch) | |
| tree | 7792a6b0a2f26f814a7354650047fdd5bda4daf2 /src/nvim/testdir | |
| parent | 634d59f6461953eae6befa72c909d68ac621a39b (diff) | |
| download | rneovim-1b6681e07340a281f2f0dfe5c5d7541af6c1e257.tar.gz rneovim-1b6681e07340a281f2f0dfe5c5d7541af6c1e257.tar.bz2 rneovim-1b6681e07340a281f2f0dfe5c5d7541af6c1e257.zip | |
vim-patch:7.4.1142
Problem: Cannot define keyword characters for a syntax file.
Solution: Add the ":syn iskeyword" command. (Christian Brabandt)
https://github.com/vim/vim/commit/b8060fe862f684b591f9ac679eac5b2594d6c5a0
Diffstat (limited to 'src/nvim/testdir')
| -rw-r--r-- | src/nvim/testdir/Makefile | 1 | ||||
| -rw-r--r-- | src/nvim/testdir/test_syntax.vim | 63 |
2 files changed, 64 insertions, 0 deletions
diff --git a/src/nvim/testdir/Makefile b/src/nvim/testdir/Makefile index 867cab9fbf..94643bc843 100644 --- a/src/nvim/testdir/Makefile +++ b/src/nvim/testdir/Makefile @@ -39,6 +39,7 @@ NEW_TESTS = \ test_cursor_func.res \ test_help_tagjump.res \ test_menu.res \ + test_syntax.res \ test_timers.res \ test_viml.res \ test_alot.res diff --git a/src/nvim/testdir/test_syntax.vim b/src/nvim/testdir/test_syntax.vim new file mode 100644 index 0000000000..309c0f460b --- /dev/null +++ b/src/nvim/testdir/test_syntax.vim @@ -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 |