clevercss.vim 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. " Vim syntax file
  2. " Language: CleverCSS
  3. " Maintainer: Zak Johnson <zakj@nox.cx>
  4. " Last Change: 2013-01-15
  5. if version < 600
  6. syntax clear
  7. elseif exists("b:current_syntax")
  8. finish
  9. endif
  10. setlocal iskeyword+=45 " -
  11. " http://simon.html5.org/html5-elements
  12. syn keyword ccssElement contained
  13. \ a address area article aside abbr audio b base bdo blockquote body br button
  14. \ canvas caption cite code col colgroup command datalist dd del details dfn div
  15. \ dl dt em embed fieldset figure footer form h1 h2 h3 h4 h5 h6 head header
  16. \ hgroup hr html i iframe img input ins kbd keygen label legend li link map
  17. \ mark menu meta meter nav noscript object ol optgroup option output p param
  18. \ pre progress q rp rt ruby samp script section select small source span strong
  19. \ style sub sup table tbody td textarea tfoot th thead time title tr ul var
  20. \ video
  21. " http://www.cssportal.com/css-properties/
  22. syn keyword ccssProperty contained
  23. \ alignment-adjust alignment-baseline appearance azimuth background
  24. \ background-attachment background-break background-clip background-color
  25. \ background-image background-origin background-position background-repeat
  26. \ background-size baseline-shift binding bookmark-label bookmark-level
  27. \ bookmark-target border border-bottom border-bottom-color
  28. \ border-bottom-left-radius border-bottom-right-radius border-bottom-style
  29. \ border-bottom-width border-break border-collapse border-color border-image
  30. \ border-left border-left-color border-left-style border-left-width
  31. \ border-length border-radius border-right border-right-color
  32. \ border-right-style border-right-width border-spacing border-style border-top
  33. \ border-top-color border-top-left-radius border-top-right-radius
  34. \ border-top-style border-top-width border-width bottom box-align box-direction
  35. \ box-flex box-flex-group box-lines box-orient box-pack box-shadow box-sizing
  36. \ caption-side clear clip color color-profile column-break-after
  37. \ column-break-before column-count column-fill column-gap column-rule
  38. \ column-rule-color column-rule-style column-rule-width column-span
  39. \ column-width columns content counter-increment counter-reset crop cue
  40. \ cue-after cue-before cursor direction display dominant-baseline
  41. \ drop-initial-after-adjust drop-initial-after-align drop-initial-before-adjust
  42. \ drop-initial-before-align drop-initial-size drop-initial-value elevation
  43. \ empty-cells fit fit-position float float-offset font font-effect
  44. \ font-emphasize font-emphasize-position font-emphasize-style font-family
  45. \ font-size font-size-adjust font-smooth font-stretch font-style font-variant
  46. \ font-weight grid-columns grid-rows hanging-punctuation height hyphenate-after
  47. \ hyphenate-before hyphenate-character hyphenate-lines hyphenate-resource
  48. \ hyphens icon image-orientation image-resolution inline-box-align left
  49. \ letter-spacing line-height line-stacking line-stacking-ruby
  50. \ line-stacking-shift line-stacking-strategy list-style list-style-image
  51. \ list-style-position list-style-type margin margin-bottom margin-left
  52. \ margin-right margin-top mark mark-after mark-before marker-offset marks
  53. \ marquee-direction marquee-play-count marquee-speed marquee-style max-height
  54. \ max-width min-height min-width move-to nav-down nav-index nav-left nav-right
  55. \ nav-up opacity orphans outline outline-color outline-offset outline-style
  56. \ outline-width overflow overflow-style overflow-x overflow-y padding
  57. \ padding-bottom padding-left padding-right padding-top page page-break-after
  58. \ page-break-before page-break-inside page-policy pause pause-after
  59. \ pause-before phonemes pitch pitch-range play-during position
  60. \ presentation-level punctuation-trim quotes rendering-intent resize rest
  61. \ rest-after rest-before richness right rotation rotation-point ruby-align
  62. \ ruby-overhang ruby-position ruby-span size speak speak-header speak-numeral
  63. \ speak-punctuation speech-rate stress string-set tab-side table-layout target
  64. \ target-name target-new target-position text-align text-align-last
  65. \ text-decoration text-emphasis text-height text-indent text-justify
  66. \ text-outline text-replace text-shadow text-transform text-wrap top
  67. \ unicode-bibi vertical-align visibility voice-balance voice-duration
  68. \ voice-family voice-pitch voice-pitch-range voice-rate voice-stress
  69. \ voice-volume volume white-space white-space-collapse widows width word-break
  70. \ word-spacing word-wrap z-index
  71. syn keyword ccssElement contained *
  72. syn match ccssClassName contained "\.[A-Za-z][A-Za-z0-9_-]\+"
  73. syn match ccssIdentifier contained "#[A-Za-z_@][A-Za-z0-9_@-]*"
  74. syn match ccssPsuedoClass contained ":\S\+" contains=ccssPseudoClassId
  75. syn keyword ccssPseudoClassId contained link visited active hover focus before after left right
  76. syn match ccssPseudoClassId contained "\<first\(-\(line\|letter\|child\)\)\=\>"
  77. syn match ccssValueInteger contained "[-+]\=\d\+"
  78. syn match ccssValueNumber contained "[-+]\=\d\+\(\.\d*\)\="
  79. syn match ccssValueLength contained "[-+]\=\d\+\(\.\d*\)\=\(%\|mm\|cm\|in\|pt\|pc\|em\|ex\|px\)"
  80. syn match ccssValueColor contained "\<transparent\>"
  81. syn match ccssValueColor contained "#[0-9A-Fa-f]\{3\}\>"
  82. syn match ccssValueColor contained "#[0-9A-Fa-f]\{6\}\>"
  83. syn region ccssValueURL contained start="\<url\s*(" end=")" matchgroup=ccssFunctionName oneline keepend
  84. syn region ccssValueFunction contained start="\<\(rgb\|clip\|attr\|counter\|rect\)\s*(" end=")" matchgroup=ccssFunctionName oneline keepend
  85. syn match ccssSelector "^\s*\zs[^:]\+" contains=ccssElement,ccssClassName,ccssIdentifier,ccssPseudo,ccssProperty nextgroup=ccssColon
  86. syn match ccssColon ":\s*" nextgroup=ccssRightSide
  87. syn match cCssRightSide "[^:]\+$" contains=ALLBUT,ccssElement,ccssProperty,ccssClassName,ccssIdentifier,ccssPseudo
  88. syn region ccssComment start="//" end="$" oneline contains=@Spell
  89. syn match ccssVariable contained "\$[A-Za-z][A-Za-z0-9_]*"
  90. syn keyword ccssMethod contained abs
  91. syn keyword ccssMethod contained brighten
  92. syn keyword ccssMethod contained darken
  93. syn keyword ccssMethod contained eval
  94. syn keyword ccssMethod contained join
  95. syn keyword ccssMethod contained length
  96. syn keyword ccssMethod contained lower
  97. syn keyword ccssMethod contained round
  98. syn keyword ccssMethod contained split
  99. syn keyword ccssMethod contained string
  100. syn keyword ccssMethod contained strip
  101. syn keyword ccssMethod contained upper
  102. if version >= 508 || !exists("did_ccss_syn_inits")
  103. if version < 508
  104. let did_ccss_syn_inits = 1
  105. command -nargs=+ HiLink hi link <args>
  106. else
  107. command -nargs=+ HiLink hi def link <args>
  108. endif
  109. HiLink ccssElement Statement
  110. HiLink ccssClassName Label
  111. HiLink ccssIdentifier Label
  112. HiLink ccssPseudoClassId PreProc
  113. HiLink ccssProperty Type
  114. HiLink ccssComment Comment
  115. HiLink ccssValueInteger Number
  116. HiLink ccssValueNumber Number
  117. HiLink ccssValueLength Number
  118. HiLink ccssValueColor Constant
  119. HiLink ccssValueFunctionName Function
  120. HiLink ccssMethod Function
  121. HiLink ccssVariable Identifier
  122. delcommand HiLink
  123. endif
  124. let b:current_syntax = "clevercss"