" Vim syntax file " Language: XHTML " Filenames: *.xhtml *.html *.htm *.shtml *.stm " Maintainer: Michal Gorny " URL: http://mig.webpark.pl/vim/xhtml.vim " Last_change: 2005 Jun 22 " Credits: Based on Claudio Fleiner's html.vim if !exists("main_syntax") if exists("b:current_syntax") finish endif let main_syntax = 'xhtml' endif " Load XML syntax file runtime! syntax/xml.vim syn cluster xmlTagHook add=@xhtmlTagHook syn cluster xmlAttribHook add=@xhtmlAttribHook syn case match " XHTML ELEMENTS syn cluster xhtmlTagHook add=xhtmlElement " XHTML 1.0 Strict elements syn keyword xhtmlElement contained a abbr acronym address area base bdo big syn keyword xhtmlElement contained blockquote body br button caption cite code syn keyword xhtmlElement contained col colgroup dd del dfn div dl dt em syn keyword xhtmlElement contained fieldset form head hr img ins input kbd syn keyword xhtmlElement contained label legend li link map meta noscript syn keyword xhtmlElement contained object ol optgroup option param pre samp syn keyword xhtmlElement contained script span select small strong style sub syn keyword xhtmlElement contained sup table tbody td textarea tfoot th thead syn keyword xhtmlElement contained title tr tt ul var syn match xhtmlElement contained /\/ syn match xhtmlElement contained /\<\(b\|i\|p\|q\|html\)\>\_[^:]/me=e-1 " Deprecated XHTML 1.0 elements (Transitional and Frameset) syn keyword xhtmlElement contained applet basefont center dir font syn keyword xhtmlElement contained iframe isindex menu strike syn match xhtmlElement contained /\<\(s\|u\)\>\_[^:]/me=e-1 " Elements only in XHTML 1.0 Frameset syn keyword xhtmlElement contained frame noframes frameset " Elements new in XHTML 1.1 (Ruby Annotation) syn keyword xhtmlElement contained ruby rbc rtc rb rt rp " Elements new in XHTML 2.0 (as of 7th Working Draft) syn keyword xhtmlElement contained access blockcode di handler nl quote syn keyword xhtmlElement contained section separator standby summary syn match xhtmlElement contained /\<\(h\|l\)\>\_[^:]/me=e-1 " XForms elements (XHTML 2.0) syn keyword xhtmlElement contained action alert bind case choices copy delete syn keyword xhtmlElement contained dispatch extension filename group help hint syn keyword xhtmlElement contained input insert instance item itemset label syn keyword xhtmlElement contained load mediatype message model output range syn keyword xhtmlElement contained rebuild recalculate refresh repeat reset syn keyword xhtmlElement contained revalidate secret select select1 send syn keyword xhtmlElement contained setfocus setindex setvalue submission submit syn keyword xhtmlElement contained switch textarea toggle trigger upload value " XML Events element (XHTML 2.0) syn keyword xhtmlElement contained listener " XHTML ATTRIBUTES syn cluster xhtmlAttribHook add=xhtmlAttr " XHTML 1.0 Strict attributes syn keyword xhtmlAttr contained abbr accept accesskey action align alt archive syn keyword xhtmlAttr contained axis border cellpadding cellspacing char syn keyword xhtmlAttr contained charoff charset checked cite class classid syn keyword xhtmlAttr contained codebase codetype cols colspan content coords syn keyword xhtmlAttr contained data datetime declare defer dir disabled syn keyword xhtmlAttr contained enctype for frame headers height href hreflang syn keyword xhtmlAttr contained id ismap label lang longdesc maxlength media syn keyword xhtmlAttr contained method multiple name nohref profile readonly syn keyword xhtmlAttr contained rel rev rows rowspan rules scheme scope syn keyword xhtmlAttr contained selected shape size span src standby summary syn keyword xhtmlAttr contained tabindex title type usemap valign value syn keyword xhtmlAttr contained valuetype width xmlns syn match xhtmlAttr contained /\<\(accept-charset\|http-equiv\|style\)\>/ " Deprecated XHTML 1.0 attributes (Transitional and Frameset) syn keyword xhtmlAttr contained alink background bgcolor clear code color syn keyword xhtmlAttr contained compact face hspace language link noshade syn keyword xhtmlAttr contained nowrap object prompt start target text version syn keyword xhtmlAttr contained vlink vspace " Attributes only in XHTML 1.0 Frameset syn keyword xhtmlAttr contained frameborder marginheight marginwidth syn keyword xhtmlAttr contained noresize scrolling " Events attributes (XHTML 1.x) if exists("xhtml_no_events_rendering") syn cluster xmlAttribHook add=xhtmlEventAttr syn match xhtmlEventAttr contained /\/ endif " Attribute new in XHTML 1.1 (Ruby Annotation) syn keyword xhtmlAttr contained rbspan " Attributes new in XHTML 2.0 syn keyword xhtmlAttr contained about datatype edit encoding full hrefmedia syn keyword xhtmlAttr contained hreftype key layout nextfocus prevfocus syn keyword xhtmlAttr contained property role srctype targetid targetrole syn match xhtmlAttr contained /\/ syn match xhtmlAttr contained /\<\(xml:\)\@<=base\>/ syn match xhtmlAttr contained /\<\(xsi:\)\@<=schemaLocation\>/ " XForms attributes (XHTML 2.0) syn match xhtmlAttr contained "\" " XML Events attributes (XHTML 2.0) syn keyword xhtmlAttr contained defaultAction event handler observer syn keyword xhtmlAttr contained phase propagate target " SPECIALS " Embedded MathML (DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1) if !exists("xhtml_no_embedded_mathml") syn include @xhtmlMathML syntax/mathml.vim unlet b:current_syntax syn cluster xhtmlTagHook remove=mathmlElement syn cluster xhtmlAttribHook remove=mathmlAttr syn region xhtmlMaths start="<\(\w\+:\)\?math\>" keepend end="" contains=mathmlTag,mathmlEndTag,xmlEntity,xmlComment syn region mathmlTag start=+<[^ /!?<>"']\@=+ keepend end=+>+ contained contains=mathmlTagName,mathmlAttr,xmlEqual,xmlString syn match mathmlTagName +[<]\@<=[^ /!?<>"']\++ contained contains=xmlNamespace,xmlAttribPunct,mathmlElement,@xmlTagHook display syn match mathmlEndTag +"']\+>+ contained contains=xmlNamespace,xmlAttribPunct,mathmlElement endif " Embedded SVG (DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1) if !exists("xhtml_no_embedded_svg") syn include @xhtmlSVG syntax/svg.vim unlet b:current_syntax syn cluster xhtmlTagHook remove=svgElement syn cluster xhtmlAttribHook remove=svgAttr,svgEventAttr,svgEvent syn region xhtmlGraph start=+<\(\w\+:\)\?svg\>+ keepend end=++ contains=svgTag,svgEndTag,xmlEntity,xmlComment syn region svgTag start=+<[^ /!?<>"']\@=+ keepend end=+>+ contained contains=svgTagName,svgAttr,svgEventAttr,svgEvent,xmlEqual,xmlString syn match svgTagName +[<]\@<=[^ /!?<>"']\++ contained contains=xmlNamespace,xmlAttribPunct,svgElement,@xmlTagHook display syn match svgEndTag +"']\+>+ contained contains=xmlNamespace,xmlAttribPunct,svgElement endif " XML declaration attributes syn keyword xmlDeclAttr version encoding standalone containedin=xmlProcessing contained " Server Side Includes (SSI) syn region xhtmlSSI start="" contains=xhtmlSSIStmt,xhtmlSSIConditStmt,xhtmlSSIError,xhtmlSSIAttr syn match xhtmlSSIStmt contained "\)" syn region xhtmlStyleTag contained start=+<\/\?style+ end=+>+ contains=xmlTagName,xmlString,xmlAttrib if !exists("xhtml_no_inline_css_rendering") syn region xhtmlInlineCss contained matchgroup=xhtmlAttr start=+style="+ keepend matchgroup=xmlString end=+"+ contains=css.*Attr,css.*Prop,cssComment,cssLength,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssString,@xhtmlPreProc syn cluster xmlAttribHook add=xhtmlInlineCss endif endif " Rendering if !exists("xhtml_no_rendering") syn cluster xhtmlTop contains=@Spell,xmlTag,xmlEndTag,xmlEntity,xhtmlSSI,xmlComment,xhtmlLink,javaScript,@xhtmlPreProc syn region xhtmlBold start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlBoldUnderline,xhtmlBoldItalic syn region xhtmlBold start="" end=""me=e-9 contains=@xhtmlTop,xhtmlBoldUnderline,xhtmlBoldItalic syn region xhtmlBoldUnderline contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlBoldUnderlineItalic syn region xhtmlBoldItalic contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlBoldItalicUnderline syn region xhtmlBoldItalic contained start="" end=""me=e-5 contains=@xhtmlTop,xhtmlBoldItalicUnderline syn region xhtmlBoldUnderlineItalic contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop syn region xhtmlBoldUnderlineItalic contained start="" end=""me=e-5 contains=@xhtmlTop syn region xhtmlBoldItalicUnderline contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlBoldUnderlineItalic syn region xhtmlItalic start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlItalicBold,xhtmlItalicUnderline syn region xhtmlItalic start="" end=""me=e-5 contains=@xhtmlTop syn region xhtmlItalicBold contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlItalicBoldUnderline syn region xhtmlItalicBold contained start="" end=""me=e-9 contains=@xhtmlTop,xhtmlItalicBoldUnderline syn region xhtmlItalicBoldUnderline contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop syn region xhtmlItalicUnderline contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlItalicUnderlineBold syn region xhtmlItalicUnderlineBold contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop syn region xhtmlItalicUnderlineBold contained start="" end=""me=e-9 contains=@xhtmlTop syn region xhtmlUnderline start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlUnderlineBold,xhtmlUnderlineItalic syn region xhtmlUnderlineBold contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,xhtmlUnderlineBoldItalic syn region xhtmlUnderlineBold contained start="" end=""me=e-9 contains=@xhtmlTop,xhtmlUnderlineBoldItalic syn region xhtmlUnderlineItalic contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop,htmUnderlineItalicBold syn region xhtmlUnderlineItalic contained start="" end=""me=e-5 contains=@xhtmlTop,htmUnderlineItalicBold syn region xhtmlUnderlineItalicBold contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop syn region xhtmlUnderlineItalicBold contained start="" end=""me=e-9 contains=@xhtmlTop syn region xhtmlUnderlineBoldItalic contained start=" \t\n]" end=""me=e-4 contains=@xhtmlTop syn region xhtmlUnderlineBoldItalic contained start="" end=""me=e-5 contains=@xhtmlTop " In XHTML 2.0 href attribute may appear on any element syn region xhtmlLink start="<\z(\(\w\+:\)\?\w\+\)\_[^>]*\_\shref\>\_[^>]\+[^/]>" keepend skip="<\z1\>[^<]\+" end=""re=s contains=@Spell,xmlTag,xmlEndTag,xmlEntity,xhtmlSSI,xmlComment,javaScript,@xhtmlPreProc syn region xhtmlTitle start="" end=""me=e-8 contains=@Spell,xmlTag,xmlEndTag,xmlEntity,xhtmlSSI,xmlComment,javaScript,@xhtmlPreProc syn region xhtmlH start=" \t\n]" end=""me=e-4 contains=@xhtmlTop syn region xhtmlH1 start="" end=""me=e-5 contains=@xhtmlTop syn region xhtmlH2 start="" end=""me=e-5 contains=@xhtmlTop syn region xhtmlH3 start="" end=""me=e-5 contains=@xhtmlTop syn region xhtmlH4 start="" end=""me=e-5 contains=@xhtmlTop syn region xhtmlH5 start="" end=""me=e-5 contains=@xhtmlTop syn region xhtmlH6 start="" end=""me=e-5 contains=@xhtmlTop endif " Synchronizing if main_syntax == "xhtml" syn sync match xhtmlHighlight groupthere NONE "<[/a-zA-Z]" syn sync match xhtmlHighlight groupthere javaScript "