xref: /vim-8.2.3635/runtime/syntax/wml.vim (revision 5f1920ad)
1" Vim syntax file
2" Language:     WML - Website MetaLanguage
3" Maintainer:   Gerfried Fuchs <[email protected]>
4" Filenames:    *.wml
5" Last Change:  07 Feb 2002
6" URL:		http://alfie.ist.org/software/vim/syntax/wml.vim
7"
8" Original Version: Craig Small <[email protected]>
9
10" Comments are very welcome - but please make sure that you are commenting on
11" the latest version of this file.
12" SPAM is _NOT_ welcome - be ready to be reported!
13
14"  If you are looking for the "Wireless Markup Language" syntax file,
15"  please take a look at the wap.vim file done by Ralf Schandl, soon in a
16"  vim-package around your corner :)
17
18
19" quit when a syntax file was already loaded
20if exists("b:current_syntax")
21  finish
22endif
23
24
25" A lot of the web stuff looks like HTML so we load that first
26runtime! syntax/html.vim
27unlet b:current_syntax
28
29if !exists("main_syntax")
30  let main_syntax = 'wml'
31endif
32
33" special character
34syn match wmlNextLine	"\\$"
35
36" Redfine htmlTag
37syn clear htmlTag
38syn region  htmlTag  start=+<[^/<]+ end=+>+  contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition
39
40"
41" Add in extra Arguments used by wml
42syn keyword htmlTagName contained gfont imgbg imgdot lowsrc
43syn keyword htmlTagName contained navbar:define navbar:header
44syn keyword htmlTagName contained navbar:footer navbar:prolog
45syn keyword htmlTagName contained navbar:epilog navbar:button
46syn keyword htmlTagName contained navbar:filter navbar:debug
47syn keyword htmlTagName contained navbar:render
48syn keyword htmlTagName contained preload rollover
49syn keyword htmlTagName contained space hspace vspace over
50syn keyword htmlTagName contained ps ds pi ein big sc spaced headline
51syn keyword htmlTagName contained ue subheadline zwue verbcode
52syn keyword htmlTagName contained isolatin pod sdf text url verbatim
53syn keyword htmlTagName contained xtable
54syn keyword htmlTagName contained csmap fsview import box
55syn keyword htmlTagName contained case:upper case:lower
56syn keyword htmlTagName contained grid cell info lang: logo page
57syn keyword htmlTagName contained set-var restore
58syn keyword htmlTagName contained array:push array:show set-var ifdef
59syn keyword htmlTagName contained say m4 symbol dump enter divert
60syn keyword htmlTagName contained toc
61syn keyword htmlTagName contained wml card do refresh oneevent catch spawn
62
63"
64" The wml arguments
65syn keyword htmlArg contained adjust background base bdcolor bdspace
66syn keyword htmlArg contained bdwidth complete copyright created crop
67syn keyword htmlArg contained direction description domainname eperlfilter
68syn keyword htmlArg contained file hint imgbase imgstar interchar interline
69syn keyword htmlArg contained keephr keepindex keywords layout spacing
70syn keyword htmlArg contained padding nonetscape noscale notag notypo
71syn keyword htmlArg contained onload oversrc pos select slices style
72syn keyword htmlArg contained subselected txtcol_select txtcol_normal
73syn keyword htmlArg contained txtonly via
74syn keyword htmlArg contained mode columns localsrc ordered
75
76
77" Lines starting with an # are usually comments
78syn match   wmlComment     "^\s*#.*"
79" The different exceptions to comments
80syn match   wmlSharpBang   "^#!.*"
81syn match   wmlUsed	   contained "\s\s*[A-Za-z:_-]*"
82syn match   wmlUse	   "^\s*#\s*use\s\+" contains=wmlUsed
83syn match   wmlInclude	   "^\s*#\s*include.+"
84
85syn region  wmlBody	   contained start=+<<+ end=+>>+
86
87syn match   wmlLocationId  contained "[A-Za-z]\+"
88syn region  wmlLocation    start=+<<+ end=+>>+ contains=wmlLocationId
89"syn region  wmlLocation    start=+{#+ end=+#}+ contains=wmlLocationId
90"syn region  wmlLocationed  contained start=+<<+ end=+>>+ contains=wmlLocationId
91
92syn match   wmlDivert      "\.\.[a-zA-Z_]\+>>"
93syn match   wmlDivertEnd   "<<\.\."
94" new version
95"syn match   wmlDivert      "{#[a-zA-Z_]\+#:"
96"syn match   wmlDivertEnd   ":##}"
97
98syn match   wmlDefineName  contained "\s\+[A-Za-z-]\+"
99syn region  htmlTagName    start="\<\(define-tag\|define-region\)" end="\>" contains=wmlDefineName
100
101" The perl include stuff
102if main_syntax != 'perl'
103  " Perl script
104  syn include @wmlPerlScript syntax/perl.vim
105  unlet b:current_syntax
106
107  syn region perlScript   start=+<perl>+ keepend end=+</perl>+ contains=@wmlPerlScript,wmlPerlTag
108" eperl between '<:' and ':>'  -- Alfie [1999-12-26]
109  syn region perlScript   start=+<:+ keepend end=+:>+ contains=@wmlPerlScript,wmlPerlTag
110  syn match    wmlPerlTag  contained "</*perl>" contains=wmlPerlTagN
111  syn keyword  wmlPerlTagN contained perl
112
113  hi link   wmlPerlTag  htmlTag
114  hi link   wmlPerlTagN htmlStatement
115endif
116
117" verbatim tags -- don't highlight anything in between  -- Alfie [2002-02-07]
118syn region  wmlVerbatimText start=+<verbatim>+ keepend end=+</verbatim>+ contains=wmlVerbatimTag
119syn match   wmlVerbatimTag  contained "</*verbatim>" contains=wmlVerbatimTagN
120syn keyword wmlVerbatimTagN contained verbatim
121hi link     wmlVerbatimTag  htmlTag
122hi link     wmlVerbatimTagN htmlStatement
123
124if main_syntax == "html"
125  syn sync match wmlHighlight groupthere NONE "</a-zA-Z]"
126  syn sync match wmlHighlight groupthere perlScript "<perl>"
127  syn sync match wmlHighlightSkip "^.*['\"].*$"
128  syn sync minlines=10
129endif
130
131" Define the default highlighting.
132" Only when an item doesn't have highlighting yet
133
134hi def link wmlNextLine	Special
135hi def link wmlUse		Include
136hi def link wmlUsed	String
137hi def link wmlBody	Special
138hi def link wmlDiverted	Label
139hi def link wmlDivert	Delimiter
140hi def link wmlDivertEnd	Delimiter
141hi def link wmlLocationId	Label
142hi def link wmlLocation	Delimiter
143" hi def link wmlLocationed	Delimiter
144hi def link wmlDefineName	String
145hi def link wmlComment	Comment
146hi def link wmlInclude	Include
147hi def link wmlSharpBang	PreProc
148
149
150let b:current_syntax = "wml"
151