diff rc/vim-syntax-scss @ 400:657f787fbae8

Merge remote-tracking branch 'origin/master'
author Edho Arief <edho@myconan.net>
date Tue, 04 Sep 2012 10:23:37 +0700
parents 0aabb2b34ef6
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rc/vim-syntax-scss	Tue Sep 04 10:23:37 2012 +0700
@@ -0,0 +1,101 @@
+" Vim syntax file
+" Language: SCSS (Sassy CSS)
+" Author: Daniel Hofstetter (daniel.hofstetter@42dh.com)
+" Inspired by the syntax files for sass and css. Thanks to the authors of
+" those files!
+
+if exists("b:current_syntax")
+  finish
+endif
+
+runtime! syntax/css.vim
+
+syn case ignore
+
+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
+
+syn region scssInterpolation start="#{" end="}" contains=scssVariable
+
+syn match scssVariable "$[[:alnum:]_-]\+" nextgroup=scssVariableAssignment
+syn match scssVariableAssignment ":" contained nextgroup=scssVariableValue
+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
+syn match scssMixin "^@mixin" nextgroup=scssMixinName
+syn match scssMixinName " [[:alnum:]_-]\+" contained nextgroup=scssDefinition
+syn match scssFunction "^@function" nextgroup=scssFunctionName
+syn match scssFunctionName " [[:alnum:]_-]\+" contained nextgroup=scssDefinition
+syn match scssReturn "@return" contained
+syn match scssInclude "@include" nextgroup=scssMixinName
+syn match scssExtend "@extend .*[;}]"me=e-1 contains=cssTagName,scssIdChar,scssClassChar
+
+syn match scssColor "#[0-9A-Fa-f]\{3\}\>" contained
+syn match scssColor "#[0-9A-Fa-f]\{6\}\>" contained
+
+syn match scssIdChar "#[[:alnum:]_-]\@=" nextgroup=scssId contains=scssColor
+syn match scssId "[[:alnum:]_-]\+" contained
+syn match scssClassChar "\.[[:alnum:]_-]\@=" nextgroup=scssClass
+syn match scssClass "[[:alnum:]_-]\+" contained
+syn match scssAmpersand "&" nextgroup=cssPseudoClass
+
+syn match scssOperator "+" contained
+syn match scssOperator "-" contained
+syn match scssOperator "/" contained
+syn match scssOperator "*" contained
+
+syn match scssNestedSelector "[^/]* {"me=e-1 contained contains=cssTagName,cssAttributeSelector,scssIdChar,scssClassChar,scssAmpersand,scssVariable,scssMixin,scssFunction,@scssControl,scssInterpolation,scssNestedProperty
+syn match scssNestedProperty "[[:alnum:]]\+:"me=e-1 contained
+
+syn match scssDebug "@debug"
+syn match scssWarn "@warn"
+syn match scssDefault "!default" contained
+
+syn match scssIf "@if"
+syn match scssElse "@else"
+syn match scssElseIf "@else if"
+syn match scssWhile "@while"
+syn match scssFor "@for" nextgroup=scssVariable
+syn match scssFrom " from "
+syn match scssTo " to "
+syn match scssThrough " through "
+syn match scssEach "@each" nextgroup=scssVariable
+syn match scssIn " in "
+syn cluster scssControl contains=scssIf,scssElse,scssElseIf,scssWhile,scssFor,scssFrom,scssTo,scssThrough,scssEach,scssIn
+
+syn match scssComment "//.*$" contains=@Spell
+syn region scssImportStr start="\"" end="\""
+syn region scssImport start="@import" end=";" contains=scssImportStr,scssComment,cssComment,cssUnicodeEscape,cssMediaType
+
+hi def link scssVariable  Identifier
+hi def link scssVariableValue Constant
+hi def link scssMixin     PreProc
+hi def link scssMixinName Function
+hi def link scssFunction  PreProc
+hi def link scssFunctionName Function
+hi def link scssReturn    Statement
+hi def link scssInclude   PreProc
+hi def link scssExtend    PreProc
+hi def link scssComment   Comment
+hi def link scssColor     Constant
+hi def link scssIdChar    Special
+hi def link scssClassChar Special
+hi def link scssId        Identifier
+hi def link scssClass     Identifier
+hi def link scssAmpersand Character
+hi def link scssNestedProperty Type
+hi def link scssDebug     Debug
+hi def link scssWarn      Debug
+hi def link scssDefault   Special
+hi def link scssIf        Conditional
+hi def link scssElse      Conditional
+hi def link scssElseIf    Conditional
+hi def link scssWhile     Repeat
+hi def link scssFor       Repeat
+hi def link scssFrom      Repeat
+hi def link scssTo        Repeat
+hi def link scssThrough   Repeat
+hi def link scssEach      Repeat
+hi def link scssIn        Repeat
+hi def link scssInterpolation Delimiter
+hi def link scssImport    Include
+hi def link scssImportStr Include
+
+let b:current_syntax = "scss"