xref: /vim-8.2.3635/runtime/syntax/less.vim (revision 36e294c0)
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