coffeescript.json 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267
  1. {
  2. "aliases": [
  3. "coffee",
  4. "cson",
  5. "iced"
  6. ],
  7. "keywords": {
  8. "keyword": "in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not",
  9. "literal": "true false null undefined yes no on off",
  10. "built_in": "npm require console print module global window document"
  11. },
  12. "illegal": "\\\/\\*",
  13. "contains": [
  14. {
  15. "className": "number",
  16. "begin": "\\b(0b[01]+)",
  17. "relevance": 0
  18. },
  19. {
  20. "className": "number",
  21. "begin": "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
  22. "relevance": 0,
  23. "starts": {
  24. "end": "(\\s*\/)?",
  25. "relevance": 0
  26. }
  27. },
  28. {
  29. "className": "string",
  30. "variants": [
  31. {
  32. "begin": "'''",
  33. "end": "'''",
  34. "contains": [
  35. {
  36. "begin": "\\\\[\\s\\S]",
  37. "relevance": 0
  38. }
  39. ]
  40. },
  41. {
  42. "begin": "'",
  43. "end": "'",
  44. "contains": [
  45. {
  46. "$ref": "#contains.2.variants.0.contains.0"
  47. }
  48. ]
  49. },
  50. {
  51. "begin": "\"\"\"",
  52. "end": "\"\"\"",
  53. "contains": [
  54. {
  55. "$ref": "#contains.2.variants.0.contains.0"
  56. },
  57. {
  58. "className": "subst",
  59. "begin": "#\\{",
  60. "end": "}",
  61. "keywords": {
  62. "$ref": "#keywords"
  63. },
  64. "contains": [
  65. {
  66. "$ref": "#contains.0"
  67. },
  68. {
  69. "$ref": "#contains.1"
  70. },
  71. {
  72. "$ref": "#contains.2"
  73. },
  74. {
  75. "className": "regexp",
  76. "variants": [
  77. {
  78. "begin": "\/\/\/",
  79. "end": "\/\/\/",
  80. "contains": [
  81. {
  82. "$ref": "#contains.2.variants.2.contains.1"
  83. },
  84. {
  85. "className": "comment",
  86. "begin": "#",
  87. "end": "$",
  88. "contains": [
  89. {
  90. "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"
  91. },
  92. {
  93. "className": "doctag",
  94. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  95. "relevance": 0
  96. }
  97. ]
  98. }
  99. ]
  100. },
  101. {
  102. "begin": "\/\/[gim]{0,3}(?=\\W)",
  103. "relevance": 0
  104. },
  105. {
  106. "begin": "\\\/(?![ *]).*?(?![\\\\]).\\\/[gim]{0,3}(?=\\W)"
  107. }
  108. ]
  109. },
  110. {
  111. "begin": "@[A-Za-z$_][0-9A-Za-z$_]*"
  112. },
  113. {
  114. "subLanguage": "javascript",
  115. "excludeBegin": true,
  116. "excludeEnd": true,
  117. "variants": [
  118. {
  119. "begin": "```",
  120. "end": "```"
  121. },
  122. {
  123. "begin": "`",
  124. "end": "`"
  125. }
  126. ]
  127. }
  128. ]
  129. }
  130. ]
  131. },
  132. {
  133. "begin": "\"",
  134. "end": "\"",
  135. "contains": [
  136. {
  137. "$ref": "#contains.2.variants.0.contains.0"
  138. },
  139. {
  140. "$ref": "#contains.2.variants.2.contains.1"
  141. }
  142. ]
  143. }
  144. ]
  145. },
  146. {
  147. "$ref": "#contains.2.variants.2.contains.1.contains.3"
  148. },
  149. {
  150. "$ref": "#contains.2.variants.2.contains.1.contains.4"
  151. },
  152. {
  153. "$ref": "#contains.2.variants.2.contains.1.contains.5"
  154. },
  155. {
  156. "className": "comment",
  157. "begin": "###",
  158. "end": "###",
  159. "contains": [
  160. {
  161. "$ref": "#contains.2.variants.2.contains.1.contains.3.variants.0.contains.1.contains.0"
  162. },
  163. {
  164. "className": "doctag",
  165. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  166. "relevance": 0
  167. }
  168. ]
  169. },
  170. {
  171. "$ref": "#contains.2.variants.2.contains.1.contains.3.variants.0.contains.1"
  172. },
  173. {
  174. "className": "function",
  175. "begin": "^\\s*[A-Za-z$_][0-9A-Za-z$_]*\\s*=\\s*(\\(.*\\))?\\s*\\B[-=]>",
  176. "end": "[-=]>",
  177. "returnBegin": true,
  178. "contains": [
  179. {
  180. "className": "title",
  181. "begin": "[A-Za-z$_][0-9A-Za-z$_]*",
  182. "relevance": 0
  183. },
  184. {
  185. "className": "params",
  186. "begin": "\\([^\\(]",
  187. "returnBegin": true,
  188. "contains": [
  189. {
  190. "begin": "\\(",
  191. "end": "\\)",
  192. "keywords": {
  193. "$ref": "#keywords"
  194. },
  195. "contains": [
  196. "self",
  197. {
  198. "$ref": "#contains.0"
  199. },
  200. {
  201. "$ref": "#contains.1"
  202. },
  203. {
  204. "$ref": "#contains.2"
  205. },
  206. {
  207. "$ref": "#contains.2.variants.2.contains.1.contains.3"
  208. },
  209. {
  210. "$ref": "#contains.2.variants.2.contains.1.contains.4"
  211. },
  212. {
  213. "$ref": "#contains.2.variants.2.contains.1.contains.5"
  214. }
  215. ]
  216. }
  217. ]
  218. }
  219. ]
  220. },
  221. {
  222. "begin": "[:\\(,=]\\s*",
  223. "relevance": 0,
  224. "contains": [
  225. {
  226. "className": "function",
  227. "begin": "(\\(.*\\))?\\s*\\B[-=]>",
  228. "end": "[-=]>",
  229. "returnBegin": true,
  230. "contains": [
  231. {
  232. "$ref": "#contains.8.contains.1"
  233. }
  234. ]
  235. }
  236. ]
  237. },
  238. {
  239. "className": "class",
  240. "beginKeywords": "class",
  241. "end": "$",
  242. "illegal": "[:=\"\\[\\]]",
  243. "contains": [
  244. {
  245. "beginKeywords": "extends",
  246. "endsWithParent": true,
  247. "illegal": "[:=\"\\[\\]]",
  248. "contains": [
  249. {
  250. "$ref": "#contains.8.contains.0"
  251. }
  252. ]
  253. },
  254. {
  255. "$ref": "#contains.8.contains.0"
  256. }
  257. ]
  258. },
  259. {
  260. "begin": "[A-Za-z$_][0-9A-Za-z$_]*:",
  261. "end": ":",
  262. "returnBegin": true,
  263. "returnEnd": true,
  264. "relevance": 0
  265. }
  266. ]
  267. }