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