css.json 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. {
  2. "case_insensitive": true,
  3. "illegal": "[=\\\/|'\\$]",
  4. "contains": [
  5. {
  6. "className": "comment",
  7. "begin": "\/\\*",
  8. "end": "\\*\/",
  9. "contains": [
  10. {
  11. "begin": "\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b"
  12. },
  13. {
  14. "className": "doctag",
  15. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  16. "relevance": 0
  17. }
  18. ]
  19. },
  20. {
  21. "className": "selector-id",
  22. "begin": "#[A-Za-z0-9_\\-]+"
  23. },
  24. {
  25. "className": "selector-class",
  26. "begin": "\\.[A-Za-z0-9_\\-]+"
  27. },
  28. {
  29. "className": "selector-attr",
  30. "begin": "\\[",
  31. "end": "\\]",
  32. "illegal": "$",
  33. "contains": [
  34. {
  35. "className": "string",
  36. "begin": "'",
  37. "end": "'",
  38. "illegal": "\\n",
  39. "contains": [
  40. {
  41. "begin": "\\\\[\\s\\S]",
  42. "relevance": 0
  43. }
  44. ]
  45. },
  46. {
  47. "className": "string",
  48. "begin": "\"",
  49. "end": "\"",
  50. "illegal": "\\n",
  51. "contains": [
  52. {
  53. "$ref": "#contains.3.contains.0.contains.0"
  54. }
  55. ]
  56. }
  57. ]
  58. },
  59. {
  60. "className": "selector-pseudo",
  61. "begin": ":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+"
  62. },
  63. {
  64. "begin": "@(page|font-face)",
  65. "lexemes": "@[a-z\\-]+",
  66. "keywords": "@page @font-face"
  67. },
  68. {
  69. "begin": "@",
  70. "end": "[{;]",
  71. "illegal": ":",
  72. "returnBegin": true,
  73. "contains": [
  74. {
  75. "className": "keyword",
  76. "begin": "@\\-?\\w[\\w]*(\\-\\w+)*"
  77. },
  78. {
  79. "begin": "\\s",
  80. "endsWithParent": true,
  81. "excludeEnd": true,
  82. "relevance": 0,
  83. "keywords": "and or not only",
  84. "contains": [
  85. {
  86. "begin": "[a-z\\-]+:",
  87. "className": "attribute"
  88. },
  89. {
  90. "$ref": "#contains.3.contains.0"
  91. },
  92. {
  93. "$ref": "#contains.3.contains.1"
  94. },
  95. {
  96. "className": "number",
  97. "begin": "\\b\\d+(\\.\\d+)?(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",
  98. "relevance": 0
  99. }
  100. ]
  101. }
  102. ]
  103. },
  104. {
  105. "className": "selector-tag",
  106. "begin": "[a-zA-Z\\-][a-zA-Z0-9_\\-]*",
  107. "relevance": 0
  108. },
  109. {
  110. "begin": "{",
  111. "end": "}",
  112. "illegal": "\\S",
  113. "contains": [
  114. {
  115. "$ref": "#contains.0"
  116. },
  117. {
  118. "begin": "(?:[A-Z\\_\\.\\-]+|--[a-zA-Z0-9_\\-]+)\\s*:",
  119. "returnBegin": true,
  120. "end": ";",
  121. "endsWithParent": true,
  122. "contains": [
  123. {
  124. "className": "attribute",
  125. "begin": "\\S",
  126. "end": ":",
  127. "excludeEnd": true,
  128. "starts": {
  129. "endsWithParent": true,
  130. "excludeEnd": true,
  131. "contains": [
  132. {
  133. "begin": "[\\w\\-]+\\(",
  134. "returnBegin": true,
  135. "contains": [
  136. {
  137. "className": "built_in",
  138. "begin": "[\\w\\-]+"
  139. },
  140. {
  141. "begin": "\\(",
  142. "end": "\\)",
  143. "contains": [
  144. {
  145. "$ref": "#contains.3.contains.0"
  146. },
  147. {
  148. "$ref": "#contains.3.contains.1"
  149. },
  150. {
  151. "$ref": "#contains.6.contains.1.contains.3"
  152. }
  153. ]
  154. }
  155. ]
  156. },
  157. {
  158. "$ref": "#contains.6.contains.1.contains.3"
  159. },
  160. {
  161. "$ref": "#contains.3.contains.1"
  162. },
  163. {
  164. "$ref": "#contains.3.contains.0"
  165. },
  166. {
  167. "$ref": "#contains.0"
  168. },
  169. {
  170. "className": "number",
  171. "begin": "#[0-9A-Fa-f]+"
  172. },
  173. {
  174. "className": "meta",
  175. "begin": "!important"
  176. }
  177. ]
  178. }
  179. }
  180. ]
  181. }
  182. ]
  183. }
  184. ]
  185. }