erlang.json 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222
  1. {
  2. "aliases": [
  3. "erl"
  4. ],
  5. "keywords": {
  6. "keyword": "after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor",
  7. "literal": "false true"
  8. },
  9. "illegal": "(<\/|\\*=|\\+=|-=|\/\\*|\\*\/|\\(\\*|\\*\\))",
  10. "contains": [
  11. {
  12. "className": "function",
  13. "begin": "^[a-z'][a-zA-Z0-9_']*\\s*\\(",
  14. "end": "->",
  15. "returnBegin": true,
  16. "illegal": "\\(|#|\/\/|\/\\*|\\\\|:|;",
  17. "contains": [
  18. {
  19. "className": "params",
  20. "begin": "\\(",
  21. "end": "\\)",
  22. "contains": [
  23. {
  24. "className": "comment",
  25. "begin": "%",
  26. "end": "$",
  27. "contains": [
  28. {
  29. "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"
  30. },
  31. {
  32. "className": "doctag",
  33. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  34. "relevance": 0
  35. }
  36. ]
  37. },
  38. {
  39. "begin": "fun\\s+[a-z'][a-zA-Z0-9_']*\/\\d+"
  40. },
  41. {
  42. "beginKeywords": "fun receive if try case",
  43. "end": "end",
  44. "keywords": {
  45. "$ref": "#keywords"
  46. },
  47. "contains": [
  48. {
  49. "$ref": "#contains.0.contains.0.contains.0"
  50. },
  51. {
  52. "$ref": "#contains.0.contains.0.contains.1"
  53. },
  54. {
  55. "className": "",
  56. "begin": "'",
  57. "end": "'",
  58. "illegal": "\\n",
  59. "contains": [
  60. {
  61. "begin": "\\\\[\\s\\S]",
  62. "relevance": 0
  63. }
  64. ]
  65. },
  66. {
  67. "$ref": "#contains.0.contains.0.contains.2"
  68. },
  69. {
  70. "begin": "([a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*|[a-z'][a-zA-Z0-9_']*)\\(",
  71. "end": "\\)",
  72. "returnBegin": true,
  73. "relevance": 0,
  74. "contains": [
  75. {
  76. "begin": "([a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*|[a-z'][a-zA-Z0-9_']*)",
  77. "relevance": 0
  78. },
  79. {
  80. "begin": "\\(",
  81. "end": "\\)",
  82. "endsWithParent": true,
  83. "returnEnd": true,
  84. "relevance": 0,
  85. "contains": {
  86. "$ref": "#contains.0.contains.0.contains"
  87. }
  88. }
  89. ]
  90. },
  91. {
  92. "className": "string",
  93. "begin": "\"",
  94. "end": "\"",
  95. "illegal": "\\n",
  96. "contains": [
  97. {
  98. "$ref": "#contains.0.contains.0.contains.2.contains.2.contains.0"
  99. }
  100. ]
  101. },
  102. {
  103. "className": "number",
  104. "begin": "\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",
  105. "relevance": 0
  106. },
  107. {
  108. "begin": "{",
  109. "end": "}",
  110. "relevance": 0,
  111. "contains": {
  112. "$ref": "#contains.0.contains.0.contains"
  113. }
  114. },
  115. {
  116. "begin": "\\b_([A-Z][A-Za-z0-9_]*)?",
  117. "relevance": 0
  118. },
  119. {
  120. "begin": "[A-Z][a-zA-Z0-9_]*",
  121. "relevance": 0
  122. },
  123. {
  124. "begin": "#[a-zA-Z_]\\w*",
  125. "relevance": 0,
  126. "returnBegin": true,
  127. "contains": [
  128. {
  129. "begin": "#[a-zA-Z_]\\w*",
  130. "relevance": 0
  131. },
  132. {
  133. "begin": "{",
  134. "end": "}",
  135. "relevance": 0,
  136. "contains": {
  137. "$ref": "#contains.0.contains.0.contains"
  138. }
  139. }
  140. ]
  141. }
  142. ]
  143. },
  144. {
  145. "$ref": "#contains.0.contains.0.contains.2.contains.4"
  146. },
  147. {
  148. "$ref": "#contains.0.contains.0.contains.2.contains.5"
  149. },
  150. {
  151. "$ref": "#contains.0.contains.0.contains.2.contains.6"
  152. },
  153. {
  154. "$ref": "#contains.0.contains.0.contains.2.contains.7"
  155. },
  156. {
  157. "$ref": "#contains.0.contains.0.contains.2.contains.8"
  158. },
  159. {
  160. "$ref": "#contains.0.contains.0.contains.2.contains.9"
  161. },
  162. {
  163. "$ref": "#contains.0.contains.0.contains.2.contains.10"
  164. }
  165. ]
  166. },
  167. {
  168. "className": "title",
  169. "begin": "[a-z'][a-zA-Z0-9_']*",
  170. "relevance": 0
  171. }
  172. ],
  173. "starts": {
  174. "end": ";|\\.",
  175. "keywords": {
  176. "$ref": "#keywords"
  177. },
  178. "contains": {
  179. "$ref": "#contains.0.contains.0.contains"
  180. }
  181. }
  182. },
  183. {
  184. "$ref": "#contains.0.contains.0.contains.0"
  185. },
  186. {
  187. "begin": "^-",
  188. "end": "\\.",
  189. "relevance": 0,
  190. "excludeEnd": true,
  191. "returnBegin": true,
  192. "lexemes": "-[a-zA-Z]\\w*",
  193. "keywords": "-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec",
  194. "contains": [
  195. {
  196. "$ref": "#contains.0.contains.0"
  197. }
  198. ]
  199. },
  200. {
  201. "$ref": "#contains.0.contains.0.contains.2.contains.6"
  202. },
  203. {
  204. "$ref": "#contains.0.contains.0.contains.2.contains.5"
  205. },
  206. {
  207. "$ref": "#contains.0.contains.0.contains.2.contains.10"
  208. },
  209. {
  210. "$ref": "#contains.0.contains.0.contains.2.contains.8"
  211. },
  212. {
  213. "$ref": "#contains.0.contains.0.contains.2.contains.9"
  214. },
  215. {
  216. "$ref": "#contains.0.contains.0.contains.2.contains.7"
  217. },
  218. {
  219. "begin": "\\.$"
  220. }
  221. ]
  222. }