" Vim syntax file " Language: hss (Haxe css) " Author: Justin Donaldson (jdonaldson@gmail.com) " Based heavily on work by Daniel Hofstetter (daniel.hofstetter@42dh.com) if !exists("main_syntax") if version < 600 syntax clear elseif exists("b:current_syntax") finish endif let main_syntax = 'hss' endif runtime! syntax/css.vim runtime! syntax/css/*.vim syn case ignore syn region hssDefinition transparent matchgroup=cssBraces start='{' end='}' contains=css.*Attr,css.*Prop,cssComment,cssValue.*,cssColor,cssUrl,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,hssDefinition,hssComment,hssIdChar,hssClassChar,hssAmpersand,hssVariable,hssInclude,hssExtend,hssDebug,hssWarn,@hssControl,hssInterpolation,hssNestedSelector,hssReturn syn region hssInterpolation start="#{" end="}" contains=hssVariable syn match hssVariable "$[[:alnum:]_-]\+" nextgroup=hssVariableAssignment syn match hssVariableAssignment ":" contained nextgroup=hssVariableValue syn match hssVariableValue ".*;"me=e-1 contained contains=hssVariable,hssOperator,hssDefault "me=e-1 means that the last char of the pattern is not highlighted " syn match hssMixin "^@mixin" nextgroup=hssMixinName syn match hssMixinName " [[:alnum:]_-]\+" contained nextgroup=hssDefinition syn match hssFunction "^@function" nextgroup=hssFunctionName syn match hssFunctionName " [[:alnum:]_-]\+" contained nextgroup=hssDefinition " syn match hssReturn "@return" contained " syn match hssInclude "@include" nextgroup=hssMixinName " syn match hssExtend "@extend .*[;}]"me=e-1 contains=cssTagName,hssIdChar,hssClassChar syn keyword hssTodo TODO FIXME NOTE OPTIMIZE XXX contained containedIn=hssComment,cssComment syn match hssColor "#[0-9A-Fa-f]\{3\}\>" contained syn match hssColor "#[0-9A-Fa-f]\{6\}\>" contained syn match hssIdChar "#[[:alnum:]_-]\@=" nextgroup=hssId contains=hssColor syn match hssId "[[:alnum:]_-]\+" contained syn match hssClassChar "\.[[:alnum:]_-]\@=" nextgroup=hssClass syn match hssClass "[[:alnum:]_-]\+" contained syn match hssAmpersand "&" nextgroup=cssPseudoClass syn match hssOperator "+" contained syn match hssOperator "-" contained syn match hssOperator "/" contained syn match hssOperator "*" contained syn match hssNestedSelector "[^/]* {"me=e-1 contained contains=cssTagName,cssAttributeSelector,hssIdChar,hssClassChar,hssAmpersand,hssVariable,hssMixin,hssFunction,@hssControl,hssInterpolation,hssNestedProperty syn match hssNestedProperty "[[:alnum:]]\+:"me=e-1 contained " syn match hssDebug "@debug" " syn match hssWarn "@warn" syn match hssDefault "!default" contained " syn match hssIf "@if" " syn match hssElse "@else" " syn match hssElseIf "@else if" " syn match hssWhile "@while" " syn match hssFor "@for" nextgroup=hssVariable " syn match hssFrom " from " " syn match hssTo " to " " syn match hssThrough " through " " syn match hssEach "@each" nextgroup=hssVariable " syn match hssIn " in " " syn cluster hssControl contains=hssIf,hssElse,hssElseIf,hssWhile,hssFor,hssFrom,hssTo,hssThrough,hssEach,hssIn syn match hssComment "//.*$" contains=@Spell syn region hssImportStr start="\"" end="\"" syn region hssImport start="@import" end=";" contains=hssImportStr,hssComment,cssComment,cssUnicodeEscape,cssMediaType hi def link hssVariable Identifier hi def link hssVariableValue Constant hi def link hssMixin PreProc hi def link hssMixinName Function hi def link hssFunction PreProc hi def link hssFunctionName Function hi def link hssReturn Statement hi def link hssInclude PreProc hi def link hssExtend PreProc hi def link hssComment Comment hi def link hssColor Constant hi def link hssIdChar Special hi def link hssClassChar Special hi def link hssId Identifier hi def link hssClass Identifier hi def link hssAmpersand Character hi def link hssNestedProperty Type hi def link hssDebug Debug hi def link hssWarn Debug hi def link hssDefault Special hi def link hssIf Conditional hi def link hssElse Conditional hi def link hssElseIf Conditional hi def link hssWhile Repeat hi def link hssFor Repeat hi def link hssFrom Repeat hi def link hssTo Repeat hi def link hssThrough Repeat hi def link hssEach Repeat hi def link hssIn Repeat hi def link hssInterpolation Delimiter hi def link hssImport Include hi def link hssImportStr Include hi def link hssTodo Todo let b:current_syntax = "hss" if main_syntax == 'hss' unlet main_syntax endif