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