elm.json 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. {
  2. "keywords": "let in if then else case of where module import exposing type alias as infix infixl infixr port effect command subscription",
  3. "contains": [
  4. {
  5. "beginKeywords": "port effect module",
  6. "end": "exposing",
  7. "keywords": "port effect module where command subscription exposing",
  8. "contains": [
  9. {
  10. "begin": "\\(",
  11. "end": "\\)",
  12. "illegal": "\"",
  13. "contains": [
  14. {
  15. "className": "type",
  16. "begin": "\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"
  17. },
  18. {
  19. "variants": [
  20. {
  21. "className": "comment",
  22. "begin": "--",
  23. "end": "$",
  24. "contains": [
  25. {
  26. "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"
  27. },
  28. {
  29. "className": "doctag",
  30. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  31. "relevance": 0
  32. }
  33. ]
  34. },
  35. {
  36. "className": "comment",
  37. "begin": "{-",
  38. "end": "-}",
  39. "contains": [
  40. "self",
  41. {
  42. "$ref": "#contains.0.contains.0.contains.1.variants.0.contains.0"
  43. },
  44. {
  45. "className": "doctag",
  46. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  47. "relevance": 0
  48. }
  49. ]
  50. }
  51. ]
  52. }
  53. ]
  54. },
  55. {
  56. "$ref": "#contains.0.contains.0.contains.1"
  57. }
  58. ],
  59. "illegal": "\\W\\.|;"
  60. },
  61. {
  62. "begin": "import",
  63. "end": "$",
  64. "keywords": "import as exposing",
  65. "contains": [
  66. {
  67. "$ref": "#contains.0.contains.0"
  68. },
  69. {
  70. "$ref": "#contains.0.contains.0.contains.1"
  71. }
  72. ],
  73. "illegal": "\\W\\.|;"
  74. },
  75. {
  76. "begin": "type",
  77. "end": "$",
  78. "keywords": "type alias",
  79. "contains": [
  80. {
  81. "className": "type",
  82. "begin": "\\b[A-Z][\\w']*",
  83. "relevance": 0
  84. },
  85. {
  86. "$ref": "#contains.0.contains.0"
  87. },
  88. {
  89. "begin": "{",
  90. "end": "}",
  91. "contains": {
  92. "$ref": "#contains.0.contains.0.contains"
  93. }
  94. },
  95. {
  96. "$ref": "#contains.0.contains.0.contains.1"
  97. }
  98. ]
  99. },
  100. {
  101. "beginKeywords": "infix infixl infixr",
  102. "end": "$",
  103. "contains": [
  104. {
  105. "className": "number",
  106. "begin": "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
  107. "relevance": 0
  108. },
  109. {
  110. "$ref": "#contains.0.contains.0.contains.1"
  111. }
  112. ]
  113. },
  114. {
  115. "begin": "port",
  116. "end": "$",
  117. "keywords": "port",
  118. "contains": [
  119. {
  120. "$ref": "#contains.0.contains.0.contains.1"
  121. }
  122. ]
  123. },
  124. {
  125. "className": "string",
  126. "begin": "'\\\\?.",
  127. "end": "'",
  128. "illegal": "."
  129. },
  130. {
  131. "className": "string",
  132. "begin": "\"",
  133. "end": "\"",
  134. "illegal": "\\n",
  135. "contains": [
  136. {
  137. "begin": "\\\\[\\s\\S]",
  138. "relevance": 0
  139. }
  140. ]
  141. },
  142. {
  143. "$ref": "#contains.3.contains.0"
  144. },
  145. {
  146. "$ref": "#contains.2.contains.0"
  147. },
  148. {
  149. "className": "title",
  150. "begin": "^[_a-z][\\w']*",
  151. "relevance": 0
  152. },
  153. {
  154. "$ref": "#contains.0.contains.0.contains.1"
  155. },
  156. {
  157. "begin": "->|<-"
  158. }
  159. ],
  160. "illegal": ";"
  161. }