Skip to content

Commit

Permalink
Add syntax highlighting tests for VimL
Browse files Browse the repository at this point in the history
Adds a syntax highlighting test for VimL
with source file based on parts of my own configuration
changed to cover as much of syntax as possible.

**NOTES:**
Last line of source (`syntax enable`) does not get highlighted,
since `syntax` keyword is not part of highlighting rules.

Related to sharkdp#1213
  • Loading branch information
esensar committed Dec 27, 2020
1 parent 07bd750 commit 719bdd9
Show file tree
Hide file tree
Showing 2 changed files with 162 additions and 0 deletions.
81 changes: 81 additions & 0 deletions tests/syntax-tests/highlighted/VimL/source.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
if &compatible
 set nocompatible
endif

if has('win32') || has ('win64')
 let $VIMHOME = $HOME . "/vimfiles"
elseif v:false && v:true
 echo "Can't get here"
else
 let $VIMHOME = $HOME . "/.vim"
endif

" show existing tab with 2 spaces width
set tabstop=2
" when indenting with '>', use 2 spaces width
set shiftwidth=2
" always set autoindenting on
set autoindent

autocmd VimEnter * echo "Hello Vim"

" Allow :W and :Wq to save too
command! Wq :wq
command! W :w

augroup vimrc
 autocmd!
 autocmd FileType * echo "New filetype"
augroup END

function! s:echo(what)
 return a:what
endfunction

function! HelloWorld(name)
 let l:function_local = "function_local_var"
 let l:parts = split(l:function_local, "_")
 let l:greeting = "Hello " . a:name
 return s:echo(l:greeting)
endfunction

function! source#Hello()
 return "Hello from namespace"
endfunction

function! EchoFunc(...)
 for s in a:000
 echon ' ' . s
 endfor
endfunction

imap <C-h> <C-r>=HelloWorld("World")<CR>

command! -nargs=? Echo :call EchoFunc(<args>)

let g:global = "global var"
let s:script_var = "script var"
let w:window_var = "window war"
let b:buffer_var = "buffer war"
let t:tab_var = "tab war"
echo v:false

3 + 5

echo "Hello" ==# "Hello2"
echo "Hello" ==? "Hello2"
echo "Hello" == "Hello2"
echo "Hello" is "Hello2"
echo "Hello" isnot "Hello2"
echo "Hello" =~ "Hello2"
echo "Hello" !~ "Hello2"

" ALE Linters configuration
let g:dict = {}
let g:dict.item = ['l1', 'l2']

" ALE Fixers configuration
let g:dict2 = {'dict_item': ['l1', 'l2'], 'di2': 'x'}

filetype plugin indent on
syntax enable
81 changes: 81 additions & 0 deletions tests/syntax-tests/source/VimL/source.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
if &compatible
set nocompatible
endif

if has('win32') || has ('win64')
let $VIMHOME = $HOME . "/vimfiles"
elseif v:false && v:true
echo "Can't get here"
else
let $VIMHOME = $HOME . "/.vim"
endif

" show existing tab with 2 spaces width
set tabstop=2
" when indenting with '>', use 2 spaces width
set shiftwidth=2
" always set autoindenting on
set autoindent

autocmd VimEnter * echo "Hello Vim"

" Allow :W and :Wq to save too
command! Wq :wq
command! W :w

augroup vimrc
autocmd!
autocmd FileType * echo "New filetype"
augroup END

function! s:echo(what)
return a:what
endfunction

function! HelloWorld(name)
let l:function_local = "function_local_var"
let l:parts = split(l:function_local, "_")
let l:greeting = "Hello " . a:name
return s:echo(l:greeting)
endfunction

function! source#Hello()
return "Hello from namespace"
endfunction

function! EchoFunc(...)
for s in a:000
echon ' ' . s
endfor
endfunction

imap <C-h> <C-r>=HelloWorld("World")<CR>
command! -nargs=? Echo :call EchoFunc(<args>)

let g:global = "global var"
let s:script_var = "script var"
let w:window_var = "window war"
let b:buffer_var = "buffer war"
let t:tab_var = "tab war"
echo v:false

3 + 5

echo "Hello" ==# "Hello2"
echo "Hello" ==? "Hello2"
echo "Hello" == "Hello2"
echo "Hello" is "Hello2"
echo "Hello" isnot "Hello2"
echo "Hello" =~ "Hello2"
echo "Hello" !~ "Hello2"

" ALE Linters configuration
let g:dict = {}
let g:dict.item = ['l1', 'l2']

" ALE Fixers configuration
let g:dict2 = {'dict_item': ['l1', 'l2'], 'di2': 'x'}

filetype plugin indent on
syntax enable

0 comments on commit 719bdd9

Please sign in to comment.