--- a/vim/.vimrc Sun Sep 26 18:28:43 2010 -0400
+++ b/vim/.vimrc Sun Sep 26 20:30:44 2010 -0400
@@ -234,6 +234,8 @@
" Cram tests
au BufNewFile,BufRead *.t set filetype=cram
+let cram_fold=1
+autocmd Syntax cram setlocal foldlevel=1
if has('gui_running')
set guifont=Menlo:h12
--- a/vim/syntax/cram.vim Sun Sep 26 18:28:43 2010 -0400
+++ b/vim/syntax/cram.vim Sun Sep 26 20:30:44 2010 -0400
@@ -4,6 +4,12 @@
"
" 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
@@ -12,7 +18,7 @@
syn include @Shell syntax/sh.vim
syn match cramComment /^[^ ].*$/
-syn region cramOutput start=/^ [^$>]/ start=/^ $/ end=/\v.(\n\n*[^ ])\@=/me=s end=/ [$>]/me=e-3 end=/^$/ fold containedin=cramBlock
+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
@@ -21,7 +27,11 @@
hi link cramComment Normal
hi link cramOutput Comment
-set foldmethod=syntax
-syn sync maxlines=200
+if exists("cram_fold")
+ setlocal foldmethod=syntax
+endif
+
+syn sync match cramSync grouphere NONE "^$"
+syn sync maxlines=2000
let b:current_syntax = "cram"