Mercurial > ec-dotfiles
comparison rc/vim-syntax-scss @ 393:0aabb2b34ef6
Added scss vim syntax support.
| author | Edho Arief <edho@myconan.net> |
|---|---|
| date | Wed, 01 Aug 2012 15:17:56 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 392:e385db8cd360 | 393:0aabb2b34ef6 |
|---|---|
| 1 " Vim syntax file | |
| 2 " Language: SCSS (Sassy CSS) | |
| 3 " Author: Daniel Hofstetter (daniel.hofstetter@42dh.com) | |
| 4 " Inspired by the syntax files for sass and css. Thanks to the authors of | |
| 5 " those files! | |
| 6 | |
| 7 if exists("b:current_syntax") | |
| 8 finish | |
| 9 endif | |
| 10 | |
| 11 runtime! syntax/css.vim | |
| 12 | |
| 13 syn case ignore | |
| 14 | |
| 15 syn region scssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssUrl,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,scssDefinition,scssComment,scssIdChar,scssClassChar,scssAmpersand,scssVariable,scssInclude,scssExtend,scssDebug,scssWarn,@scssControl,scssInterpolation,scssNestedSelector,scssReturn | |
| 16 | |
| 17 syn region scssInterpolation start="#{" end="}" contains=scssVariable | |
| 18 | |
| 19 syn match scssVariable "$[[:alnum:]_-]\+" nextgroup=scssVariableAssignment | |
| 20 syn match scssVariableAssignment ":" contained nextgroup=scssVariableValue | |
| 21 syn match scssVariableValue ".*;"me=e-1 contained contains=scssVariable,scssOperator,scssDefault "me=e-1 means that the last char of the pattern is not highlighted | |
| 22 syn match scssMixin "^@mixin" nextgroup=scssMixinName | |
| 23 syn match scssMixinName " [[:alnum:]_-]\+" contained nextgroup=scssDefinition | |
| 24 syn match scssFunction "^@function" nextgroup=scssFunctionName | |
| 25 syn match scssFunctionName " [[:alnum:]_-]\+" contained nextgroup=scssDefinition | |
| 26 syn match scssReturn "@return" contained | |
| 27 syn match scssInclude "@include" nextgroup=scssMixinName | |
| 28 syn match scssExtend "@extend .*[;}]"me=e-1 contains=cssTagName,scssIdChar,scssClassChar | |
| 29 | |
| 30 syn match scssColor "#[0-9A-Fa-f]\{3\}\>" contained | |
| 31 syn match scssColor "#[0-9A-Fa-f]\{6\}\>" contained | |
| 32 | |
| 33 syn match scssIdChar "#[[:alnum:]_-]\@=" nextgroup=scssId contains=scssColor | |
| 34 syn match scssId "[[:alnum:]_-]\+" contained | |
| 35 syn match scssClassChar "\.[[:alnum:]_-]\@=" nextgroup=scssClass | |
| 36 syn match scssClass "[[:alnum:]_-]\+" contained | |
| 37 syn match scssAmpersand "&" nextgroup=cssPseudoClass | |
| 38 | |
| 39 syn match scssOperator "+" contained | |
| 40 syn match scssOperator "-" contained | |
| 41 syn match scssOperator "/" contained | |
| 42 syn match scssOperator "*" contained | |
| 43 | |
| 44 syn match scssNestedSelector "[^/]* {"me=e-1 contained contains=cssTagName,cssAttributeSelector,scssIdChar,scssClassChar,scssAmpersand,scssVariable,scssMixin,scssFunction,@scssControl,scssInterpolation,scssNestedProperty | |
| 45 syn match scssNestedProperty "[[:alnum:]]\+:"me=e-1 contained | |
| 46 | |
| 47 syn match scssDebug "@debug" | |
| 48 syn match scssWarn "@warn" | |
| 49 syn match scssDefault "!default" contained | |
| 50 | |
| 51 syn match scssIf "@if" | |
| 52 syn match scssElse "@else" | |
| 53 syn match scssElseIf "@else if" | |
| 54 syn match scssWhile "@while" | |
| 55 syn match scssFor "@for" nextgroup=scssVariable | |
| 56 syn match scssFrom " from " | |
| 57 syn match scssTo " to " | |
| 58 syn match scssThrough " through " | |
| 59 syn match scssEach "@each" nextgroup=scssVariable | |
| 60 syn match scssIn " in " | |
| 61 syn cluster scssControl contains=scssIf,scssElse,scssElseIf,scssWhile,scssFor,scssFrom,scssTo,scssThrough,scssEach,scssIn | |
| 62 | |
| 63 syn match scssComment "//.*$" contains=@Spell | |
| 64 syn region scssImportStr start="\"" end="\"" | |
| 65 syn region scssImport start="@import" end=";" contains=scssImportStr,scssComment,cssComment,cssUnicodeEscape,cssMediaType | |
| 66 | |
| 67 hi def link scssVariable Identifier | |
| 68 hi def link scssVariableValue Constant | |
| 69 hi def link scssMixin PreProc | |
| 70 hi def link scssMixinName Function | |
| 71 hi def link scssFunction PreProc | |
| 72 hi def link scssFunctionName Function | |
| 73 hi def link scssReturn Statement | |
| 74 hi def link scssInclude PreProc | |
| 75 hi def link scssExtend PreProc | |
| 76 hi def link scssComment Comment | |
| 77 hi def link scssColor Constant | |
| 78 hi def link scssIdChar Special | |
| 79 hi def link scssClassChar Special | |
| 80 hi def link scssId Identifier | |
| 81 hi def link scssClass Identifier | |
| 82 hi def link scssAmpersand Character | |
| 83 hi def link scssNestedProperty Type | |
| 84 hi def link scssDebug Debug | |
| 85 hi def link scssWarn Debug | |
| 86 hi def link scssDefault Special | |
| 87 hi def link scssIf Conditional | |
| 88 hi def link scssElse Conditional | |
| 89 hi def link scssElseIf Conditional | |
| 90 hi def link scssWhile Repeat | |
| 91 hi def link scssFor Repeat | |
| 92 hi def link scssFrom Repeat | |
| 93 hi def link scssTo Repeat | |
| 94 hi def link scssThrough Repeat | |
| 95 hi def link scssEach Repeat | |
| 96 hi def link scssIn Repeat | |
| 97 hi def link scssInterpolation Delimiter | |
| 98 hi def link scssImport Include | |
| 99 hi def link scssImportStr Include | |
| 100 | |
| 101 let b:current_syntax = "scss" |
