livescript.json 10 KB

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