diff options
Diffstat (limited to 'runtime/syntax/ppwiz.vim')
-rw-r--r-- | runtime/syntax/ppwiz.vim | 97 |
1 files changed, 97 insertions, 0 deletions
diff --git a/runtime/syntax/ppwiz.vim b/runtime/syntax/ppwiz.vim new file mode 100644 index 000000000..d3d7b3a17 --- /dev/null +++ b/runtime/syntax/ppwiz.vim @@ -0,0 +1,97 @@ +" Vim syntax file +" Language: PPWizard (preprocessor by Dennis Bareis) +" Maintainer: Stefan Schwarzer <s.schwarzer@ndh.net> +" URL: http://www.ndh.net/home/sschwarzer/download/ppwiz.vim +" Last Change: 2003 May 11 +" Filename: ppwiz.vim + +" Remove old syntax stuff +" For version 5.x: Clear all syntax items +" For version 6.x: Quit when a syntax file was already loaded +if version < 600 + syntax clear +elseif exists("b:current_syntax") + finish +endif + +syn case ignore + +if !exists("ppwiz_highlight_defs") + let ppwiz_highlight_defs = 1 +endif + +if !exists("ppwiz_with_html") + let ppwiz_with_html = 1 +endif + +" comments +syn match ppwizComment "^;.*$" +syn match ppwizComment ";;.*$" +" HTML +if ppwiz_with_html > 0 + syn region ppwizHTML start="<" end=">" contains=ppwizArg,ppwizMacro + syn match ppwizHTML "\&\w\+;" +endif +" define, evaluate etc. +if ppwiz_highlight_defs == 1 + syn match ppwizDef "^\s*\#\S\+\s\+\S\+" contains=ALL + syn match ppwizDef "^\s*\#\(if\|else\|endif\)" contains=ALL + syn match ppwizDef "^\s*\#\({\|break\|continue\|}\)" contains=ALL +" elseif ppwiz_highlight_defs == 2 +" syn region ppwizDef start="^\s*\#" end="[^\\]$" end="^$" keepend contains=ALL +else + syn region ppwizDef start="^\s*\#" end="[^\\]$" end="^$" keepend contains=ppwizCont +endif +syn match ppwizError "\s.\\$" +syn match ppwizCont "\s\([+\-%]\|\)\\$" +" macros to execute +syn region ppwizMacro start="<\$" end=">" contains=@ppwizArgVal,ppwizCont +" macro arguments +syn region ppwizArg start="{" end="}" contains=ppwizEqual,ppwizString +syn match ppwizEqual "=" contained +syn match ppwizOperator "<>\|=\|<\|>" contained +" standard variables (builtin) +syn region ppwizStdVar start="<?[^?]" end=">" contains=@ppwizArgVal +" Rexx variables +syn region ppwizRexxVar start="<??" end=">" contains=@ppwizArgVal +" Constants +syn region ppwizString start=+"+ end=+"+ contained contains=ppwizMacro,ppwizArg,ppwizHTML,ppwizCont,ppwizStdVar,ppwizRexxVar +syn region ppwizString start=+'+ end=+'+ contained contains=ppwizMacro,ppwizArg,ppwizHTML,ppwizCont,ppwizStdVar,ppwizRexxVar +syn match ppwizInteger "\d\+" contained + +" Clusters +syn cluster ppwizArgVal add=ppwizString,ppwizInteger + +" Define the default highlighting. +" For version 5.7 and earlier: only when not done already +" For version 5.8 and later: only when an item doesn't have highlighting yet +if version >= 508 || !exists("did_ppwiz_syn_inits") + if version < 508 + let did_ppwiz_syn_inits = 1 + command -nargs=+ HiLink hi link <args> + else + command -nargs=+ HiLink hi def link <args> + endif + + HiLink ppwizSpecial Special + HiLink ppwizEqual ppwizSpecial + HiLink ppwizOperator ppwizSpecial + HiLink ppwizComment Comment + HiLink ppwizDef PreProc + HiLink ppwizMacro Statement + HiLink ppwizArg Identifier + HiLink ppwizStdVar Identifier + HiLink ppwizRexxVar Identifier + HiLink ppwizString Constant + HiLink ppwizInteger Constant + HiLink ppwizCont ppwizSpecial + HiLink ppwizError Error + HiLink ppwizHTML Type + + delcommand HiLink +endif + +let b:current_syntax = "ppwiz" + +" vim: ts=4 + |