home *** CD-ROM | disk | FTP | other *** search
/ vim.ftp.fu-berlin.de / 2015-02-03.vim.ftp.fu-berlin.de.tar / vim.ftp.fu-berlin.de / mac / vim55rt.sit / runtime / syntax / html.vim < prev    next >
Encoding:
Text File  |  1999-09-25  |  14.9 KB  |  276 lines  |  [TEXT/VIM!]

  1. " Vim syntax file
  2. " Language:     HTML
  3. " Maintainer:   Claudio Fleiner <claudio@fleiner.com>
  4. " URL:          http://www.fleiner.com/vim/syntax/html.vim
  5. " Last change:  1999 Jul 20
  6.  
  7. " Please check :help html.vim for some comments and a description of the options
  8.  
  9. " Remove any old syntax stuff hanging around
  10. syn clear
  11. syn case ignore
  12.  
  13. " mark illegal characters
  14. syn match htmlError "[<>&]"
  15.  
  16. if !exists("main_syntax")
  17.   let main_syntax = 'html'
  18. endif
  19.  
  20. " tags
  21. syn match   htmlSpecial  contained "\\\d\d\d\|\\."
  22. syn region  htmlString   contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=htmlSpecial,javaScriptExpression,@htmlPreproc
  23. syn region  htmlString   contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=htmlSpecial,javaScriptExpression,@htmlPreproc
  24. syn match   htmlValue    contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1   contains=javaScriptExpression,@htmlPreproc
  25. syn region  htmlEndTag             start=+</+      end=+>+ contains=htmlTagN,htmlTagError
  26. syn region  htmlTag                start=+<[^/]+   end=+>+ contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent,htmlCssDefinition,@htmlPreproc
  27. syn match   htmlTagN     contained +<\s*[-a-zA-Z0-9]\++hs=s+1 contains=htmlTagName,htmlSpecialTagName
  28. syn match   htmlTagN     contained +</\s*[-a-zA-Z0-9]\++hs=s+2 contains=htmlTagName,htmlSpecialTagName
  29. syn match   htmlTagError contained "[^>]<"ms=s+1
  30.  
  31.  
  32. " tag names
  33. syn keyword htmlTagName contained address applet area a base basefont
  34. syn keyword htmlTagName contained big blockquote br caption center
  35. syn keyword htmlTagName contained cite code dd dfn dir div dl dt font
  36. syn keyword htmlTagName contained form hr html img
  37. syn keyword htmlTagName contained input isindex kbd li link map menu
  38. syn keyword htmlTagName contained meta ol option param pre p samp span
  39. syn keyword htmlTagName contained select small strike sub sup
  40. syn keyword htmlTagName contained table td textarea th tr tt ul var xmp
  41. syn match htmlTagName contained "\<\(b\|i\|u\|h[1-6]\|em\|strong\|head\|body\|title\)\>"
  42.  
  43. " new html 4.0 tags
  44. syn keyword htmlTagName contained abbr acronym bdo button col label
  45. syn keyword htmlTagName contained colgroup del fieldset iframe ins legend
  46. syn keyword htmlTagName contained object optgroup q s tbody tfoot thead
  47.  
  48. " legal arg names
  49. syn keyword htmlArg contained action
  50. syn keyword htmlArg contained align alink alt archive background bgcolor
  51. syn keyword htmlArg contained border bordercolor cellpadding
  52. syn keyword htmlArg contained cellspacing checked class clear code codebase color
  53. syn keyword htmlArg contained cols colspan content coords enctype face
  54. syn keyword htmlArg contained gutter height hspace id
  55. syn keyword htmlArg contained link lowsrc marginheight
  56. syn keyword htmlArg contained marginwidth maxlength method name prompt
  57. syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape
  58. syn keyword htmlArg contained size src start target text type url
  59. syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
  60. syn match   htmlArg contained "\<\(http-equiv\|href\|title\)="me=e-1
  61.  
  62. " Netscape extensions
  63. syn keyword htmlTagName contained frame noframes frameset nobr blink
  64. syn keyword htmlTagName contained layer ilayer nolayer spacer
  65. syn keyword htmlArg     contained frameborder noresize pagex pagey above below
  66. syn keyword htmlArg     contained left top visibility clip id noshade
  67. syn match   htmlArg     contained "\<z-index\>"
  68.  
  69. " Microsoft extensions
  70. syn keyword htmlTagName contained marquee
  71.  
  72. " html 4.0 arg names
  73. syn match   htmlArg contained "\<\(accept-charset\|label\)\>"
  74. syn keyword htmlArg contained abbr accept accesskey axis char charoff charset
  75. syn keyword htmlArg contained cite classid codetype compact data datetime
  76. syn keyword htmlArg contained declare defer dir disabled for frame
  77. syn keyword htmlArg contained headers hreflang lang language longdesc
  78. syn keyword htmlArg contained multiple nohref nowrap object profile readonly
  79. syn keyword htmlArg contained rules scheme scope span standby style
  80. syn keyword htmlArg contained summary tabindex valuetype version
  81.  
  82. " special characters
  83. syn match htmlSpecialChar "&[^;]*;"
  84.  
  85. " Comments (the real ones or the old netscape ones)
  86. if exists("html_wrong_comments")
  87.   syn region htmlComment                start=+<!--+    end=+-->+
  88. else
  89.   syn region htmlComment                start=+<!+      end=+>+   contains=htmlCommentPart,htmlCommentError
  90.   syn match  htmlCommentError contained "[^><!]"
  91.   syn region htmlCommentPart  contained start=+--+      end=+--+  contains=@htmlPreProc
  92. endif
  93. syn region htmlComment                  start=+<!DOCTYPE+ keepend end=+>+
  94.  
  95. " server-parsed commands
  96. syn region htmlPreProc start=+<!--#+ end=+-->+ contains=htmlPreStmt,htmlPreError,htmlPreAttr
  97. syn match htmlPreStmt contained "<!--#\(config\|echo\|exec\|fsize\|flastmod\|include\|printenv\|set\|if\|elif\|else\|endif\)\>"
  98. syn match htmlPreError contained "<!--#\S*"ms=s+4
  99. syn match htmlPreAttr contained "\w\+=[^"]\S\+" contains=htmlPreProcAttrError,htmlPreProcAttrName
  100. syn region htmlPreAttr contained start=+\w\+="+ skip=+\\\\\|\\"+ end=+"+ contains=htmlPreProcAttrName,htmlPreProcAttrError keepend
  101. syn match htmlPreProcAttrError contained "\w\+="he=e-1
  102. syn match htmlPreProcAttrName contained "\(expr\|errmsg\|sizefmt\|timefmt\|var\|cgi\|cmd\|file\|virtual\|value\)="he=e-1
  103.  
  104. if !exists("html_no_rendering")
  105.   " rendering
  106.   syn cluster htmlTop contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,htmlLink,javaScript,@htmlPreproc
  107.  
  108.   syn region htmlBold start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
  109.   syn region htmlBold start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlBoldUnderline,htmlBoldItalic
  110.   syn region htmlBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
  111.   syn region htmlBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlBoldItalicUnderline
  112.   syn region htmlBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmlBoldItalicUnderline
  113.   syn region htmlBoldUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
  114.   syn region htmlBoldUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
  115.   syn region htmlBoldItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlBoldUnderlineItalic
  116.  
  117.   syn region htmlUnderline start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlUnderlineBold,htmlUnderlineItalic
  118.   syn region htmlUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlUnderlineBoldItalic
  119.   syn region htmlUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlUnderlineBoldItalic
  120.   syn region htmlUnderlineItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmUnderlineItalicBold
  121.   syn region htmlUnderlineItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop,htmUnderlineItalicBold
  122.   syn region htmlUnderlineItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
  123.   syn region htmlUnderlineItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
  124.   syn region htmlUnderlineBoldItalic contained start="<i\>" end="</i>"me=e-4 contains=@htmlTop
  125.   syn region htmlUnderlineBoldItalic contained start="<em\>" end="</em>"me=e-5 contains=@htmlTop
  126.  
  127.   syn region htmlItalic start="<i\>" end="</i>"me=e-4 contains=@htmlTop,htmlItalicBold,htmlItalicUnderline
  128.   syn region htmlItalic start="<em\>" end="</em>"me=e-5 contains=@htmlTop
  129.   syn region htmlItalicBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop,htmlItalicBoldUnderline
  130.   syn region htmlItalicBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop,htmlItalicBoldUnderline
  131.   syn region htmlItalicBoldUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop
  132.   syn region htmlItalicUnderline contained start="<u\>" end="</u>"me=e-4 contains=@htmlTop,htmlItalicUnderlineBold
  133.   syn region htmlItalicUnderlineBold contained start="<b\>" end="</b>"me=e-4 contains=@htmlTop
  134.   syn region htmlItalicUnderlineBold contained start="<strong\>" end="</strong>"me=e-9 contains=@htmlTop
  135.  
  136.   syn region htmlLink start="<a\>[^>]*href\>" end="</a>"me=e-4 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
  137.   syn region htmlH1 start="<h1\>" end="</h1>"me=e-5 contains=@htmlTop
  138.   syn region htmlH2 start="<h2\>" end="</h2>"me=e-5 contains=@htmlTop
  139.   syn region htmlH3 start="<h3\>" end="</h3>"me=e-5 contains=@htmlTop
  140.   syn region htmlH4 start="<h4\>" end="</h4>"me=e-5 contains=@htmlTop
  141.   syn region htmlH5 start="<h5\>" end="</h5>"me=e-5 contains=@htmlTop
  142.   syn region htmlH6 start="<h6\>" end="</h6>"me=e-5 contains=@htmlTop
  143.   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
  144.   syn region htmlTitle start="<title\>" end="</title>"me=e-8 contains=htmlTag,htmlEndTag,htmlSpecialChar,htmlPreProc,htmlComment,javaScript,@htmlPreproc
  145. endif
  146.  
  147. syn keyword htmlTagName         contained noscript
  148. syn keyword htmlSpecialTagName  contained script style
  149. if main_syntax != 'java' || exists("java_javascript")
  150.   " JAVA SCRIPT
  151.   syn include @htmlJavaScript <sfile>:p:h/javascript.vim
  152.   syn region  javaScript start=+<script[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlJavaScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
  153.   syn region  htmlScriptTag     contained start=+<script+ end=+>+       contains=htmlTagN,htmlString,htmlArg,htmlValue,htmlTagError,htmlEvent
  154.   hi link htmlScriptTag htmlTag
  155.  
  156.   " html events (i.e. arguments that include javascript commands)
  157.   if exists("html_extended_events")
  158.     syn region htmlEvent        contained start=+on\a\+\s*=[\t ]*'+ end=+'+ contains=htmlEventSQ
  159.     syn region htmlEvent        contained start=+on\a\+\s*=[\t ]*"+ end=+"+ contains=htmlEventDQ
  160.   else
  161.     syn region htmlEvent        contained start=+on\a\+\s*=[\t ]*'+ end=+'+ keepend contains=htmlEventSQ
  162.     syn region htmlEvent        contained start=+on\a\+\s*=[\t ]*"+ end=+"+ keepend contains=htmlEventDQ
  163.   endif
  164.   syn region htmlEventSQ        contained start=+'+ms=s+1 end=+'+me=s-1 contains=@htmlJavaScript
  165.   syn region htmlEventDQ        contained start=+"+ms=s+1 end=+"+me=s-1 contains=@htmlJavaScript
  166.   hi link htmlEventSQ htmlEvent
  167.   hi link htmlEventDQ htmlEvent
  168.  
  169.   " a javascript expression is used as an arg value
  170.   syn region  javaScriptExpression contained start=+&{+ keepend end=+};+ contains=@htmlJavaScript,@htmlPreproc
  171. endif
  172.  
  173. if main_syntax != 'java' || exists("java_vb")
  174.   " VB SCRIPT
  175.   syn include @htmlVbScript <sfile>:p:h/vb.vim
  176.   syn region  javaScript start=+<script [^>]*language *=[^>]*vbscript[^>]*>+ keepend end=+</script>+me=s-1 contains=@htmlVbScript,htmlCssStyleComment,htmlScriptTag,@htmlPreproc
  177. endif
  178.  
  179. syn cluster htmlJavaScript      add=@htmlPreproc
  180.  
  181. if main_syntax != 'java' || exists("java_css")
  182.   " embedded style sheets
  183.   syn keyword htmlArg           contained media
  184.   syn include @htmlCss <sfile>:p:h/css.vim
  185.   syn region cssStyle start=+<style+ keepend end=+</style>+ contains=@htmlCss,htmlTag,htmlEndTag,htmlCssStyleComment,@htmlPreproc
  186.   syn match htmlCssStyleComment contained "\(<!--\|-->\)"
  187.   syn region htmlCssDefinition matchgroup=htmlArg start='style="' keepend matchgroup=htmlString end='"' contains=css.*Attr,css.*Properties,cssComment,cssLength,cssColor,cssURL,cssImportant,cssError,cssString,@htmlPreproc
  188.   hi link htmlStyleArg htmlString
  189. endif
  190.  
  191. if main_syntax == "html"
  192.   " synchronizing (does not always work if a comment includes legal
  193.   " html tags, but doing it right would mean to always start
  194.   " at the first line, which is too slow)
  195.   syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
  196.   syn sync match htmlHighlight groupthere javaScript "<script"
  197.   syn sync match htmlHighlightSkip "^.*['\"].*$"
  198.   syn sync minlines=10
  199. endif
  200.  
  201. if !exists("did_html_syntax_inits")
  202.   let did_html_syntax_inits = 1
  203.   " The default methods for highlighting.  Can be overridden later
  204.   hi link htmlTag                       Function
  205.   hi link htmlEndTag                    Identifier
  206.   hi link htmlArg                       Type
  207.   hi link htmlTagName                   htmlStatement
  208.   hi link htmlSpecialTagName            Exception
  209.   hi link htmlValue                     Value
  210.   hi link htmlSpecialChar               Special
  211.  
  212.   if !exists("html_no_rendering")
  213.     hi link htmlH1                      Title
  214.     hi link htmlH2                      htmlH1
  215.     hi link htmlH3                      htmlH2
  216.     hi link htmlH4                      htmlH3
  217.     hi link htmlH5                      htmlH4
  218.     hi link htmlH6                      htmlH5
  219.     hi link htmlHead                    PreProc
  220.     hi link htmlTitle                   Title
  221.     hi link htmlBoldItalicUnderline     htmlBoldUnderlineItalic
  222.     hi link htmlUnderlineBold           htmlBoldUnderline
  223.     hi link htmlUnderlineItalicBold     htmlBoldUnderlineItalic
  224.     hi link htmlUnderlineBoldItalic     htmlBoldUnderlineItalic
  225.     hi link htmlItalicUnderline         htmlUnderlineItalic
  226.     hi link htmlItalicBold              htmlBoldItalic
  227.     hi link htmlItalicBoldUnderline     htmlBoldUnderlineItalic
  228.     hi link htmlItalicUnderlineBold     htmlBoldUnderlineItalic
  229.     if !exists("html_my_rendering")
  230.       if &background == "dark"
  231.         hi htmlLink              term=underline cterm=underline ctermfg=cyan gui=underline guifg=#80a0ff
  232.       else
  233.         hi htmlLink              term=underline cterm=underline ctermfg=DarkBlue gui=underline guifg=Blue
  234.       endif
  235.       hi htmlBold                term=bold cterm=bold gui=bold
  236.       hi htmlBoldUnderline       term=bold,underline cterm=bold,underline gui=bold,underline
  237.       hi htmlBoldItalic          term=bold,italic cterm=bold,italic gui=bold,italic
  238.       hi htmlBoldUnderlineItalic term=bold,italic,underline cterm=bold,italic,underline gui=bold,italic,underline
  239.       hi htmlUnderline           term=underline cterm=underline gui=underline
  240.       hi htmlUnderlineItalic     term=italic,underline cterm=italic,underline gui=italic,underline
  241.       hi htmlItalic              term=italic cterm=italic gui=italic
  242.     endif
  243.   endif
  244.  
  245.   hi link htmlPreStmt            PreProc
  246.   hi link htmlPreError           Error
  247.   hi link htmlPreProc            PreProc
  248.   hi link htmlPreAttr            String
  249.   hi link htmlPreProcAttrName    PreProc
  250.   hi link htmlPreProcAttrError   Error
  251.   hi link htmlSpecial            Special
  252.   hi link htmlSpecialChar        Special
  253.   hi link htmlString             String
  254.   hi link htmlStatement          Statement
  255.   hi link htmlComment            Comment
  256.   hi link htmlCommentPart        Comment
  257.   hi link htmlValue              String
  258.   hi link htmlCommentError       htmlError
  259.   hi link htmlTagError           htmlError
  260.   hi link htmlEvent              javaScript
  261.   hi link htmlError              Error
  262.  
  263.   hi link javaScript             Special
  264.   hi link javaScriptExpression   javaScript
  265.   hi link htmlCssStyleComment    Comment
  266.   hi link htmlCssDefinition      Special
  267. endif
  268.  
  269. let b:current_syntax = "html"
  270.  
  271. if main_syntax == 'html'
  272.   unlet main_syntax
  273. endif
  274.  
  275. " vim: ts=8
  276.