less.vim 4.1 KB

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