1" Vim syntax file 2" Language: less 3" Maintainer: Alessandro Vioni <[email protected]> 4" URL: https://github.com/genoma/vim-less 5" Last Change: 2014 November 24 6 7if exists("b:current_syntax") 8 finish 9endif 10 11runtime! syntax/css.vim 12runtime! after/syntax/css.vim 13 14syn case ignore 15 16syn cluster lessCssProperties contains=cssFontProp,cssFontDescriptorProp,cssColorProp,cssTextProp,cssBoxProp,cssGeneratedContentProp,cssPagingProp,cssUIProp,cssRenderProp,cssAuralProp,cssTableProp 17syn cluster lessCssAttributes contains=css.*Attr,lessEndOfLineComment,lessComment,cssValue.*,cssColor,cssURL,lessDefault,cssImportant,cssError,cssStringQ,cssStringQQ,cssFunction,cssUnicodeEscape,cssRenderProp 18 19syn region lessDefinition matchgroup=cssBraces start="{" end="}" contains=TOP 20 21syn match lessProperty "\%([{};]\s*\|^\)\@<=\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:" contains=css.*Prop skipwhite nextgroup=lessCssAttribute contained containedin=lessDefinition 22syn match lessProperty "^\s*\zs\s\%(\%([[:alnum:]-]\|#{[^{}]*}\)\+\s*:\|:[[:alnum:]-]\+\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=lessCssAttribute 23syn match lessProperty "^\s*\zs\s\%(:\=[[:alnum:]-]\+\s*=\)"hs=s+1 contains=css.*Prop skipwhite nextgroup=lessCssAttribute 24syn match lessCssAttribute +\%("\%([^"]\|\\"\)*"\|'\%([^']\|\\'\)*'\|#{[^{}]*}\|[^{};]\)*+ contained contains=@lessCssAttributes,lessVariable,lessFunction,lessInterpolation 25syn match lessDefault "!default\>" contained 26 27" less variables and media queries 28syn match lessVariable "@[[:alnum:]_-]\+" nextgroup=lessCssAttribute skipwhite 29syn match lessMedia "@media" nextgroup=lessCssAttribute skipwhite 30 31" Less functions 32syn match lessFunction "\<\%(escape\|e\|unit\)\>(\@=" contained 33syn match lessFunction "\<\%(ceil\|floor\|percentage\|round\|sqrt\|abs\|sin\|asin\|cos\|acos\|tan\|atan\|pi\|pow\|min\|max\)\>(\@=" contained 34syn match lessFunction "\<\%(rgb\|rgba\|argb\|argb\|hsl\|hsla\|hsv\|hsva\)\>(\@=" contained 35syn match lessFunction "\<\%(hue\|saturation\|lightness\|red\|green\|blue\|alpha\|luma\)\>(\@=" contained 36syn match lessFunction "\<\%(saturate\|desaturate\|lighten\|darken\|fadein\|fadeout\|fade\|spin\|mix\|greyscale\|contrast\)\>(\@=" contained 37syn match lessFunction "\<\%(multiply\|screen\|overlay\|softlight\|hardlight\|difference\|exclusion\|average\|negation\)\>(\@=" contained 38 39" Less id class visualization 40syn match lessIdChar "#[[:alnum:]_-]\@=" nextgroup=lessId,lessClassIdCall 41syn match lessId "[[:alnum:]_-]\+" contained 42syn match lessClassIdCall "[[:alnum:]_-]\+()" contained 43 44syn match lessClassChar "\.[[:alnum:]_-]\@=" nextgroup=lessClass,lessClassCall 45syn match lessClass "[[:alnum:]_-]\+" contained 46syn match lessClassCall "[[:alnum:]_-]\+()" contained 47 48syn match lessAmpersand "&" contains=lessIdChar,lessClassChar 49 50syn region lessInclude start="@import" end=";\|$" contains=lessComment,cssURL,cssUnicodeEscape,cssMediaType,cssStringQ,cssStringQQ 51 52syn keyword lessTodo FIXME NOTE TODO OPTIMIZE XXX contained 53syn region lessComment start="^\z(\s*\)//" end="^\%(\z1 \)\@!" contains=lessTodo,@Spell 54syn region lessCssComment start="^\z(\s*\)/\*" end="^\%(\z1 \)\@!" contains=lessTodo,@Spell 55syn match lessEndOfLineComment "//.*" contains=lessComment,lessTodo,@Spell 56 57hi def link lessEndOfLineComment lessComment 58hi def link lessCssComment lessComment 59hi def link lessComment Comment 60hi def link lessDefault cssImportant 61hi def link lessVariable Identifier 62hi def link lessFunction PreProc 63hi def link lessTodo Todo 64hi def link lessInclude Include 65hi def link lessIdChar Special 66hi def link lessClassChar Special 67hi def link lessAmpersand Character 68hi def link lessId Identifier 69hi def link lessClass Type 70hi def link lessCssAttribute PreProc 71hi def link lessClassCall Type 72hi def link lessClassIdCall Type 73hi def link lessTagName cssTagName 74hi def link lessDeprecated cssDeprecated 75hi def link lessMedia cssMedia 76 77let b:current_syntax = "less" 78 79" vim:set sw=2: 80