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