This is an old revision of the document!
progress.vim
- location: $VIMFILES/after/syntax/progress.vim
" fix problems with nested comments try | %s/\*\/\*\//\*\/ \*\//g | catch /^Vim\%((\a\+)\)\=:E/ | endtry syn clear syn case ignore syn keyword keyword not run find format where like put control index field initial no-lock exclusive-lock no-error no-wait by yes no leave view assign create release available delete first return delimiter begins display down with page width no-box no-labels output quit to as view-as alert-box error message import export unformatted from " this section causes problems with procedure folding and folding of the " related items "syn keyword conditional if then else case when next and or "syn keyword repeat do for each while syn keyword function locked avail substring trim " this section causes a problem with the temp-table folding "syn keyword define contained define def as var variable parameter "syn match define /^\s*\(def\|define\).*\(temp-table\)\@!/ contains=ALL syn keyword type int integer char character date logical temp-table shared stream input frame buffer init syn keyword boolean true false syn region doublestring start=/"/ end=/"/ syn region singlestring start=/'/ end=/'/ syn region form start=/^\s*form.*/ end=/\.$\|\.\s/ contains=comment fold syn region frame start=/^\s*\(def\|define\) frame.*/ end=/\.$\|\.\s/ contains=comment fold syn region temptable start=/^\s*\(def\|define\) \(shared \)\=temp-table.*/ end=/\.$\|\.\s/ contains=comment fold "syn region procedure start=/^\s*procedure .*/ end=/^end.*/ contains=ALLBUT,procedure fold syn region caseregion start=/case[^:.]*:/ end=/end[^.]*\./ contains=ALLBUT,procedure fold keepend extend syn region doregion start=/do\s*:\|do\s\+\(while\|until\)[^:.]*[:.]/ end=/end[^.]*\./ contains=ALLBUT,procedure fold keepend extend syn region foreachregion start=/for each/ end=/end[^.]*\./ contains=ALLBUT,procedure fold keepend extend syn region procedure start=/procedure / end=/end[^.]*\./ contains=ALLBUT,procedure fold keepend " comments work unless a nested comment ends without a space before ending the " outer comment: example /* test /* nest */*/ syn region comment start=/\/\*/ end=/\*\// contains=comment extend " use these to help identify syntax bugs...rename the above regions with or " without a T on the end; then set foldnestmax=20 below hi caseregionT guifg=black guibg=yellow hi doregionT guifg=white guibg=blue hi foreachregionT guifg=white guibg=green hi procedureT guifg=white guibg=brown set fen set foldnestmax=1 "set foldnestmax=20 set foldlevel=0 set foldmethod=syntax syn sync fromstart