Install vim73
[git/jnareb-git.git] / share / vim / vim73 / syntax / haml.vim
blobbf7a07363305a56177137f4b88469fedea7637e3
1 " Vim syntax file
2 " Language:     Haml
3 " Maintainer:   Tim Pope <vimNOSPAM@tpope.org>
4 " Filenames:    *.haml
5 " Last Change:  2010 Aug 09
7 if exists("b:current_syntax")
8   finish
9 endif
11 if !exists("main_syntax")
12   let main_syntax = 'haml'
13 endif
14 let b:ruby_no_expensive = 1
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
22 syn case match
24 syn region  rubyCurlyBlock   start="{" end="}" contains=@hamlRubyTop contained
25 syn cluster hamlRubyTop add=rubyCurlyBlock
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
31 syn match   hamlBegin "^\s*\%([<>]\|&[^=~ ]\)\@!" nextgroup=hamlTag,hamlClassChar,hamlIdChar,hamlRuby,hamlPlainChar,hamlInterpolatable
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="$"
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
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
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
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
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
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
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
103 let b:current_syntax = "haml"
105 if main_syntax == "haml"
106   unlet main_syntax
107 endif
109 " vim:set sw=2: