php.json 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261
  1. {
  2. "aliases": [
  3. "php",
  4. "php3",
  5. "php4",
  6. "php5",
  7. "php6",
  8. "php7"
  9. ],
  10. "case_insensitive": true,
  11. "keywords": "and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally",
  12. "contains": [
  13. {
  14. "className": "comment",
  15. "begin": "#",
  16. "end": "$",
  17. "contains": [
  18. {
  19. "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"
  20. },
  21. {
  22. "className": "doctag",
  23. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  24. "relevance": 0
  25. }
  26. ]
  27. },
  28. {
  29. "className": "comment",
  30. "begin": "\/\/",
  31. "end": "$",
  32. "contains": [
  33. {
  34. "className": "meta",
  35. "begin": "<\\?(php)?|\\?>"
  36. },
  37. {
  38. "$ref": "#contains.0.contains.0"
  39. },
  40. {
  41. "className": "doctag",
  42. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  43. "relevance": 0
  44. }
  45. ]
  46. },
  47. {
  48. "className": "comment",
  49. "begin": "\/\\*",
  50. "end": "\\*\/",
  51. "contains": [
  52. {
  53. "className": "doctag",
  54. "begin": "@[A-Za-z]+"
  55. },
  56. {
  57. "$ref": "#contains.0.contains.0"
  58. },
  59. {
  60. "className": "doctag",
  61. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  62. "relevance": 0
  63. }
  64. ]
  65. },
  66. {
  67. "className": "comment",
  68. "begin": "__halt_compiler.+?;",
  69. "end": false,
  70. "contains": [
  71. {
  72. "$ref": "#contains.0.contains.0"
  73. },
  74. {
  75. "className": "doctag",
  76. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  77. "relevance": 0
  78. }
  79. ],
  80. "endsWithParent": true,
  81. "keywords": "__halt_compiler",
  82. "lexemes": "[a-zA-Z_]\\w*"
  83. },
  84. {
  85. "className": "string",
  86. "begin": "<<<['\"]?\\w+['\"]?$",
  87. "end": "^\\w+;?$",
  88. "contains": [
  89. {
  90. "begin": "\\\\[\\s\\S]",
  91. "relevance": 0
  92. },
  93. {
  94. "className": "subst",
  95. "variants": [
  96. {
  97. "begin": "\\$\\w+"
  98. },
  99. {
  100. "begin": "\\{\\$",
  101. "end": "\\}"
  102. }
  103. ]
  104. }
  105. ]
  106. },
  107. {
  108. "$ref": "#contains.1.contains.0"
  109. },
  110. {
  111. "className": "keyword",
  112. "begin": "\\$this\\b"
  113. },
  114. {
  115. "begin": "\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*"
  116. },
  117. {
  118. "begin": "(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*"
  119. },
  120. {
  121. "className": "function",
  122. "beginKeywords": "function",
  123. "end": "[;{]",
  124. "excludeEnd": true,
  125. "illegal": "\\$|\\[|%",
  126. "contains": [
  127. {
  128. "className": "title",
  129. "begin": "[a-zA-Z_]\\w*",
  130. "relevance": 0
  131. },
  132. {
  133. "className": "params",
  134. "begin": "\\(",
  135. "end": "\\)",
  136. "contains": [
  137. "self",
  138. {
  139. "$ref": "#contains.7"
  140. },
  141. {
  142. "className": "comment",
  143. "begin": "\/\\*",
  144. "end": "\\*\/",
  145. "contains": [
  146. {
  147. "$ref": "#contains.0.contains.0"
  148. },
  149. {
  150. "className": "doctag",
  151. "begin": "(?:TODO|FIXME|NOTE|BUG|XXX):",
  152. "relevance": 0
  153. }
  154. ]
  155. },
  156. {
  157. "className": "string",
  158. "contains": [
  159. {
  160. "$ref": "#contains.4.contains.0"
  161. },
  162. {
  163. "$ref": "#contains.1.contains.0"
  164. }
  165. ],
  166. "variants": [
  167. {
  168. "begin": "b\"",
  169. "end": "\""
  170. },
  171. {
  172. "begin": "b'",
  173. "end": "'"
  174. },
  175. {
  176. "className": "string",
  177. "begin": "'",
  178. "end": "'",
  179. "illegal": null,
  180. "contains": [
  181. {
  182. "$ref": "#contains.4.contains.0"
  183. }
  184. ]
  185. },
  186. {
  187. "className": "string",
  188. "begin": "\"",
  189. "end": "\"",
  190. "illegal": null,
  191. "contains": [
  192. {
  193. "$ref": "#contains.4.contains.0"
  194. }
  195. ]
  196. }
  197. ]
  198. },
  199. {
  200. "variants": [
  201. {
  202. "className": "number",
  203. "begin": "\\b(0b[01]+)",
  204. "relevance": 0
  205. },
  206. {
  207. "className": "number",
  208. "begin": "(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",
  209. "relevance": 0
  210. }
  211. ]
  212. }
  213. ]
  214. }
  215. ]
  216. },
  217. {
  218. "className": "class",
  219. "beginKeywords": "class interface",
  220. "end": "{",
  221. "excludeEnd": true,
  222. "illegal": "[:\\(\\$\"]",
  223. "contains": [
  224. {
  225. "beginKeywords": "extends implements"
  226. },
  227. {
  228. "$ref": "#contains.9.contains.0"
  229. }
  230. ]
  231. },
  232. {
  233. "beginKeywords": "namespace",
  234. "end": ";",
  235. "illegal": "[\\.']",
  236. "contains": [
  237. {
  238. "$ref": "#contains.9.contains.0"
  239. }
  240. ]
  241. },
  242. {
  243. "beginKeywords": "use",
  244. "end": ";",
  245. "contains": [
  246. {
  247. "$ref": "#contains.9.contains.0"
  248. }
  249. ]
  250. },
  251. {
  252. "begin": "=>"
  253. },
  254. {
  255. "$ref": "#contains.9.contains.1.contains.3"
  256. },
  257. {
  258. "$ref": "#contains.9.contains.1.contains.4"
  259. }
  260. ]
  261. }