xref: /vim-8.2.3635/runtime/syntax/smil.vim (revision cb03397a)
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" 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
18let s:cpo_save = &cpo
19set cpo&vim
20
21" 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
157let &cpo = s:cpo_save
158unlet s:cpo_save
159" vim: ts=8
160