blob: d3d7b3a17a11d0ac1da16b0b6f645ef2c39c0d01 [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: PPWizard (preprocessor by Dennis Bareis)
3" Maintainer: Stefan Schwarzer <s.schwarzer@ndh.net>
4" URL: http://www.ndh.net/home/sschwarzer/download/ppwiz.vim
5" Last Change: 2003 May 11
6" Filename: ppwiz.vim
7
8" Remove old syntax stuff
9" For version 5.x: Clear all syntax items
10" For version 6.x: Quit when a syntax file was already loaded
11if version < 600
12 syntax clear
13elseif exists("b:current_syntax")
14 finish
15endif
16
17syn case ignore
18
19if !exists("ppwiz_highlight_defs")
20 let ppwiz_highlight_defs = 1
21endif
22
23if !exists("ppwiz_with_html")
24 let ppwiz_with_html = 1
25endif
26
27" comments
28syn match ppwizComment "^;.*$"
29syn match ppwizComment ";;.*$"
30" HTML
31if ppwiz_with_html > 0
32 syn region ppwizHTML start="<" end=">" contains=ppwizArg,ppwizMacro
33 syn match ppwizHTML "\&\w\+;"
34endif
35" define, evaluate etc.
36if ppwiz_highlight_defs == 1
37 syn match ppwizDef "^\s*\#\S\+\s\+\S\+" contains=ALL
38 syn match ppwizDef "^\s*\#\(if\|else\|endif\)" contains=ALL
39 syn match ppwizDef "^\s*\#\({\|break\|continue\|}\)" contains=ALL
40" elseif ppwiz_highlight_defs == 2
41" syn region ppwizDef start="^\s*\#" end="[^\\]$" end="^$" keepend contains=ALL
42else
43 syn region ppwizDef start="^\s*\#" end="[^\\]$" end="^$" keepend contains=ppwizCont
44endif
45syn match ppwizError "\s.\\$"
46syn match ppwizCont "\s\([+\-%]\|\)\\$"
47" macros to execute
48syn region ppwizMacro start="<\$" end=">" contains=@ppwizArgVal,ppwizCont
49" macro arguments
50syn region ppwizArg start="{" end="}" contains=ppwizEqual,ppwizString
51syn match ppwizEqual "=" contained
52syn match ppwizOperator "<>\|=\|<\|>" contained
53" standard variables (builtin)
54syn region ppwizStdVar start="<?[^?]" end=">" contains=@ppwizArgVal
55" Rexx variables
56syn region ppwizRexxVar start="<??" end=">" contains=@ppwizArgVal
57" Constants
58syn region ppwizString start=+"+ end=+"+ contained contains=ppwizMacro,ppwizArg,ppwizHTML,ppwizCont,ppwizStdVar,ppwizRexxVar
59syn region ppwizString start=+'+ end=+'+ contained contains=ppwizMacro,ppwizArg,ppwizHTML,ppwizCont,ppwizStdVar,ppwizRexxVar
60syn match ppwizInteger "\d\+" contained
61
62" Clusters
63syn cluster ppwizArgVal add=ppwizString,ppwizInteger
64
65" Define the default highlighting.
66" For version 5.7 and earlier: only when not done already
67" For version 5.8 and later: only when an item doesn't have highlighting yet
68if version >= 508 || !exists("did_ppwiz_syn_inits")
69 if version < 508
70 let did_ppwiz_syn_inits = 1
71 command -nargs=+ HiLink hi link <args>
72 else
73 command -nargs=+ HiLink hi def link <args>
74 endif
75
76 HiLink ppwizSpecial Special
77 HiLink ppwizEqual ppwizSpecial
78 HiLink ppwizOperator ppwizSpecial
79 HiLink ppwizComment Comment
80 HiLink ppwizDef PreProc
81 HiLink ppwizMacro Statement
82 HiLink ppwizArg Identifier
83 HiLink ppwizStdVar Identifier
84 HiLink ppwizRexxVar Identifier
85 HiLink ppwizString Constant
86 HiLink ppwizInteger Constant
87 HiLink ppwizCont ppwizSpecial
88 HiLink ppwizError Error
89 HiLink ppwizHTML Type
90
91 delcommand HiLink
92endif
93
94let b:current_syntax = "ppwiz"
95
96" vim: ts=4
97