42 lines
1.3 KiB
VimL
42 lines
1.3 KiB
VimL
" Vim syntax file
|
|
" Language: Cram Tests
|
|
" Author: Steve Losh (steve@stevelosh.com)
|
|
"
|
|
" Add the following line to your ~/.vimrc to enable:
|
|
" au BufNewFile,BufRead *.t set filetype=cram
|
|
"
|
|
" If you want folding you'll need the following line as well:
|
|
" let cram_fold=1
|
|
"
|
|
" You might also want to set the starting foldlevel for Cram files:
|
|
" autocmd Syntax cram setlocal foldlevel=1
|
|
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
syn include @Shell syntax/sh.vim
|
|
|
|
syn match cramComment /^[^ ].*$/ contains=@Spell
|
|
syn region cramOutput start=/^ [^$>]/ start=/^ $/ end=/\v.(\n\n*[^ ])\@=/me=s end=/^ [$>]/me=e-3 end=/^$/ fold containedin=cramBlock
|
|
syn match cramCommandStart /^ \$ / containedin=cramCommand
|
|
syn region cramCommand start=/^ \$ /hs=s+4,rs=s+4 end=/^ [^>]/me=e-3 end=/^ $/me=e-2 containedin=cramBlock contains=@Shell keepend
|
|
syn region cramBlock start=/^ /ms=e-2 end=/\v.(\n\n*[^ ])\@=/me=s end=/^$/me=e-1 fold keepend
|
|
|
|
hi link cramCommandStart Keyword
|
|
hi link cramComment Normal
|
|
hi link cramOutput Comment
|
|
|
|
if exists("cram_fold")
|
|
setlocal foldmethod=syntax
|
|
endif
|
|
|
|
syn sync match cramSync grouphere NONE "^$"
|
|
syn sync maxlines=200
|
|
|
|
" It's okay to set tab settings here, because an indent of two spaces is specified
|
|
" by the file format.
|
|
setlocal tabstop=2 softtabstop=2 shiftwidth=2 expandtab
|
|
|
|
let b:current_syntax = "cram"
|