Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- " Vim syntax file
- " Language: HTML
- " Maintainer: Claudio Fleiner <claudio@fleiner.com>
- " URL: http://www.fleiner.com/vim/syntax/html.vim
- " Last Change: 2006 Jun 19
- " Please check :help html.vim for some comments and a description of the options
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- if !exists("main_syntax")
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
- endif
- let main_syntax = 'html'
- endif
- " don't use standard HiLink, it will not work with included syntax files
- if version < 508
- command! -nargs=+ HtmlHiLink hi link <args>
- else
- command! -nargs=+ HtmlHiLink hi def link <args>
- endif
- syntax spell toplevel
- syn case ignore
- " mark illegal characters
- syn match htmlError "[<>&]"
- " tags
- syn region htmlString contained start=+"+ end=+"+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
- syn region htmlString contained start=+'+ end=+'+ contains=htmlSpecialChar,javaScriptExpression,@htmlPreproc
- syn match htmlValue contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1 contains=javaScriptExpression,@htmlPreproc
- syn region htmlEndTag start=+</+ end=+>+ contains=htmlTagN,htmlTagError
- syn region htmlTag start=+<[^/]+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc,@htmlArgCluster
- syn match htmlTagN contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
- syn match htmlTagN contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName,@htmlTagNameCluster
- syn match htmlTagError contained "[^>]<"ms=s+1
- " tag names
- syn keyword htmlTagName contained address applet area a base basefont
- syn keyword htmlTagName contained big blockquote br caption center
- syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
- syn keyword htmlTagName contained form hr html img
- syn keyword htmlTagName contained input isindex kbd li link map menu
- syn keyword htmlTagName contained meta ol option param pre p samp span
- syn keyword htmlTagName contained select small strike sub sup
- syn keyword htmlTagName contained table td textarea th tr tt ul var xmp
- syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
- " new html 4.0 tags
- syn keyword htmlTagName contained abbr acronym bdo button col label
- syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
- syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
- " legal arg names
- syn keyword htmlArg contained action
- syn keyword htmlArg contained align alink alt archive background bgcolor
- syn keyword htmlArg contained border bordercolor cellpadding
- syn keyword htmlArg contained cellspacing checked class clear code codebase color
- syn keyword htmlArg contained cols colspan content coords enctype face
- syn keyword htmlArg contained gutter height hspace id
- syn keyword htmlArg contained link lowsrc marginheight
- syn keyword htmlArg contained marginwidth maxlength method name prompt
- syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape
- syn keyword htmlArg contained size src start target text type url
- syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
- syn match htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1
- " Netscape extensions
- syn keyword htmlTagName contained frame noframes frameset nobr blink
- syn keyword htmlTagName contained layer ilayer nolayer spacer
- syn keyword htmlArg contained frameborder noresize pagex pagey above below
- syn keyword htmlArg contained left top visibility clip id noshade
- syn match htmlArg contained "\<z-index\>"
- " Microsoft extensions
- syn keyword htmlTagName contained marquee
- " html 4.0 arg names
- syn match htmlArg contained "\<\(accept-charset\|label\)\>"
- syn keyword htmlArg contained abbr accept accesskey axis char charoff charset
- syn keyword htmlArg contained cite classid codetype compact data datetime
- syn keyword htmlArg contained declare defer dir disabled for frame
- syn keyword htmlArg contained headers hreflang lang language longdesc
- syn keyword htmlArg contained multiple nohref nowrap object profile readonly
- syn keyword htmlArg contained rules scheme scope span standby style
- syn keyword htmlArg contained summary tabindex valuetype version
- " special characters
- syn match htmlSpecialChar "&#\=[0-9A-Za-z]\{1,8};"
- " Comments (the real ones or the old netscape ones)
- if exists("html_wrong_comments")
- syn region htmlComment start=+<!--+ end=+--\s*>+
- else
- syn region htmlComment start=+<!+ end=+>+ contains=htmlCommentPart,htmlCommentError
- syn match htmlCommentError contained "[^><!]"
- syn region htmlCommentPart contained start=+--+ end=+--\s*+ contains=@htmlPreProc
- endif
- syn region htmlComment start=+<!DOCTYPE+ keepend end=+>+
- " server-parsed commands
- syn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttr
- syn match htmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\|geoguide\)\>"
- syn match htmlPreError contained "<!--#\S*"ms=s+4
- syn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrName
- syn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName keepend
- syn match htmlPreProcAttrError contained "\w\+="he=e-1
- syn match htmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1
- if !exists("html_no_rendering")
- " rendering
- syn cluster htmlTop contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
- syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
- syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
- syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
- syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline
- syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline
- syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
- syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
- syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
- syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
- syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic
- syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic
- syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlUnderlineItalicBold
- syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlUnderlineItalicBold
- syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
- syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
- syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
- syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
- syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
- syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop
- syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline
- syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline
- syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop
- syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold
- syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
- syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
- "syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
- syn region htmlLink start="<a\>\_[^>]*\<href\>" end="</a>"me=e-4 contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc
- syn match htmlLinkText contained contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc "^\s*\zs.\{-}\ze\s*$"
- syn match htmlLinkText contained contains=@Spell,htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLinkText,javaScript,@htmlPreproc "\S.\{-}\ze\s*$"
- syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop
- syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop
- syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop
- syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop
- syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop
- syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop
- syn region htmlHead start="<head\>" end="</head>"me=e-7 end="<body\>"me=e-5 end="<h[1-6]\>"me=e-3 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,htmlTitle,javaScript,cssStyle,@htmlPreproc
- syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
- endif
- syn keyword htmlTagName contained noscript
- syn keyword htmlSpecialTagName contained script style
- if main_syntax != 'java' || exists("java_javascript")
- " JAVA SCRIPT
- syn include @htmlJavaScript syntax/javascript.vim
- unlet b:current_syntax
- syn region javaScript start=+<script[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
- syn region htmlScriptTag contained start=+<script+ end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
- HtmlHiLink htmlScriptTag htmlTag
- " html events (i.e. arguments that include javascript commands)
- if exists("html_extended_events")
- syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ
- syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ
- else
- syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ
- syn region htmlEvent contained start=+\<on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ
- endif
- syn region htmlEventSQ contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript
- syn region htmlEventDQ contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript
- HtmlHiLink htmlEventSQ htmlEvent
- HtmlHiLink htmlEventDQ htmlEvent
- " a javascript expression is used as an arg value
- syn region javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc
- endif
- if main_syntax != 'java' || exists("java_vb")
- " VB SCRIPT
- syn include @htmlVbScript syntax/vb.vim
- unlet b:current_syntax
- syn region javaScript start=+<script [^>]*language *=[^>]*vbscript[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlVbScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
- endif
- syn cluster htmlJavaScript add=@htmlPreproc
- if main_syntax != 'java' || exists("java_css")
- " embedded style sheets
- syn keyword htmlArg contained media
- syn include @htmlCss syntax/css.vim
- unlet b:current_syntax
- syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc
- syn match htmlCssStyleComment contained "\(<!--\|-->\)"
- syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Prop,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc
- HtmlHiLink htmlStyleArg htmlString
- endif
- if main_syntax == "html"
- " synchronizing (does not always work if a comment includes legal
- " html tags, but doing it right would mean to always start
- " at the first line, which is too slow)
- syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
- syn sync match htmlHighlight groupthere javaScript "<script"
- syn sync match htmlHighlightSkip "^.*['\"].*$"
- syn sync minlines=10
- endif
- " The default highlighting.
- if version >= 508 || !exists("did_html_syn_inits")
- if version < 508
- let did_html_syn_inits = 1
- endif
- HtmlHiLink htmlTag Function
- HtmlHiLink htmlEndTag Identifier
- HtmlHiLink htmlArg Type
- HtmlHiLink htmlTagName htmlStatement
- HtmlHiLink htmlSpecialTagName Exception
- HtmlHiLink htmlValue String
- HtmlHiLink htmlSpecialChar Special
- if !exists("html_no_rendering")
- HtmlHiLink htmlH1 Title
- HtmlHiLink htmlH2 htmlH1
- HtmlHiLink htmlH3 htmlH2
- HtmlHiLink htmlH4 htmlH3
- HtmlHiLink htmlH5 htmlH4
- HtmlHiLink htmlH6 htmlH5
- HtmlHiLink htmlHead PreProc
- HtmlHiLink htmlTitle Title
- HtmlHiLink htmlBoldItalicUnderline htmlBoldUnderlineItalic
- HtmlHiLink htmlUnderlineBold htmlBoldUnderline
- HtmlHiLink htmlUnderlineItalicBold htmlBoldUnderlineItalic
- HtmlHiLink htmlUnderlineBoldItalic htmlBoldUnderlineItalic
- HtmlHiLink htmlItalicUnderline htmlUnderlineItalic
- HtmlHiLink htmlItalicBold htmlBoldItalic
- HtmlHiLink htmlItalicBoldUnderline htmlBoldUnderlineItalic
- HtmlHiLink htmlItalicUnderlineBold htmlBoldUnderlineItalic
- "HtmlHiLink htmlLink Underlined
- HtmlHiLink htmlLinkText Underlined
- if !exists("html_my_rendering")
- hi def htmlBold term=bold cterm=bold gui=bold
- hi def htmlBoldUnderline term=bold,underline cterm=bold,underline gui=bold,underline
- hi def htmlBoldItalic term=bold,italic cterm=bold,italic gui=bold,italic
- hi def htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
- hi def htmlUnderline term=underline cterm=underline gui=underline
- hi def htmlUnderlineItalic term=italic,underline cterm=italic,underline gui=italic,underline
- hi def htmlItalic term=italic cterm=italic gui=italic
- endif
- endif
- HtmlHiLink htmlPreStmt PreProc
- HtmlHiLink htmlPreError Error
- HtmlHiLink htmlPreProc PreProc
- HtmlHiLink htmlPreAttr String
- HtmlHiLink htmlPreProcAttrName PreProc
- HtmlHiLink htmlPreProcAttrError Error
- HtmlHiLink htmlSpecial Special
- HtmlHiLink htmlSpecialChar Special
- HtmlHiLink htmlString String
- HtmlHiLink htmlStatement Statement
- HtmlHiLink htmlComment Comment
- HtmlHiLink htmlCommentPart Comment
- HtmlHiLink htmlValue String
- HtmlHiLink htmlCommentError htmlError
- HtmlHiLink htmlTagError htmlError
- HtmlHiLink htmlEvent javaScript
- HtmlHiLink htmlError Error
- HtmlHiLink javaScript Special
- HtmlHiLink javaScriptExpression javaScript
- HtmlHiLink htmlCssStyleComment Comment
- HtmlHiLink htmlCssDefinition Special
- endif
- delcommand HtmlHiLink
- let b:current_syntax = "html"
- if main_syntax == 'html'
- unlet main_syntax
- endif
- " vim: ts=8
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement