xref: /vim-8.2.3635/runtime/syntax/sass.vim (revision 00a927d6)
1" Vim syntax file
2" Language:     Sass
3" Maintainer:   Tim Pope <[email protected]>
4" Filenames:    *.sass
5
6if exists("b:current_syntax")
7  finish
8endif
9
10runtime! syntax/css.vim
11
12syn case ignore
13
14syn cluster sassCssProperties contains=cssFontProp,cssFontDescriptorProp,cssColorProp,cssTextProp,cssBoxProp,cssGeneratedContentProp,cssPagingProp,cssUIProp,cssRenderProp,cssAuralProp,cssTableProp
15syn cluster sassCssAttributes contains=css.*Attr,cssComment,cssValue.*,cssColor,cssURL,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssRenderProp
16
17syn match sassProperty "^\s*\zs\s\%([[:alnum:]-]\+:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=sassCssAttribute
18syn match sassCssAttribute ".*$" contained contains=@sassCssAttributes,sassConstant
19syn match sassConstant "![[:alnum:]_-]\+"
20syn match sassConstantAssignment "\%(![[:alnum:]_]\+\s*\)\@<==" nextgroup=sassCssAttribute skipwhite
21syn match sassMixin  "^=.*"
22syn match sassMixing "^\s\+\zs+.*"
23
24syn match sassEscape     "^\s*\zs\\"
25syn match sassIdChar     "#[[:alnum:]_-]\@=" nextgroup=sassId
26syn match sassId         "[[:alnum:]_-]\+" contained
27syn match sassClassChar  "\.[[:alnum:]_-]\@=" nextgroup=sassClass
28syn match sassClass      "[[:alnum:]_-]\+" contained
29syn match sassAmpersand  "&"
30
31" TODO: Attribute namespaces
32" TODO: Arithmetic (including strings and concatenation)
33
34syn region sassInclude start="@import" end=";\|$" contains=cssComment,cssURL,cssUnicodeEscape,cssMediaType
35
36syn keyword sassTodo        FIXME NOTE TODO OPTIMIZE XXX contained
37syn region  sassComment     start="^\z(\s*\)//"  end="^\%(\z1 \)\@!" contains=sassTodo
38syn region  sassCssComment  start="^\z(\s*\)/\*" end="^\%(\z1 \)\@!" contains=sassTodo
39
40hi def link sassCssComment              sassComment
41hi def link sassComment                 Comment
42hi def link sassConstant                Identifier
43hi def link sassMixing                  PreProc
44hi def link sassMixin                   PreProc
45hi def link sassTodo                    Todo
46hi def link sassInclude                 Include
47hi def link sassEscape                  Special
48hi def link sassIdChar                  Special
49hi def link sassClassChar               Special
50hi def link sassAmpersand               Character
51hi def link sassId                      Identifier
52hi def link sassClass                   Type
53
54let b:current_syntax = "sass"
55
56" vim:set sw=2:
57