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 / runtime / dos / syntax / haml.vim < prev    next >
Encoding:
Text File  |  2010-08-14  |  7.0 KB  |  110 lines

  1. " Vim syntax file
  2. " Language:    Haml
  3. " Maintainer:    Tim Pope <vimNOSPAM@tpope.org>
  4. " Filenames:    *.haml
  5. " Last Change:    2010 Aug 09
  6.  
  7. if exists("b:current_syntax")
  8.   finish
  9. endif
  10.  
  11. if !exists("main_syntax")
  12.   let main_syntax = 'haml'
  13. endif
  14. let b:ruby_no_expensive = 1
  15.  
  16. runtime! syntax/html.vim
  17. unlet! b:current_syntax
  18. silent! syn include @hamlSassTop syntax/sass.vim
  19. unlet! b:current_syntax
  20. syn include @hamlRubyTop syntax/ruby.vim
  21.  
  22. syn case match
  23.  
  24. syn region  rubyCurlyBlock   start="{" end="}" contains=@hamlRubyTop contained
  25. syn cluster hamlRubyTop add=rubyCurlyBlock
  26.  
  27. syn cluster hamlComponent    contains=hamlAttributes,hamlAttributesHash,hamlClassChar,hamlIdChar,hamlObject,hamlDespacer,hamlSelfCloser,hamlRuby,hamlPlainChar,hamlInterpolatable
  28. syn cluster hamlEmbeddedRuby contains=hamlAttributesHash,hamlObject,hamlRuby,hamlRubyFilter
  29. syn cluster hamlTop          contains=hamlBegin,hamlPlainFilter,hamlRubyFilter,hamlSassFilter,hamlComment,hamlHtmlComment
  30.  
  31. syn match   hamlBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=hamlTag,hamlClassChar,hamlIdChar,hamlRuby,hamlPlainChar,hamlInterpolatable
  32.  
  33. syn match   hamlTag        "%\w\+\%(:\w\+\)\=" contained contains=htmlTagName,htmlSpecialTagName nextgroup=@hamlComponent
  34. syn region  hamlAttributes     matchgroup=hamlAttributesDelimiter start="(" end=")" contained contains=htmlArg,hamlAttributeString,hamlAttributeVariable,htmlEvent,htmlCssDefinition nextgroup=@hamlComponent
  35. syn region  hamlAttributesHash matchgroup=hamlAttributesDelimiter start="{" end="}" contained contains=@hamlRubyTop nextgroup=@hamlComponent
  36. syn region  hamlObject         matchgroup=hamlObjectDelimiter     start="\[" end="\]" contained contains=@hamlRubyTop nextgroup=@hamlComponent
  37. syn match   hamlDespacer "[<>]" contained nextgroup=hamlDespacer,hamlSelfCloser,hamlRuby,hamlPlainChar,hamlInterpolatable
  38. syn match   hamlSelfCloser "/" contained
  39. syn match   hamlClassChar "\." contained nextgroup=hamlClass
  40. syn match   hamlIdChar "#{\@!" contained nextgroup=hamlId
  41. syn match   hamlClass "\%(\w\|-\)\+" contained nextgroup=@hamlComponent
  42. syn match   hamlId    "\%(\w\|-\)\+" contained nextgroup=@hamlComponent
  43. syn region  hamlDocType start="^\s*!!!" end="$"
  44.  
  45. syn region  hamlRuby   matchgroup=hamlRubyOutputChar start="[!&]\==\|\~" skip=",\s*$" end="$" contained contains=@hamlRubyTop keepend
  46. syn region  hamlRuby   matchgroup=hamlRubyChar       start="-"           skip=",\s*$" end="$" contained contains=@hamlRubyTop keepend
  47. syn match   hamlPlainChar "\\" contained
  48. syn region hamlInterpolatable matchgroup=hamlInterpolatableChar start="!\===\|!=\@!" end="$" keepend contained contains=hamlInterpolation,hamlInterpolationEscape,@hamlHtmlTop
  49. syn region hamlInterpolatable matchgroup=hamlInterpolatableChar start="&==\|&=\@!"   end="$" keepend contained contains=hamlInterpolation,hamlInterpolationEscape
  50. syn region hamlInterpolation matchgroup=hamlInterpolationDelimiter start="#{" end="}" contains=@hamlRubyTop containedin=javascriptStringS,javascriptStringD
  51. syn match  hamlInterpolationEscape "\\\@<!\%(\\\\\)*\\\%(\\\ze#{\|#\ze{\)"
  52. syn region hamlErbInterpolation matchgroup=hamlInterpolationDelimiter start="<%[=-]\=" end="-\=%>" contained contains=@hamlRubyTop
  53.  
  54. syn region  hamlAttributeString start=+\%(=\s*\)\@<='+ skip=+\%(\\\\\)*\\'+ end=+'+ contains=hamlInterpolation,hamlInterpolationEscape
  55. syn region  hamlAttributeString start=+\%(=\s*\)\@<="+ skip=+\%(\\\\\)*\\"+ end=+"+ contains=hamlInterpolation,hamlInterpolationEscape
  56. syn match   hamlAttributeVariable "\%(=\s*\)\@<=\%(@@\=\|\$\)\=\w\+" contained
  57.  
  58. syn match   hamlHelper  "\<action_view?\|\<block_is_haml?\|\<is_haml?\|\.\@<!\<flatten" contained containedin=@hamlEmbeddedRuby,@hamlRubyTop
  59. syn keyword hamlHelper   capture_haml escape_once find_and_preserve haml_concat haml_indent haml_tag html_attrs html_esape init_haml_helpers list_of non_haml precede preserve succeed surround tab_down tab_up page_class contained containedin=@hamlEmbeddedRuby,@hamlRubyTop
  60.  
  61. syn cluster hamlHtmlTop contains=@htmlTop,htmlBold,htmlItalic,htmlUnderline
  62. syn region  hamlPlainFilter      matchgroup=hamlFilter start="^\z(\s*\):\%(plain\|preserve\|redcloth\|textile\|markdown\|maruku\)\s*$" end="^\%(\z1 \| *$\)\@!" contains=@hamlHtmlTop,hamlInterpolation
  63. syn region  hamlEscapedFilter    matchgroup=hamlFilter start="^\z(\s*\):\%(escaped\|cdata\)\s*$"    end="^\%(\z1 \| *$\)\@!" contains=hamlInterpolation
  64. syn region  hamlErbFilter        matchgroup=hamlFilter start="^\z(\s*\):erb\s*$"        end="^\%(\z1 \| *$\)\@!" contains=@hamlHtmlTop,hamlErbInterpolation
  65. syn region  hamlRubyFilter       matchgroup=hamlFilter start="^\z(\s*\):ruby\s*$"       end="^\%(\z1 \| *$\)\@!" contains=@hamlRubyTop
  66. syn region  hamlJavascriptFilter matchgroup=hamlFilter start="^\z(\s*\):javascript\s*$" end="^\%(\z1 \| *$\)\@!" contains=@htmlJavaScript,hamlInterpolation keepend
  67. syn region  hamlCSSFilter        matchgroup=hamlFilter start="^\z(\s*\):css\s*$"        end="^\%(\z1 \| *$\)\@!" contains=@htmlCss,hamlInterpolation keepend
  68. syn region  hamlSassFilter       matchgroup=hamlFilter start="^\z(\s*\):sass\s*$"       end="^\%(\z1 \| *$\)\@!" contains=@hamlSassTop
  69.  
  70. syn region  hamlJavascriptBlock start="^\z(\s*\)%script" nextgroup=@hamlComponent,hamlError end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlJavaScript keepend
  71. syn region  hamlCssBlock        start="^\z(\s*\)%style" nextgroup=@hamlComponent,hamlError  end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,@htmlCss keepend
  72. syn match   hamlError "\$" contained
  73.  
  74. syn region  hamlComment     start="^\z(\s*\)-#" end="^\%(\z1 \| *$\)\@!" contains=rubyTodo
  75. syn region  hamlHtmlComment start="^\z(\s*\)/"  end="^\%(\z1 \| *$\)\@!" contains=@hamlTop,rubyTodo
  76. syn match   hamlIEConditional "\%(^\s*/\)\@<=\[if\>[^]]*]" contained containedin=hamlHtmlComment
  77.  
  78. hi def link hamlSelfCloser             Special
  79. hi def link hamlDespacer               Special
  80. hi def link hamlClassChar              Special
  81. hi def link hamlIdChar                 Special
  82. hi def link hamlTag                    Special
  83. hi def link hamlClass                  Type
  84. hi def link hamlId                     Identifier
  85. hi def link hamlPlainChar              Special
  86. hi def link hamlInterpolatableChar     hamlRubyChar
  87. hi def link hamlRubyOutputChar         hamlRubyChar
  88. hi def link hamlRubyChar               Special
  89. hi def link hamlInterpolationDelimiter Delimiter
  90. hi def link hamlInterpolationEscape    Special
  91. hi def link hamlAttributeString        String
  92. hi def link hamlAttributeVariable      Identifier
  93. hi def link hamlDocType                PreProc
  94. hi def link hamlFilter                 PreProc
  95. hi def link hamlAttributesDelimiter    Delimiter
  96. hi def link hamlObjectDelimiter        Delimiter
  97. hi def link hamlHelper                 Function
  98. hi def link hamlHtmlComment            hamlComment
  99. hi def link hamlComment                Comment
  100. hi def link hamlIEConditional          SpecialComment
  101. hi def link hamlError                  Error
  102.  
  103. let b:current_syntax = "haml"
  104.  
  105. if main_syntax == "haml"
  106.   unlet main_syntax
  107. endif
  108.  
  109. " vim:set sw=2:
  110.