groovy.json 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. {
  2. "keywords": {
  3. "literal": "true false null",
  4. "keyword": "byte short char int long boolean float double void def as in assert trait super this abstract static volatile transient public private protected synchronized final class interface enum if else for while switch case break default continue throw throws try catch finally implements extends new import package return instanceof"
  5. },
  6. "contains": [
  7. {
  8. "className": "comment",
  9. "begin": "\/\\*\\*",
  10. "end": "\\*\/",
  11. "contains": [
  12. {
  13. "begin": "\\w+@",
  14. "relevance": 0
  15. },
  16. {
  17. "className": "doctag",
  18. "begin": "@[A-Za-z]+"
  19. },
  20. {
  21. "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"
  22. },
  23. {
  24. "className": "doctag",
  25. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  26. "relevance": 0
  27. }
  28. ],
  29. "relevance": 0
  30. },
  31. {
  32. "className": "comment",
  33. "begin": "\/\/",
  34. "end": "$",
  35. "contains": [
  36. {
  37. "$ref": "#contains.0.contains.2"
  38. },
  39. {
  40. "className": "doctag",
  41. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  42. "relevance": 0
  43. }
  44. ]
  45. },
  46. {
  47. "className": "comment",
  48. "begin": "\/\\*",
  49. "end": "\\*\/",
  50. "contains": [
  51. {
  52. "$ref": "#contains.0.contains.2"
  53. },
  54. {
  55. "className": "doctag",
  56. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  57. "relevance": 0
  58. }
  59. ]
  60. },
  61. {
  62. "className": "string",
  63. "begin": "\"\"\"",
  64. "end": "\"\"\""
  65. },
  66. {
  67. "className": "string",
  68. "begin": "'''",
  69. "end": "'''"
  70. },
  71. {
  72. "className": "string",
  73. "begin": "\\$\/",
  74. "end": "\/\\$",
  75. "relevance": 10
  76. },
  77. {
  78. "className": "string",
  79. "begin": "'",
  80. "end": "'",
  81. "illegal": "\\n",
  82. "contains": [
  83. {
  84. "begin": "\\\\[\\s\\S]",
  85. "relevance": 0
  86. }
  87. ]
  88. },
  89. {
  90. "className": "regexp",
  91. "begin": "~?\\\/[^\\\/\\n]+\\\/",
  92. "contains": [
  93. {
  94. "$ref": "#contains.6.contains.0"
  95. }
  96. ]
  97. },
  98. {
  99. "className": "string",
  100. "begin": "\"",
  101. "end": "\"",
  102. "illegal": "\\n",
  103. "contains": [
  104. {
  105. "$ref": "#contains.6.contains.0"
  106. }
  107. ]
  108. },
  109. {
  110. "className": "meta",
  111. "begin": "^#!\/usr\/bin\/env",
  112. "end": "$",
  113. "illegal": "\n"
  114. },
  115. {
  116. "className": "number",
  117. "begin": "\\b(0b[01]+)",
  118. "relevance": 0
  119. },
  120. {
  121. "className": "class",
  122. "beginKeywords": "class interface trait enum",
  123. "end": "{",
  124. "illegal": ":",
  125. "contains": [
  126. {
  127. "beginKeywords": "extends implements"
  128. },
  129. {
  130. "className": "title",
  131. "begin": "[a-zA-Z_]\\w*",
  132. "relevance": 0
  133. }
  134. ]
  135. },
  136. {
  137. "className": "number",
  138. "begin": "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
  139. "relevance": 0
  140. },
  141. {
  142. "className": "meta",
  143. "begin": "@[A-Za-z]+"
  144. },
  145. {
  146. "className": "string",
  147. "begin": "[^\\?]{0}[A-Za-z0-9_$]+ *:"
  148. },
  149. {
  150. "begin": "\\?",
  151. "end": "\\:"
  152. },
  153. {
  154. "className": "symbol",
  155. "begin": "^\\s*[A-Za-z0-9_$]+:",
  156. "relevance": 0
  157. }
  158. ],
  159. "illegal": "#|<\\\/"
  160. }