blob: 6b5a0028681cdc1c6f3c0379a54b409058d4016c [file] [log] [blame]
Bram Moolenaar071d4272004-06-13 20:20:40 +00001" Vim syntax file
2" Language: SMIL (Synchronized Multimedia Integration Language)
3" Maintainer: Herve Foucher <Herve.Foucher@helio.org>
4" URL: http://www.helio.org/vim/syntax/smil.vim
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +01005" Last Change: 2012 Feb 03 by Thilo Six
Bram Moolenaar071d4272004-06-13 20:20:40 +00006
7" To learn more about SMIL, please refer to http://www.w3.org/AudioVideo/
8" and to http://www.helio.org/products/smil/tutorial/
9
10" For version 5.x: Clear all syntax items
11" For version 6.x: Quit when a syntax file was already loaded
12if version < 600
13 syntax clear
14elseif exists("b:current_syntax")
15 finish
16endif
17
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +010018let s:cpo_save = &cpo
19set cpo&vim
20
Bram Moolenaar071d4272004-06-13 20:20:40 +000021" SMIL is case sensitive
22syn case match
23
24" illegal characters
25syn match smilError "[<>&]"
26syn match smilError "[()&]"
27
28if !exists("main_syntax")
29 let main_syntax = 'smil'
30endif
31
32" tags
33syn match smilSpecial contained "\\\d\d\d\|\\."
34syn match smilSpecial contained "("
35syn match smilSpecial contained "id("
36syn match smilSpecial contained ")"
37syn keyword smilSpecial contained remove freeze true false on off overdub caption new pause replace
38syn keyword smilSpecial contained first last
39syn keyword smilSpecial contained fill meet slice scroll hidden
40syn region smilString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=smilSpecial
41syn region smilString contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=smilSpecial
42syn match smilValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1
43syn region smilEndTag start=+</+ end=+>+ contains=smilTagN,smilTagError
44syn region smilTag start=+<[^/]+ end=+>+ contains=smilTagN,smilString,smilArg,smilValue,smilTagError,smilEvent,smilCssDefinition
45syn match smilTagN contained +<\s*[-a-zA-Z0-9]\++ms=s+1 contains=smilTagName,smilSpecialTagName
46syn match smilTagN contained +</\s*[-a-zA-Z0-9]\++ms=s+2 contains=smilTagName,smilSpecialTagName
47syn match smilTagError contained "[^>]<"ms=s+1
48
49" tag names
50syn keyword smilTagName contained smil head body anchor a switch region layout meta
51syn match smilTagName contained "root-layout"
52syn keyword smilTagName contained par seq
53syn keyword smilTagName contained animation video img audio ref text textstream
54syn match smilTagName contained "\<\(head\|body\)\>"
55
56
57" legal arg names
58syn keyword smilArg contained dur begin end href target id coords show title abstract author copyright alt
59syn keyword smilArg contained left top width height fit src name content fill longdesc repeat type
60syn match smilArg contained "z-index"
61syn match smilArg contained " end-sync"
62syn match smilArg contained " region"
63syn match smilArg contained "background-color"
64syn match smilArg contained "system-bitrate"
65syn match smilArg contained "system-captions"
66syn match smilArg contained "system-overdub-or-caption"
67syn match smilArg contained "system-language"
68syn match smilArg contained "system-required"
69syn match smilArg contained "system-screen-depth"
70syn match smilArg contained "system-screen-size"
71syn match smilArg contained "clip-begin"
72syn match smilArg contained "clip-end"
73syn match smilArg contained "skip-content"
74
75
76" SMIL Boston ext.
77" This are new SMIL functionnalities seen on www.w3.org on August 3rd 1999
78
79" Animation
80syn keyword smilTagName contained animate set move
81syn keyword smilArg contained calcMode from to by additive values origin path
82syn keyword smilArg contained accumulate hold attribute
83syn match smilArg contained "xml:link"
84syn keyword smilSpecial contained discrete linear spline parent layout
85syn keyword smilSpecial contained top left simple
86
87" Linking
88syn keyword smilTagName contained area
89syn keyword smilArg contained actuate behavior inline sourceVolume
90syn keyword smilArg contained destinationVolume destinationPlaystate tabindex
91syn keyword smilArg contained class style lang dir onclick ondblclick onmousedown onmouseup onmouseover onmousemove onmouseout onkeypress onkeydown onkeyup shape nohref accesskey onfocus onblur
92syn keyword smilSpecial contained play pause stop rect circ poly child par seq
93
94" Media Object
95syn keyword smilTagName contained rtpmap
96syn keyword smilArg contained port transport encoding payload clipBegin clipEnd
97syn match smilArg contained "fmt-list"
98
99" Timing and Synchronization
100syn keyword smilTagName contained excl
101syn keyword smilArg contained beginEvent endEvent eventRestart endSync repeatCount repeatDur
102syn keyword smilArg contained syncBehavior syncTolerance
103syn keyword smilSpecial contained canSlip locked
104
105" special characters
106syn match smilSpecialChar "&[^;]*;"
107
108if exists("smil_wrong_comments")
109 syn region smilComment start=+<!--+ end=+-->+
110else
111 syn region smilComment start=+<!+ end=+>+ contains=smilCommentPart,smilCommentError
112 syn match smilCommentError contained "[^><!]"
113 syn region smilCommentPart contained start=+--+ end=+--+
114endif
115syn region smilComment start=+<!DOCTYPE+ keepend end=+>+
116
117" Define the default highlighting.
118" For version 5.7 and earlier: only when not done already
119" For version 5.8 and later: only when an item doesn't have highlighting yet
120if version >= 508 || !exists("did_smil_syntax_inits")
121 if version < 508
122 let did_smil_syntax_inits = 1
123 command -nargs=+ HiLink hi link <args>
124 else
125 command -nargs=+ HiLink hi def link <args>
126 endif
127
128 HiLink smilTag Function
129 HiLink smilEndTag Identifier
130 HiLink smilArg Type
131 HiLink smilTagName smilStatement
132 HiLink smilSpecialTagName Exception
133 HiLink smilValue Value
134 HiLink smilSpecialChar Special
135
136 HiLink smilSpecial Special
137 HiLink smilSpecialChar Special
138 HiLink smilString String
139 HiLink smilStatement Statement
140 HiLink smilComment Comment
141 HiLink smilCommentPart Comment
142 HiLink smilPreProc PreProc
143 HiLink smilValue String
144 HiLink smilCommentError smilError
145 HiLink smilTagError smilError
146 HiLink smilError Error
147
148 delcommand HiLink
149endif
150
151let b:current_syntax = "smil"
152
153if main_syntax == 'smil'
154 unlet main_syntax
155endif
156
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100157let &cpo = s:cpo_save
158unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000159" vim: ts=8