blob: 4cf6e84710bebd2097da12ae6a9a1cdbe7a64d9a [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
Bram Moolenaar89bcfda2016-08-30 23:26:57 +020010" quit when a syntax file was already loaded
11if exists("b:current_syntax")
Bram Moolenaar071d4272004-06-13 20:20:40 +000012 finish
13endif
14
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +010015let s:cpo_save = &cpo
16set cpo&vim
17
Bram Moolenaar071d4272004-06-13 20:20:40 +000018" 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.
Bram Moolenaar89bcfda2016-08-30 23:26:57 +0200115" Only when an item doesn't have highlighting yet
Bram Moolenaar071d4272004-06-13 20:20:40 +0000116
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200117hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000124
Bram Moolenaarf37506f2016-08-31 22:22:10 +0200125hi 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
Bram Moolenaar071d4272004-06-13 20:20:40 +0000136
Bram Moolenaar071d4272004-06-13 20:20:40 +0000137
138let b:current_syntax = "smil"
139
140if main_syntax == 'smil'
141 unlet main_syntax
142endif
143
Bram Moolenaarb8ff1fb2012-02-04 21:59:01 +0100144let &cpo = s:cpo_save
145unlet s:cpo_save
Bram Moolenaar071d4272004-06-13 20:20:40 +0000146" vim: ts=8