blob: 599bf0b89f7a0dc18e99a4110ea6a9b9db616757 [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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +02009" quit when a syntax file was already loaded
10if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000011 finish
12endif
13
14syn case ignore
15
16if !exists("ppwiz_highlight_defs")
17 let ppwiz_highlight_defs = 1
18endif
19
20if !exists("ppwiz_with_html")
21 let ppwiz_with_html = 1
22endif
23
24" comments
25syn match ppwizComment "^;.*$"
26syn match ppwizComment ";;.*$"
27" HTML
28if ppwiz_with_html > 0
29 syn region ppwizHTML start="<" end=">" contains=ppwizArg,ppwizMacro
30 syn match ppwizHTML "\&\w\+;"
31endif
32" define, evaluate etc.
33if ppwiz_highlight_defs == 1
34 syn match ppwizDef "^\s*\#\S\+\s\+\S\+" contains=ALL
35 syn match ppwizDef "^\s*\#\(if\|else\|endif\)" contains=ALL
36 syn match ppwizDef "^\s*\#\({\|break\|continue\|}\)" contains=ALL
37" elseif ppwiz_highlight_defs == 2
38" syn region ppwizDef start="^\s*\#" end="[^\\]$" end="^$" keepend contains=ALL
39else
40 syn region ppwizDef start="^\s*\#" end="[^\\]$" end="^$" keepend contains=ppwizCont
41endif
42syn match ppwizError "\s.\\$"
43syn match ppwizCont "\s\([+\-%]\|\)\\$"
44" macros to execute
45syn region ppwizMacro start="<\$" end=">" contains=@ppwizArgVal,ppwizCont
46" macro arguments
47syn region ppwizArg start="{" end="}" contains=ppwizEqual,ppwizString
48syn match ppwizEqual "=" contained
49syn match ppwizOperator "<>\|=\|<\|>" contained
50" standard variables (builtin)
51syn region ppwizStdVar start="<?[^?]" end=">" contains=@ppwizArgVal
52" Rexx variables
53syn region ppwizRexxVar start="<??" end=">" contains=@ppwizArgVal
54" Constants
55syn region ppwizString start=+"+ end=+"+ contained contains=ppwizMacro,ppwizArg,ppwizHTML,ppwizCont,ppwizStdVar,ppwizRexxVar
56syn region ppwizString start=+'+ end=+'+ contained contains=ppwizMacro,ppwizArg,ppwizHTML,ppwizCont,ppwizStdVar,ppwizRexxVar
57syn match ppwizInteger "\d\+" contained
58
59" Clusters
60syn cluster ppwizArgVal add=ppwizString,ppwizInteger
61
62" Define the default highlighting.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020063" Only when an item doesn't have highlighting yet
64command -nargs=+ HiLink hi def link <args>
Bram Moolenaar071d4272004-06-13 20:20:40 +000065
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020066HiLink ppwizSpecial Special
67HiLink ppwizEqual ppwizSpecial
68HiLink ppwizOperator ppwizSpecial
69HiLink ppwizComment Comment
70HiLink ppwizDef PreProc
71HiLink ppwizMacro Statement
72HiLink ppwizArg Identifier
73HiLink ppwizStdVar Identifier
74HiLink ppwizRexxVar Identifier
75HiLink ppwizString Constant
76HiLink ppwizInteger Constant
77HiLink ppwizCont ppwizSpecial
78HiLink ppwizError Error
79HiLink ppwizHTML Type
Bram Moolenaar071d4272004-06-13 20:20:40 +000080
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020081delcommand HiLink
Bram Moolenaar071d4272004-06-13 20:20:40 +000082
83let b:current_syntax = "ppwiz"
84
85" vim: ts=4
86