ver 2009.10.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. data/CHANGELOG +1404 -0
  2. data/MANIFEST +187 -0
  3. data/Rakefile +30 -0
  4. data/TODO +169 -0
  5. data/bin/ver +19 -0
  6. data/config/detect.rb +109 -0
  7. data/config/keymap/vim.rb +239 -0
  8. data/config/rc.rb +0 -0
  9. data/config/scratch +3 -0
  10. data/config/syntax/ANTLR.json +275 -0
  11. data/config/syntax/ASP VB.net.json +228 -0
  12. data/config/syntax/ASP.json +135 -0
  13. data/config/syntax/ActionScript.json +168 -0
  14. data/config/syntax/Ada.json +108 -0
  15. data/config/syntax/Apache.json +342 -0
  16. data/config/syntax/AppleScript.json +721 -0
  17. data/config/syntax/Bibtex.json +253 -0
  18. data/config/syntax/Blog (HTML).json +47 -0
  19. data/config/syntax/Blog (Markdown).json +50 -0
  20. data/config/syntax/Blog (Text).json +45 -0
  21. data/config/syntax/Blog (Textile).json +45 -0
  22. data/config/syntax/Bulletin Board.json +428 -0
  23. data/config/syntax/C++.json +323 -0
  24. data/config/syntax/C.json +694 -0
  25. data/config/syntax/CSS.json +346 -0
  26. data/config/syntax/DOT.json +79 -0
  27. data/config/syntax/Diff.json +136 -0
  28. data/config/syntax/Dylan.json +104 -0
  29. data/config/syntax/Eiffel.json +128 -0
  30. data/config/syntax/Erlang.json +1636 -0
  31. data/config/syntax/F-Script.json +137 -0
  32. data/config/syntax/FXScript.json +260 -0
  33. data/config/syntax/Gri.json +141 -0
  34. data/config/syntax/HTML (Mason).json +207 -0
  35. data/config/syntax/HTML (Rails).json +52 -0
  36. data/config/syntax/HTML (Tcl).json +42 -0
  37. data/config/syntax/HTML for ASP.net.json +736 -0
  38. data/config/syntax/HTML-ASP.json +45 -0
  39. data/config/syntax/HTML.json +614 -0
  40. data/config/syntax/Haskell.json +407 -0
  41. data/config/syntax/Inform.json +80 -0
  42. data/config/syntax/Ini.json +91 -0
  43. data/config/syntax/Io.json +142 -0
  44. data/config/syntax/Java.json +745 -0
  45. data/config/syntax/JavaProperties.json +42 -0
  46. data/config/syntax/JavaScript.json +446 -0
  47. data/config/syntax/LaTeX Beamer.json +65 -0
  48. data/config/syntax/LaTeX Log.json +88 -0
  49. data/config/syntax/LaTeX.json +962 -0
  50. data/config/syntax/Lighttpd.json +93 -0
  51. data/config/syntax/Lisp.json +101 -0
  52. data/config/syntax/Literate Haskell.json +55 -0
  53. data/config/syntax/Logtalk.json +289 -0
  54. data/config/syntax/Lua.json +146 -0
  55. data/config/syntax/M.json +744 -0
  56. data/config/syntax/MEL.json +161 -0
  57. data/config/syntax/MIPS.json +114 -0
  58. data/config/syntax/Mail.json +224 -0
  59. data/config/syntax/Makefile.json +66 -0
  60. data/config/syntax/Markdown.json +644 -0
  61. data/config/syntax/Modula-3.json +80 -0
  62. data/config/syntax/Movable Type.json +348 -0
  63. data/config/syntax/OCaml.json +1391 -0
  64. data/config/syntax/Objective-C++.json +21 -0
  65. data/config/syntax/OpenGL.json +24 -0
  66. data/config/syntax/PHP.json +2184 -0
  67. data/config/syntax/Pascal.json +128 -0
  68. data/config/syntax/Perl.json +2091 -0
  69. data/config/syntax/Plain text.json +49 -0
  70. data/config/syntax/Processing.json +188 -0
  71. data/config/syntax/Quake3 Config.json +54 -0
  72. data/config/syntax/R.json +157 -0
  73. data/config/syntax/Rez.json +137 -0
  74. data/config/syntax/Ruby on Rails.json +170 -0
  75. data/config/syntax/Ruby.json +1753 -0
  76. data/config/syntax/SQL (Rails).json +31 -0
  77. data/config/syntax/SQL.json +435 -0
  78. data/config/syntax/SWIG.json +96 -0
  79. data/config/syntax/Scheme.json +359 -0
  80. data/config/syntax/Shell-Unix-Generic.json +1198 -0
  81. data/config/syntax/Slate.json +265 -0
  82. data/config/syntax/Smarty.json +110 -0
  83. data/config/syntax/Standard ML.json +322 -0
  84. data/config/syntax/Subversion commit message.json +62 -0
  85. data/config/syntax/Tcl.json +278 -0
  86. data/config/syntax/TeX Math.json +83 -0
  87. data/config/syntax/TeX.json +157 -0
  88. data/config/syntax/Textile.json +273 -0
  89. data/config/syntax/Twiki.json +436 -0
  90. data/config/syntax/Vectorscript.json +97 -0
  91. data/config/syntax/XML strict.json +148 -0
  92. data/config/syntax/XML.json +301 -0
  93. data/config/syntax/XSL.json +96 -0
  94. data/config/syntax/YAML.json +293 -0
  95. data/config/syntax/iCalendar.json +51 -0
  96. data/config/syntax/reStructuredText.json +403 -0
  97. data/config/theme/Active4D.json +260 -0
  98. data/config/theme/All Hallow's Eve.json +171 -0
  99. data/config/theme/Amy.json +359 -0
  100. data/config/theme/BBEdit.json +269 -0
  101. data/config/theme/Bespin.json +322 -0
  102. data/config/theme/Blackboard.json +215 -0
  103. data/config/theme/BoysAndGirls01.json +156 -0
  104. data/config/theme/Brilliance Black.json +1695 -0
  105. data/config/theme/Brilliance Dull.json +1451 -0
  106. data/config/theme/Classic Modified.json +288 -0
  107. data/config/theme/Cobalt.json +345 -0
  108. data/config/theme/Cool Glow.json +215 -0
  109. data/config/theme/Dawn.json +258 -0
  110. data/config/theme/Eiffel.json +270 -0
  111. data/config/theme/Espresso Libre.json +247 -0
  112. data/config/theme/Fluidvision.json +272 -0
  113. data/config/theme/IDLE.json +159 -0
  114. data/config/theme/LAZY.json +178 -0
  115. data/config/theme/Mac Classic.json +277 -0
  116. data/config/theme/MagicWB (Amiga).json +231 -0
  117. data/config/theme/Merbivore Soft.json +181 -0
  118. data/config/theme/Merbivore.json +181 -0
  119. data/config/theme/Monokai.json +177 -0
  120. data/config/theme/Notepad2.json +166 -0
  121. data/config/theme/Pastels on Dark.json +437 -0
  122. data/config/theme/RubyBlue.json +226 -0
  123. data/config/theme/Sin City 2.json +361 -0
  124. data/config/theme/Slate.json +270 -0
  125. data/config/theme/Slush & Poppies.json +232 -0
  126. data/config/theme/SpaceCadet.json +143 -0
  127. data/config/theme/Sunburst.json +415 -0
  128. data/config/theme/Twilight BG FG.json +633 -0
  129. data/config/theme/Twilight.json +321 -0
  130. data/config/theme/Whys Poignant.json +119 -0
  131. data/config/theme/Zenburnesque.json +237 -0
  132. data/config/theme/barf.json +155 -0
  133. data/config/theme/fake.json +418 -0
  134. data/config/theme/happydeluxe.json +114 -0
  135. data/config/theme/iLife 05.json +393 -0
  136. data/config/theme/iPlastic.json +177 -0
  137. data/config/theme/mintBlue Dark.json +414 -0
  138. data/config/theme/mintBlue.json +415 -0
  139. data/config/theme/monoindustrial.json +276 -0
  140. data/config/theme/starlight.json +67 -0
  141. data/config/tutorial +74 -0
  142. data/config/welcome +115 -0
  143. data/help/index.verh +14 -0
  144. data/lib/ver.rb +156 -0
  145. data/lib/ver/entry.rb +97 -0
  146. data/lib/ver/keymap.rb +96 -0
  147. data/lib/ver/layout.rb +107 -0
  148. data/lib/ver/methods.rb +19 -0
  149. data/lib/ver/methods/completion.rb +116 -0
  150. data/lib/ver/methods/control.rb +340 -0
  151. data/lib/ver/methods/insert.rb +6 -0
  152. data/lib/ver/methods/move.rb +65 -0
  153. data/lib/ver/methods/search.rb +33 -0
  154. data/lib/ver/methods/select.rb +145 -0
  155. data/lib/ver/methods/views.rb +21 -0
  156. data/lib/ver/mode.rb +160 -0
  157. data/lib/ver/options.rb +207 -0
  158. data/lib/ver/plist.rb +106 -0
  159. data/lib/ver/status.rb +67 -0
  160. data/lib/ver/syntax.rb +68 -0
  161. data/lib/ver/syntax/detector.rb +53 -0
  162. data/lib/ver/syntax/processor.rb +48 -0
  163. data/lib/ver/text.rb +374 -0
  164. data/lib/ver/textpow.rb +357 -0
  165. data/lib/ver/theme.rb +162 -0
  166. data/lib/ver/vendor/fuzzy_file_finder.rb +340 -0
  167. data/lib/ver/view.rb +163 -0
  168. data/lib/ver/view/entry.rb +28 -0
  169. data/lib/ver/view/list.rb +137 -0
  170. data/lib/ver/view/list/buffer.rb +27 -0
  171. data/lib/ver/view/list/fuzzy_file_finder.rb +44 -0
  172. data/lib/ver/view/list/syntax.rb +13 -0
  173. data/lib/ver/view/list/theme.rb +13 -0
  174. data/spec/keymap.rb +224 -0
  175. data/tasks/bacon.rake +49 -0
  176. data/tasks/changelog.rake +18 -0
  177. data/tasks/gem.rake +22 -0
  178. data/tasks/gem_installer.rake +76 -0
  179. data/tasks/grancher.rake +12 -0
  180. data/tasks/install_dependencies.rake +6 -0
  181. data/tasks/manifest.rake +4 -0
  182. data/tasks/plist2json.rake +35 -0
  183. data/tasks/rcov.rake +18 -0
  184. data/tasks/release.rake +12 -0
  185. data/tasks/reversion.rake +8 -0
  186. data/tasks/syntax_list.rake +31 -0
  187. data/ver.gemspec +29 -0
  188. metadata +241 -0
@@ -0,0 +1,21 @@
1
+ {
2
+ "fileTypes": [
3
+ "mm",
4
+ "M",
5
+ "h"
6
+ ],
7
+ "foldingStartMarker": "(?x)\n\t\t \/\\*\\*(?!\\*)\n\t\t|^(?![^{]*?\/\/|[^{]*?\/\\*(?!.*?\\*\/.*?\\{)).*?\\{\\s*($|\/\/|\/\\*(?!.*?\\*\/.*\\S))\n\t\t|^@(interface|protocol|implementation)\\b\n\t",
8
+ "foldingStopMarker": "(?<!\\*)\\*\\*\/|^\\s*\\}|^@end\\b",
9
+ "keyEquivalent": "^~O",
10
+ "name": "Objective-C++",
11
+ "patterns": [
12
+ {
13
+ "include": "source.c++"
14
+ },
15
+ {
16
+ "include": "source.objc"
17
+ }
18
+ ],
19
+ "scopeName": "source.objc++",
20
+ "uuid": "FDAB1813-6B1C-11D9-BCAC-000D93589AF6"
21
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "name": "OpenGL",
3
+ "patterns": [
4
+ {
5
+ "match": "\\b(GL(u?int(ptr)?|float|enum|boolean|bitfield|u?byte|u?short|sizei(ptr)?|clamp[fd]|double|void|char))\\b",
6
+ "name": "support.type.open-gl"
7
+ },
8
+ {
9
+ "match": "\\b(GL(_(R(GB(_SCALE(_(EXT|ARB))?|A(_(MODE|UNSIGNED_DOT_PRODUCT_MAPPING_NV))?)?|IGHT|E(GISTER_COMBINERS_NV|S(CALE_NORMAL(_EXT)?|TART_SUN|AMPLE_(REPLICATE_SGIX|ZERO_FILL_SGIX|DECIMATE_SGIX))|NDER(_MODE|ER)?|CLAIM_MEMORY_HINT_PGI|TURN|D(_(M(IN_CLAMP_INGR|AX_CLAMP_INGR)|BI(T(S|_EXT)|AS)|SCALE)|UCE(_EXT)?)?|P(EAT|L(ICATE_BORDER(_HP)?|ACE(MENT_CODE_(SUN|ARRAY_(S(TRIDE_SUN|UN)|TYPE_SUN|POINTER_SUN))|_(MIDDLE_SUN|OLDEST_SUN|EXT))?))|F(ERENCE_PLANE_(SGIX|EQUATION_SGIX)|LECTION_MAP(_(NV|EXT|ARB))?)|AD_(BUFFER|ONLY(_ARB)?|WRITE(_ARB)?))|ASTER_POSITION_UNCLIPPED_IBM)?|G(RE(EN(_(M(IN_CLAMP_INGR|AX_CLAMP_INGR)|BI(T(S|_EXT)|AS)|SCALE))?|ATER)|E(NERATE_MIPMAP(_(SGIS|HINT(_SGIS)?))?|OMETRY_DEFORMATION_SGIX|QUAL)|L(OBAL_ALPHA_(SUN|FACTOR_SUN)|EXT_(VERSION|FUNCTION_POINTERS|LEGACY)))|X(_EXT|OR)|M(I(RROR(_CLAMP_(TO_(BORDER_EXT|EDGE_(EXT|ATI))|EXT|ATI)|ED_REPEAT(_ARB)?)|N(MAX(_(SINK(_EXT)?|EXT|FORMAT(_EXT)?))?|_(PBUFFER_VIEWPORT_DIMS_APPLE|EXT|WEIGHTED_ATI))?)|O(D(ULATE(_(S(IGNED_ADD_ATI|UBTRACT_ATI)|ADD_ATI))?|ELVIEW(_(MATRIX|STACK_DEPTH|PROJECTION_NV))?)|V_EXT)|UL(_EXT|T(ISAMPLE(_(BIT(_ARB)?|SGIS|EXT|FILTER_HINT_NV|ARB))?)?)|VP_MATRIX_EXT|A(GNITUDE_(BIAS_NV|SCALE_NV)|X(_(RECTANGLE_TEXTURE_SIZE_(EXT|ARB)|GENERAL_COMBINERS_NV|MODELVIEW_STACK_DEPTH|S(HININESS_NV|POT_EXPONENT_NV)|NAME_STACK_DEPTH|C(O(MBINED_TEXTURE_IMAGE_UNITS(_ARB)?|NVOLUTION_(HEIGHT(_EXT)?|WIDTH(_EXT)?)|LOR_MATRIX_STACK_DEPTH(_SGI)?)|UBE_MAP_TEXTURE_SIZE(_(EXT|ARB))?|LI(P(MAP_(DEPTH_SGIX|VIRTUAL_DEPTH_SGIX)|_PLANES)|ENT_ATTRIB_STACK_DEPTH))|T(RACK_MATRI(X_STACK_DEPTH_NV|CES_NV)|EXTURE_(MAX_ANISOTROPY_EXT|S(TACK_DEPTH|IZE)|COORDS(_ARB)?|IMAGE_UNITS(_ARB)?|UNITS(_ARB)?|LOD_BIAS(_EXT)?))|OPTIMIZED_VERTEX_SHADER_(IN(STRUCTIONS_EXT|VARIANTS_EXT)|VARIANTS_EXT|LOCAL(S_EXT|_CONSTANTS_EXT))|D(RAW_BUFFERS(_ARB)?|EFORMATION_ORDER_SGIX)|P(RO(GRAM_(MATRI(X_STACK_DEPTH_ARB|CES_ARB)|NATIVE_(TE(X_IN(STRUCTIONS_ARB|DIRECTIONS_ARB)|MPORARIES_ARB)|INSTRUCTIONS_ARB|PARAMETERS_ARB|A(TTRIBS_ARB|DDRESS_REGISTERS_ARB|LU_INSTRUCTIONS_ARB))|TE(X_IN(STRUCTIONS_ARB|DIRECTIONS_ARB)|MPORARIES_ARB)|INSTRUCTIONS_ARB|PARAMETERS_ARB|ENV_PARAMETERS_ARB|LOCAL_PARAMETERS_ARB|A(TTRIBS_ARB|DDRESS_REGISTERS_ARB|LU_INSTRUCTIONS_ARB))|JECTION_STACK_DEPTH)|N_TRIANGLES_TESSELATION_LEVEL_ATI(X)?|IXEL_MAP_TABLE)|E(XT|VAL_ORDER|LEMENTS_(INDICES(_EXT)?|VERTICES(_EXT)?))|V(IEWPORT_DIMS|ERTEX_(SHADER_(IN(STRUCTIONS_EXT|VARIANTS_EXT)|VARIANTS_EXT|LOCAL(S_EXT|_CONSTANTS_EXT))|HINT_PGI|TEXTURE_IMAGE_UNITS(_ARB)?|UNI(TS_ARB|FORM_COMPONENTS(_ARB)?)|A(RRAY_RANGE_ELEMENT_(NV|APPLE)|TTRIBS(_ARB)?))|ARYING_FLOATS(_ARB)?)|F(RA(GMENT_(UNIFORM_COMPONENTS(_ARB)?|LIGHTS_SGIX)|MEZOOM_FACTOR_SGIX)|OG_FUNC_POINTS_SGIS)|WEIGHTED_ATI|LI(GHTS|ST_NESTING)|A(SYNC_(READ_PIXELS_SGIX|HISTOGRAM_SGIX|TEX_IMAGE_SGIX|DRAW_PIXELS_SGIX)|CTIVE_LIGHTS_SGIX|TTRIB_STACK_DEPTH)))?|T(RIX_(MODE|EXT)|_(S(HININESS_BIT_PGI|PECULAR_BIT_PGI)|COLOR_INDEXES_BIT_PGI|DIFFUSE_BIT_PGI|EMISSION_BIT_PGI|AMBIENT_(BIT_PGI|AND_DIFFUSE_BIT_PGI))|ERIAL_SIDE_HINT_PGI)|D_EXT|P_(STENCIL|COLOR)))|B(GR(_EXT|A(_EXT)?)?|YTE|I(NORMAL_ARRAY_(STRIDE_EXT|TYPE_EXT|POINTER_EXT|EXT)|TMAP(_TOKEN)?|AS_B(Y_NEGATIVE_ONE_HALF_NV|IT_EXT))|OOL(_ARB)?|UFFER_(MAP(_POINTER(_ARB)?|PED(_ARB)?)|SIZE(_ARB)?|OBJECT_APPLE|USAGE(_ARB)?|ACCESS(_ARB)?)|L(UE(_(M(IN_CLAMP_INGR|AX_CLAMP_INGR)|BI(T(S|_EXT)|AS)|SCALE))?|END(_(SRC(_(RGB(_EXT)?|ALPHA(_EXT)?))?|COLOR(_EXT)?|DST(_(RGB(_EXT)?|ALPHA(_EXT)?))?|EQUATION(_(RGB_EXT|EXT|ALPHA_EXT))?))?)|ACK(_(RIGHT|NORMALS_HINT_PGI|LEFT))?)|S(RC_(COLOR|ALPHA(_SATURATE)?)|MOOTH(_(POINT_SIZE_(RANGE|GRANULARITY)|LINE_WIDTH_(RANGE|GRANULARITY)))?|H(ININESS|ORT|A(R(PEN_TEXTURE_FUNC_POINTS_SGIS|ED_TEXTURE_PALETTE_EXT)|D(ING_LANGUAGE_VERSION|OW_ATTENUATION_EXT|E(R_(SOURCE_LENGTH|CONSISTENT_NV|TYPE|O(BJECT_ARB|PERATION_NV))|_MODEL))))|C(REEN_COORDINATES_REND|ISSOR_(B(IT|OX)|TEST)|AL(E_BY_(TWO_NV|ONE_HALF_NV|FOUR_NV)|AR_EXT))|T(R(ICT_(SCISSOR_HINT_PGI|DEPTHFUNC_HINT_PGI|LIGHTING_HINT_PGI)|EAM_(READ(_ARB)?|COPY(_ARB)?|DRAW(_ARB)?))|ORAGE_(SHARED_APPLE|C(LIENT_APPLE|ACHED_APPLE)|PRIVATE_APPLE)|E(REO|NCIL(_(REF|B(ITS|UFFER_BIT|ACK_(REF|PASS_DEPTH_(PASS(_ATI)?|FAIL(_ATI)?)|VALUE_MASK|F(UNC(_ATI)?|AIL(_ATI)?)|WRITEMASK))|CLEAR_VALUE|TEST(_TWO_SIDE_EXT)?|INDEX|PASS_DEPTH_(PASS|FAIL)|VALUE_MASK|F(UNC|AIL)|WRITEMASK))?)|A(CK_(OVERFLOW|UNDERFLOW)|TIC_(READ(_ARB)?|COPY(_ARB)?|DRAW(_ARB)?)))|I(GNED_(RGB(_(NV|UNSIGNED_ALPHA_NV)|A_NV)|HILO_NV|NEGATE_NV|I(NTENSITY_NV|DENTITY_NV)|LUMINANCE_(NV|ALPHA_NV)|ALPHA_NV)|NGLE_COLOR(_EXT)?)|UB(_EXT|TRACT(_ARB)?|PIXEL_BITS)|P(RITE_(MODE_SGIX|SGIX|TRANSLATION_SGIX|OBJECT_ALIGNED_SGIX|EYE_ALIGNED_SGIX|AXI(S_SGIX|AL_SGIX))|HERE_MAP|OT_(CUTOFF|DIRECTION|EXPONENT)|ECULAR)|E(CONDARY_(COLOR_(NV|ARRAY(_(BUFFER_BINDING(_ARB)?|S(TRIDE(_EXT)?|IZE(_EXT)?)|TYPE(_EXT)?|POINTER(_EXT)?|EXT|LIST_(STRIDE_IBM|IBM)))?)|INTERPOLATOR_EXT)|T|PARATE_SPECULAR_COLOR(_EXT)?|LECT(ION_BUFFER_(SIZE|POINTER))?)|WIZZLE_ST(R(_(DR_EXT|EXT)|Q_(DQ_EXT|EXT))|Q_(DQ_EXT|EXT))|A(MPLE(R_CUBE(_ARB)?|S(_(SGIS|PASSED(_ARB)?|EXT|ARB))?|_(MASK_(SGIS|INVERT_(SGIS|EXT)|EXT|VALUE_(SGIS|EXT))|BUFFERS(_(SGIS|EXT|ARB))?|COVERAGE(_(INVERT(_ARB)?|VALUE(_ARB)?|ARB))?|PATTERN_(SGIS|EXT)|ALPHA_TO_(MASK_(SGIS|EXT)|COVERAGE(_ARB)?|ONE(_(SGIS|EXT|ARB))?)))|TURATE_BIT_EXT))?|H(I(STOGRAM(_(RED_SIZE(_EXT)?|GREEN_SIZE(_EXT)?|BLUE_SIZE(_EXT)?|SINK(_EXT)?|EXT|FORMAT(_EXT)?|WIDTH(_EXT)?|LUMINANCE_SIZE(_EXT)?|ALPHA_SIZE(_EXT)?))?|NT_BIT|_(BIAS_NV|SCALE_NV)|LO_NV)|ALF_(BI(T_EXT|AS_N(ORMAL_NV|EGATE_NV))|APPLE))|Y(CRCB(_SGIX|A_SGIX)|_EXT)|N(ICEST|O(R(MAL(_(MAP(_(NV|EXT|ARB))?|BIT_PGI|ARRAY(_(BUFFER_BINDING(_ARB)?|STRIDE(_EXT)?|COUNT_EXT|TYPE(_EXT)?|P(OINTER(_EXT)?|ARALLEL_POINTERS_INTEL)|EXT|LIST_(STRIDE_IBM|IBM)))?)|IZE(D_RANGE_EXT)?))?|NE|_ERROR|TEQUAL|OP)|UM_(GENERAL_COMBINERS_NV|COMPRESSED_TEXTURE_FORMATS(_ARB)?|IN(STRUCTIONS_(TOTAL_EXT|PER_PASS_EXT)|PUT_INTERPOLATOR_COMPONENTS_EXT)|PASSES_EXT|FRAGMENT_(REGISTERS_EXT|CONSTANTS_EXT)|LOOPBACK_COMPONENTS_EXT)|E(GAT(IVE_(X_EXT|Y_EXT|Z_EXT|ONE_EXT|W_EXT)|E_BIT_EXT)|VER|AREST(_(MIPMAP_(NEAREST|LINEAR)|CLIPMAP_(NEAREST_SGIX|LINEAR_SGIX)))?)|A(ME_STACK_DEPTH|ND|TIVE_GRAPHICS_(BEGIN_HINT_PGI|HANDLE_PGI|END_HINT_PGI)))|C(MYK(_EXT|A_EXT)|ND_EXT|CW|O(M(BINE(R_(M(UX_SUM_NV|APPING_NV)|BIAS_NV|S(CALE_NV|UM_OUTPUT_NV)|C(OMPONENT_USAGE_NV|D_(OUTPUT_NV|DOT_PRODUCT_NV))|INPUT_NV|AB_(OUTPUT_NV|DOT_PRODUCT_NV))|_(RGB(_(EXT|ARB))?|EXT|A(RB|LPHA(_(EXT|ARB))?)))?|P(RESSED_(RGB(_ARB|A(_ARB)?)?|TEXTURE_FORMATS(_ARB)?|INTENSITY(_ARB)?|LUMINANCE(_A(RB|LPHA(_ARB)?))?|ALPHA(_ARB)?)|_BIT_EXT|ILE(_(STATUS|AND_EXECUTE))?|ARE_R_TO_TEXTURE(_ARB)?))|N(S(T(_EYE_NV|ANT(_(BORDER(_HP)?|COLOR(_EXT)?|EXT|A(RB|TTENUATION|LPHA(_EXT)?)))?)|ERVE_MEMORY_HINT_PGI)|VOLUTION_(BORDER_(MODE(_EXT)?|COLOR(_HP)?)|H(INT_SGIX|EIGHT(_EXT)?)|F(ILTER_(BIAS(_EXT)?|SCALE(_EXT)?)|ORMAT(_EXT)?)|WIDTH(_EXT)?))|ORD_REPLACE(_(NV|ARB))?|PY(_(INVERTED|PIXEL_TOKEN))?|EFF|LOR(_(MAT(RIX(_S(GI|TACK_DEPTH(_SGI)?))?|ERIAL(_(PARAMETER|FACE))?)|BUFFER_BIT|SUM(_(CLAMP_NV|EXT|ARB))?|CLEAR_VALUE|TABLE(_(RED_SIZE(_SGI)?|GREEN_SIZE(_SGI)?|B(IAS(_SGI)?|LUE_SIZE(_SGI)?)|S(GI|CALE(_SGI)?)|INTENSITY_SIZE(_SGI)?|FORMAT(_SGI)?|WIDTH(_SGI)?|LUMINANCE_SIZE(_SGI)?|ALPHA_SIZE(_SGI)?))?|INDEX(ES)?|FLOAT_APPLE|WRITEMASK|LOGIC_OP|A(RRAY(_(BUFFER_BINDING(_ARB)?|S(TRIDE(_EXT)?|IZE(_EXT)?)|COUNT_EXT|TYPE(_EXT)?|P(OINTER(_EXT)?|ARALLEL_POINTERS_INTEL)|EXT|LIST_(STRIDE_IBM|IBM)))?|LPHA_PAIRING_EXT)))?)|U(RRENT_(RASTER_(NORMAL_SGIX|COLOR|TEXTURE_COORDS|INDEX|DISTANCE|POSITION(_VALID)?)|MATRIX_(STACK_DEPTH_(NV|ARB)|NV|ARB)|BI(NORMAL_EXT|T)|SECONDARY_COLOR(_EXT)?|NORMAL|COLOR|T(EXTURE_COORDS|ANGENT_EXT)|INDEX|PROGRAM|VERTEX_(EXT|WEIGHT_EXT|ATTRIB(_ARB)?)|QUERY(_ARB)?|FOG_COORD(INATE(_EXT)?)?|WEIGHT_ARB|ATTRIB_NV)|BIC_(HP|EXT)|LL_(MODES_NV|VERTEX_(IBM|OBJECT_POSITION_EXT|E(XT|YE_POSITION_EXT))|F(RAGMENT_NV|ACE(_MODE)?)))|W|L(I(P_(NEAR_HINT_PGI|VOLUME_CLIPPING_HINT_EXT|FAR_HINT_PGI)|ENT_(PIXEL_STORE_BIT|VERTEX_ARRAY_BIT|A(CTIVE_TEXTURE(_ARB)?|TTRIB_STACK_DEPTH|LL_ATTRIB_BITS)))|EAR|AMP(_TO_(BORDER(_(SGIS|ARB))?|EDGE(_SGIS)?))?)|ALLIGRAPHIC_FRAGMENT_SGIX)|T(R(IANGLE(S|_(STRIP|FAN|LIST_SUN))|UE|A(NS(POSE_(MODELVIEW_MATRIX(_ARB)?|NV|C(OLOR_MATRIX(_ARB)?|URRENT_MATRIX_ARB)|TEXTURE_MATRIX(_ARB)?|PROJECTION_MATRIX(_ARB)?)|FORM_(BIT|HINT_APPLE))|CK_MATRIX_(NV|TRANSFORM_NV)))|EXT(_FRAGMENT_SHADER_ATI|URE(_(R(E(SIDENT(_EXT)?|CTANGLE_(EXT|ARB)|D_SIZE(_EXT)?)|ANGE_(POINTER_APPLE|LENGTH_APPLE))|G(REEN_SIZE(_EXT)?|E(N_(R|MODE|S|T|Q)|QUAL_R_SGIX))|M(IN(_(FILTER|LOD(_SGIS)?)|IMIZE_STORAGE_APPLE)|ULTI_BUFFER_HINT_SGIX|A(G_(SIZE_NV|FILTER)|X_(L(OD(_SGIS)?|EVEL(_SGIS)?)|ANISOTROPY_EXT)|T(RIX|ERIAL_(PARAMETER_EXT|FACE_EXT))))|B(I(NDING_(RECTANGLE_(EXT|ARB)|CUBE_MAP(_(EXT|ARB))?)|T)|ORDER(_(COLOR|VALUES_NV))?|LUE_SIZE(_EXT)?|ASE_LEVEL(_SGIS)?)|S(HADER_NV|T(ORAGE_HINT_APPLE|ACK_DEPTH))|H(I_SIZE_NV|EIGHT)|NORMAL_EXT|C(O(MP(RESS(ION_HINT(_ARB)?|ED(_(IMAGE_SIZE(_ARB)?|ARB))?)|ONENTS|ARE_(MODE(_ARB)?|SGIX|OPERATOR_SGIX|F(UNC(_ARB)?|AIL_VALUE_ARB)))|NSTANT_DATA_SUNX|ORD_ARRAY(_(BUFFER_BINDING(_ARB)?|S(TRIDE(_EXT)?|IZE(_EXT)?)|COUNT_EXT|TYPE(_EXT)?|P(OINTER(_EXT)?|ARALLEL_POINTERS_INTEL)|EXT|LIST_(STRIDE_IBM|IBM)))?|LOR_(TABLE_SGI|WRITEMASK_SGIS))|UBE_MAP(_(NEGATIVE_(X(_(EXT|ARB))?|Y(_(EXT|ARB))?|Z(_(EXT|ARB))?)|POSITIVE_(X(_(EXT|ARB))?|Y(_(EXT|ARB))?|Z(_(EXT|ARB))?)|EXT|ARB))?|LIPMAP_(CENTER_SGIX|OFFSET_SGIX|DEPTH_SGIX|VIRTUAL_DEPTH_SGIX|FRAME_SGIX|LOD_OFFSET_SGIX))|TOO_LARGE_EXT|IN(TE(RNAL_FORMAT|NSITY_SIZE(_EXT)?)|DEX_SIZE_EXT)|D(S_SIZE_NV|T_SIZE_NV|E(PTH(_(SIZE(_ARB)?|EXT))?|FORMATION_SGIX))|P(R(IORITY(_EXT)?|E_SPECULAR_HP)|OST_SPECULAR_HP)|ENV(_(MODE|BIAS_SGIX|COLOR))?|FILTER_CONTROL(_EXT)?|W(RAP_(R(_EXT)?|S|T|Q_SGIS)|IDTH)|L(IGHT(_EXT|ING_MODE_HP)|O(_SIZE_NV|D_BIAS(_(R_SGIX|S_SGIX|T_SGIX|EXT))?)|UMINANCE_SIZE(_EXT)?|EQUAL_R_SGIX)|A(PPLICATION_MODE_EXT|LPHA_SIZE(_EXT)?)))?)|A(BLE_TOO_LARGE(_EXT)?|NGENT_ARRAY_(STRIDE_EXT|TYPE_EXT|POINTER_EXT|EXT)))?|I(GNORE_BORDER(_HP)?|MAGE_(ROTATE_(ORIGIN_(X_HP|Y_HP)|ANGLE_HP)|M(IN_FILTER_HP|AG_FILTER_HP)|SCALE_(X_HP|Y_HP)|CUBIC_WEIGHT_HP|TRANSLATE_(X_HP|Y_HP))|N(STRUMENT_(MEASUREMENTS_SGIX|BUFFER_POINTER_SGIX)|CR(_WRAP(_EXT)?)?|T(E(R(POLATE(_(EXT|ARB))?|LACE_(READ_INGR|SGIX))|NSITY(_EXT)?))?|DEX_(M(ODE|ATERIAL_(PARAMETER_EXT|EXT|FACE_EXT))|BIT(S|_PGI)|SHIFT|CLEAR_VALUE|TEST_(REF_EXT|EXT|FUNC_EXT)|OFFSET|WRITEMASK|LOGIC_OP|ARRAY(_(BUFFER_BINDING(_ARB)?|STRIDE(_EXT)?|COUNT_EXT|TYPE(_EXT)?|POINTER(_EXT)?|EXT|LIST_(STRIDE_IBM|IBM)))?)|V(ER(SE_(NV|TRANSPOSE_NV)|T(ED_SCREEN_W_REND)?)|A(RIANT_(DATATYPE_EXT|EXT|VALUE_EXT)|LID_(OPERATION|ENUM|VALUE)))|FO_LOG_LENGTH)|DENTITY_NV)|Z(_EXT|OOM_(X|Y)|ERO)|O(R(_(REVERSE|INVERTED)|DER)?|BJECT_(S(HADER_SOURCE_LENGTH_ARB|UBTYPE_ARB)|COMPILE_STATUS_ARB|TYPE_ARB|INFO_LOG_LENGTH_ARB|D(ISTANCE_TO_(POINT_SGIS|LINE_SGIS)|ELETE_STATUS_ARB)|P(OINT_SGIS|LANE)|VALIDATE_STATUS_ARB|LIN(E(_SGIS|AR)|K_STATUS_ARB)|A(CTIVE_(UNIFORM(S_ARB|_MAX_LENGTH_ARB)|ATTRIBUTE(S_ARB|_MAX_LENGTH_ARB))|TTACHED_OBJECTS_ARB))|NE(_MINUS_(SRC_(COLOR|ALPHA)|CONSTANT_(COLOR(_EXT)?|ALPHA(_EXT)?)|DST_(COLOR|ALPHA)))?|CCLUSION_TEST_(RESULT_HP|HP)|UT(_OF_MEMORY|PUT_(VERTEX_EXT|FOG_EXT))|P_(R(OUND_EXT|ECIP_(SQRT_EXT|EXT))|M(IN_EXT|OV_EXT|UL(_EXT|TIPLY_MATRIX_EXT)|A(X_EXT|DD_EXT))|S(UB_EXT|ET_(GE_EXT|LT_EXT))|NEGATE_EXT|C(ROSS_PRODUCT_EXT|LAMP_EXT)|INDEX_EXT|POWER_EXT|F(RAC_EXT|LOOR_EXT)|ADD_EXT)|FFSET_(HILO_(TEXTURE_RECTANGLE_NV|PROJECTIVE_TEXTURE_RECTANGLE_NV)|TEXTURE_(RECTANGLE_(SCALE_NV|NV)|MATRIX_NV|BIAS_NV|SCALE_NV)|PROJECTIVE_TEXTURE_RECTANGLE_(SCALE_NV|NV)))|D(RAW_(BUFFER|PIXEL(S_APPLE|_TOKEN))|S(_(BIAS_NV|SCALE_NV)|T_(COLOR|ALPHA)|DT_(MAG_(NV|INTENSITY_NV|VIB_NV)|NV))|YNAMIC_(READ(_ARB)?|COPY(_ARB)?|DRAW(_ARB)?)|T_(BIAS_NV|SCALE_NV)|I(S(CARD_NV|TANCE_ATTENUATION_(SGIS|EXT))|THER|FFUSE)|O(MAIN|NT_CARE|T_PRODUCT_(REFLECT_CUBE_MAP_NV|NV|CONST_EYE_REFLECT_CUBE_MAP_NV|TEXTURE_(RECTANGLE_NV|CUBE_MAP_NV)|D(IFFUSE_CUBE_MAP_NV|EPTH_REPLACE_NV)|PASS_THROUGH_NV|AFFINE_DEPTH_REPLACE_NV)|UBLE(BUFFER)?)|UAL_TEXTURE_SELECT_SGIS|E(C(R(_WRAP(_EXT)?)?|AL)|TAIL_TEXTURE_(MODE_SGIS|FUNC_POINTS_SGIS|LEVEL_SGIS)|P(TH(_(RANGE|B(I(TS|AS)|OUNDS_(TEST_EXT|EXT)|UFFER_BIT)|SCALE|C(OMPONENT|L(EAR_VALUE|AMP_NV))|TE(XTURE_MODE(_ARB)?|ST)|PASS_INSTRUMENT_(MAX_SGIX|SGIX|COUNTERS_SGIX)|FUNC|WRITEMASK))?|ENDENT_RGB_TEXTURE_CUBE_MAP_NV)|FORMATIONS_MASK_SGIX|LETE_STATUS))|U(N(SIGNED_(BYTE|SHORT|I(N(T|VERT_NV)|DENTITY_NV))|PACK_(R(OW_LENGTH|ESAMPLE_SGIX)|S(UBSAMPLE_RATE_SGIX|KIP_(ROWS|IMAGES(_EXT)?|PIXELS|VOLUMES_SGIS)|WAP_BYTES)|C(MYK_HINT_EXT|ONSTANT_DATA_SUNX|LIENT_STORAGE_APPLE)|IMAGE_(HEIGHT(_EXT)?|DEPTH_SGIS)|LSB_FIRST|ALIGNMENT))|PPER_LEFT)|P(R(IMARY_COLOR(_(NV|EXT|ARB))?|O(GRAM_(RESIDENT_NV|BINDING_ARB|STRING_(NV|ARB)|NA(ME_ARB|TIVE_(TE(X_IN(STRUCTIONS_ARB|DIRECTIONS_ARB)|MPORARIES_ARB)|INSTRUCTIONS_ARB|PARAMETERS_ARB|A(TTRIBS_ARB|DDRESS_REGISTERS_ARB|LU_INSTRUCTIONS_ARB)))|T(E(X_IN(STRUCTIONS_ARB|DIRECTIONS_ARB)|MPORARIES_ARB)|ARGET_NV)|INSTRUCTIONS_ARB|OBJECT_ARB|UNDER_NATIVE_LIMITS_ARB|PARAMETER(S_ARB|_NV)|ERROR_(STRING_ARB|POSITION_(NV|ARB))|FORMAT_A(RB|SCII_ARB)|LENGTH_(NV|ARB)|A(TTRIBS_ARB|DDRESS_REGISTERS_ARB|LU_INSTRUCTIONS_ARB))|XY_(HISTOGRAM(_EXT)?|COLOR_TABLE(_SGI)?|TEXTURE_(RECTANGLE_(EXT|ARB)|C(OLOR_TABLE_SGI|UBE_MAP(_(EXT|ARB))?))|POST_(CO(NVOLUTION_COLOR_TABLE(_SGI)?|LOR_MATRIX_COLOR_TABLE(_SGI)?)|IMAGE_TRANSFORM_COLOR_TABLE_HP))|JECTION(_(MATRIX|STACK_DEPTH))?)|E(VIOUS(_(TEXTURE_INPUT_NV|EXT|ARB))?|FER_DOUBLEBUFFER_HINT_PGI))|HONG_(HINT_WIN|WIN)|N_TRIANGLES_(NORMAL_MODE_(QUADRATIC_ATI(X)?|LINEAR_ATI(X)?|ATI(X)?)|TESSELATION_LEVEL_ATI(X)?|POINT_MODE_(CUBIC_ATI(X)?|LINEAR_ATI(X)?|ATI(X)?)|ATI(X)?)|IXEL_(GROUP_COLOR_SGIS|M(IN_FILTER_EXT|ODE_BIT|A(G_FILTER_EXT|P_(R_TO_R(_SIZE)?|G_TO_G(_SIZE)?|B_TO_B(_SIZE)?|S_TO_S(_SIZE)?|I_TO_(R(_SIZE)?|G(_SIZE)?|B(_SIZE)?|I(_SIZE)?|A(_SIZE)?)|A_TO_A(_SIZE)?)))|CUBIC_WEIGHT_EXT|T(ILE_(GRID_(HEIGHT_SGIX|DEPTH_SGIX|WIDTH_SGIX)|BEST_ALIGNMENT_SGIX|HEIGHT_SGIX|CACHE_(SIZE_SGIX|INCREMENT_SGIX)|WIDTH_SGIX)|EX(_GEN_(MODE_SGIX|SGIX)|TURE_SGIS))|FRAGMENT_(RGB_SOURCE_SGIS|ALPHA_SOURCE_SGIS))|O(S(T_(CO(NVOLUTION_(RED_(BIAS(_EXT)?|SCALE(_EXT)?)|GREEN_(BIAS(_EXT)?|SCALE(_EXT)?)|BLUE_(BIAS(_EXT)?|SCALE(_EXT)?)|COLOR_TABLE(_SGI)?|ALPHA_(BIAS(_EXT)?|SCALE(_EXT)?))|LOR_MATRIX_(RED_(BIAS(_SGI)?|SCALE(_SGI)?)|GREEN_(BIAS(_SGI)?|SCALE(_SGI)?)|BLUE_(BIAS(_SGI)?|SCALE(_SGI)?)|COLOR_TABLE(_SGI)?|ALPHA_(BIAS(_SGI)?|SCALE(_SGI)?)))|TEXTURE_FILTER_(BIAS_(RANGE_SGIX|SGIX)|SCALE_(RANGE_SGIX|SGIX))|IMAGE_TRANSFORM_COLOR_TABLE_HP)|ITION)|INT(S|_(BIT|S(MOOTH(_HINT)?|IZE(_(RANGE|GRANULARITY|M(IN(_(SGIS|EXT|ARB))?|AX(_(SGIS|EXT|ARB))?)))?|PRITE(_(R_MODE_NV|NV|COORD_ORIGIN|ARB))?)|CULL_(MODE_ATI|C(ENTER_ATI|LIP_ATI))|TOKEN|DISTANCE_ATTENUATION(_ARB)?|FADE_THRESHOLD_SIZE(_(SGIS|EXT|ARB))?))?|LYGON(_(MODE|BIT|S(MOOTH(_HINT)?|TIPPLE(_BIT)?)|TOKEN|OFFSET_(BIAS_EXT|UNITS|POINT|EXT|F(ILL|ACTOR(_EXT)?)|LINE)))?)|ER(SPECTIVE_CORRECTION_HINT|_STAGE_CONSTANTS_NV|TURB_EXT)|A(RALLEL_ARRAYS_INTEL|SS_THROUGH_(NV|TOKEN)|CK_(R(OW_LENGTH|ESAMPLE_SGIX)|S(UBSAMPLE_RATE_SGIX|KIP_(ROWS|IMAGES(_EXT)?|PIXELS|VOLUMES_SGIS)|WAP_BYTES)|CMYK_HINT_EXT|IMAGE_(HEIGHT(_EXT)?|DEPTH_SGIS)|LSB_FIRST|ALIGNMENT)))|E(X(TENSIONS|P(AND_N(ORMAL_NV|EGATE_NV))?)|M(BOSS_(MAP_NV|CONSTANT_NV|LIGHT_NV)|ISSION)|YE_(RADIAL_NV|DISTANCE_TO_(POINT_SGIS|LINE_SGIS)|P(OINT_SGIS|LANE(_ABSOLUTE_NV)?)|LINE(_SGIS|AR))|NABLE_BIT|_TIMES_F_NV|IGHTH_BIT_EXT|DGE(_FLAG(_ARRAY(_(BUFFER_BINDING(_ARB)?|STRIDE(_EXT)?|COUNT_EXT|POINTER(_EXT)?|EXT|LIST_(STRIDE_IBM|IBM)))?)?|FLAG_BIT_PGI)|VAL_BIT|QU(IV|AL)|LEMENT_(BUFFER_BINDING_APPLE|ARRAY_(BUFFER(_(BINDING(_ARB)?|ARB))?|TYPE_APPLE|POINTER_APPLE|APPLE)))|V(I(BRANCE_(BIAS_NV|SCALE_NV)|EWPORT(_BIT)?)|E(R(SION|TEX_(BLEND_ARB|S(HADER(_(BINDING_EXT|IN(STRUCTIONS_EXT|VARIANTS_EXT)|OPTIMIZED_EXT|EXT|VARIANTS_EXT|LOCAL(S_EXT|_CONSTANTS_EXT)|ARB))?|TATE_PROGRAM_NV)|CONSISTENT_HINT_PGI|DATA_HINT_PGI|PR(OGRAM_(BINDING_NV|NV|TWO_SIDE(_(NV|ARB))?|POINT_SIZE(_(NV|ARB))?|ARB)|ECLIP_(SGIX|HINT_SGIX))|WEIGHT(_ARRAY_(S(TRIDE_EXT|IZE_EXT)|TYPE_EXT|POINTER_EXT|EXT)|ING_EXT)|A(RRAY(_(RANGE_(NV|POINTER_(NV|APPLE)|VALID_NV|WITHOUT_FLUSH_NV|LENGTH_(NV|APPLE)|APPLE)|B(INDING_APPLE|UFFER_BINDING(_ARB)?)|S(T(RIDE(_EXT)?|ORAGE_HINT_APPLE)|IZE(_EXT)?)|COUNT_EXT|TYPE(_EXT)?|P(OINTER(_EXT)?|ARALLEL_POINTERS_INTEL)|EXT|LIST_(STRIDE_IBM|IBM)))?|TTRIB_ARRAY_(BUFFER_BINDING(_ARB)?|S(TRIDE(_ARB)?|IZE(_ARB)?)|NORMALIZED(_ARB)?|TYPE(_ARB)?|POINTER(_ARB)?|ENABLED(_ARB)?))))|NDOR|CTOR_EXT)|A(RIA(BLE_(G_NV|B_NV|C_NV|D_NV|E_NV|F_NV|A_NV)|NT_(DATATYPE_EXT|EXT|VALUE_EXT|ARRAY_(STRIDE_EXT|TYPE_EXT|POINTER_EXT|EXT)))|LIDATE_STATUS))|KEEP|Q(U(ERY_(RESULT(_A(RB|VAILABLE(_ARB)?))?|COUNTER_BITS(_ARB)?)|A(RTER_BIT_EXT|D(RATIC_ATTENUATION|S|_(STRIP|TEXTURE_SELECT_SGIS)))))?|F(R(ONT(_(RIGHT|FACE|LEFT|AND_BACK))?|A(GMENT_(MATERIAL_EXT|SHADER(_(DERIVATIVE_HINT|EXT|ARB))?|NORMAL_EXT|COLOR_(MATERIAL_(SGIX|PARAMETER_SGIX|FACE_SGIX)|EXT)|DEPTH(_EXT)?|PROGRAM_ARB|LIGHT(_MODEL_(NORMAL_INTERPOLATION_SGIX|TWO_SIDE_SGIX|LOCAL_VIEWER_SGIX|AMBIENT_SGIX)|ING_SGIX))|MEZOOM_(SGIX|FACTOR_SGIX)))|ILL|O(RCE_BLUE_TO_ONE_NV|G(_(MODE|BIT|S(CALE_(SGIX|VALUE_SGIX)|TART|PECULAR_TEXTURE_WIN)|HINT|CO(ORD(_(SRC|ARRAY(_(BUFFER_BINDING(_ARB)?|STRIDE|TYPE|POINTER))?)|INATE(_(SOURCE(_EXT)?|EXT|ARRAY(_(BUFFER_BINDING(_ARB)?|STRIDE(_EXT)?|TYPE(_EXT)?|POINTER(_EXT)?|EXT|LIST_(STRIDE_IBM|IBM)))?))?)?|LOR)|INDEX|OFFSET_(SGIX|VALUE_SGIX)|D(ISTANCE_MODE_NV|ENSITY)|END|FUNC_(SGIS|POINTS_SGIS)))?)|U(NC_(REVERSE_SUBTRACT(_EXT)?|SUBTRACT(_EXT)?|ADD(_EXT)?)|LL_(RANGE_EXT|STIPPLE_HINT_PGI))|E(NCE_APPLE|EDBACK(_BUFFER_(SIZE|TYPE|POINTER))?)|L(OAT|AT)|A(STEST|LSE))|W(R(ITE_ONLY(_ARB)?|AP_BORDER_SUN)|_EXT|IDE_LINE_HINT_PGI|EIGHT_(SUM_UNITY_ARB|ARRAY_(BUFFER_BINDING(_ARB)?|S(TRIDE_ARB|IZE_ARB)|TYPE_ARB|POINTER_ARB|ARB)))|L(I(GHT(_(MODEL_(SPECULAR_VECTOR_APPLE|COLOR_CONTROL(_EXT)?|TWO_SIDE|LOCAL_VIEWER|AMBIENT)|ENV_MODE_SGIX)|ING(_BIT)?)|ST_(MODE|B(IT|ASE)|INDEX|PRIORITY_SGIX)|N(E(S|_(RESET_TOKEN|BIT|S(MOOTH(_HINT)?|T(RIP|IPPLE(_(REPEAT|PATTERN))?))|TOKEN|WIDTH(_(RANGE|GRANULARITY))?|LOOP)|AR(_(MIPMAP_(NEAREST|LINEAR)|SHARPEN_(SGIS|COLOR_SGIS|ALPHA_SGIS)|CLIPMAP_(NEAREST_SGIX|LINEAR_SGIX)|DETAIL_(SGIS|COLOR_SGIS|ALPHA_SGIS)|ATTENUATION))?)?|K_STATUS))|O(GIC_OP(_MODE)?|CAL_(CONSTANT_(DATATYPE_EXT|EXT|VALUE_EXT)|EXT)|_(BIAS_NV|SCALE_NV)|WER_LEFT|AD)|UMINANCE(_ALPHA)?|E(RP_EXT|SS|QUAL|FT))|A(RRAY_(BUFFER(_(BINDING(_ARB)?|ARB))?|ELEMENT_LOCK_(COUNT_EXT|FIRST_EXT))|MBIENT(_AND_DIFFUSE)?|BGR(_EXT)?|SYNC_(READ_PIXELS_SGIX|MARKER_SGIX|HISTOGRAM_SGIX|TEX_IMAGE_SGIX|DRAW_PIXELS_SGIX)|ND(_(REVERSE|INVERTED))?|C(CUM(_(RED_BITS|GREEN_BITS|B(UFFER_BIT|LUE_BITS)|CLEAR_VALUE|ALPHA_BITS))?|TIVE_(STENCIL_FACE_EXT|TEXTURE(_ARB)?|UNIFORM(S|_MAX_LENGTH)|VERTEX_UNITS_ARB|ATTRIBUTE(S|_MAX_LENGTH)))|TT(RIB(_(STACK_DEPTH|ARRAY_(S(TRIDE_NV|IZE_NV)|TYPE_NV))|UTE_ARRAY_POINTER_NV)|ENUATION_EXT|ACHED_SHADERS)|DD(_(SIGNED(_(EXT|ARB))?|EXT))?|U(X_BUFFERS|TO_NORMAL)|VERAGE_(HP|EXT)|L(IASED_(POINT_SIZE_RANGE|LINE_WIDTH_RANGE)|PHA(_(M(IN_(SGIX|CLAMP_INGR)|AX_(SGIX|CLAMP_INGR))|B(I(TS|AS)|LEND_EQUATION_ATI)|SCALE|TEST(_(REF|FUNC))?))?|WAYS(_(SOFT_HINT_PGI|FAST_HINT_PGI))?|L(_ATTRIB_BITS|OW_DRAW_(MEM_HINT_PGI|OBJ_HINT_PGI|FRG_HINT_PGI|WIN_HINT_PGI)))))|UT_(R(GB(A)?|IGHT_BUTTON|ED)|G(REEN|AME_MODE_(REFRESH_RATE|HEIGHT|DISPLAY_CHANGED|P(IXEL_DEPTH|OSSIBLE)|WIDTH|ACTIVE))|XLIB_IMPLEMENTATION|M(IDDLE_BUTTON|ULTISAMPLE|ENU_(N(OT_IN_USE|UM_ITEMS)|IN_USE)|ACOSX_IMPLEMENTATION)|BLUE|S(CREEN_(HEIGHT(_MM)?|WIDTH(_MM)?)|T(ROKE_(ROMAN|MONO_ROMAN)|E(REO|NCIL))|INGLE)|H(IDDEN|AS_(MOUSE|SPACEBALL|TABLET|OVERLAY|DIAL_AND_BUTTON_BOX|JOYSTICK|KEYBOARD))|N(O(RMAL(_DAMAGED)?|T_VISIBLE)|UM_(MOUSE_BUTTONS|BUTTON_BOX_BUTTONS|SPACEBALL_BUTTONS|TABLET_BUTTONS|DIALS))|CURSOR_(RIGHT_(SIDE|ARROW)|BOTTOM_(RIGHT_CORNER|SIDE|LEFT_CORNER)|SPRAY|HELP|NONE|C(ROSSHAIR|YCLE)|T(OP_(RIGHT_CORNER|SIDE|LEFT_CORNER)|EXT)|IN(HERIT|FO)|DESTROY|UP_DOWN|FULL_CROSSHAIR|WAIT|LEFT_(RIGHT|SIDE|ARROW))|TRANSPARENT_INDEX|IN(IT_(DISPLAY_MODE|WINDOW_(X|HEIGHT|Y|WIDTH))|DEX)|O(VERLAY(_(DAMAGED|POSSIBLE))?|WNS_JOYSTICK)|D(ISPLAY_MODE_POSSIBLE|O(UBLE|WN)|E(PTH|VICE_(IGNORE_KEY_REPEAT|KEY_REPEAT)))|UP|JOYSTICK_(BUTTON(S|_(B|C|D|A))|POLL_RATE|AXES)|PARTIALLY_RETAINED|E(NTERED|LAPSED_TIME)|VI(SIBLE|DEO_RESIZE_(X(_DELTA)?|HEIGHT(_DELTA)?|Y(_DELTA)?|IN_USE|POSSIBLE|WIDTH(_DELTA)?))|KEY_(R(IGHT|EPEAT_(O(N|FF)|DEFAULT))|HOME|INSERT|DOWN|UP|PAGE_(DOWN|UP)|END|LEFT)|FULLY_(RETAINED|COVERED)|WIN(GDIAPI_DEFINED|DOW_(R(GBA|ED_SIZE)|GREEN_SIZE|X|B(UFFER_SIZE|LUE_SIZE)|STE(REO|NCIL_SIZE)|HEIGHT|Y|NUM_(SAMPLES|CHILDREN)|C(OLORMAP_SIZE|URSOR)|D(OUBLEBUFFER|EPTH_SIZE)|PARENT|FORMAT_ID|WIDTH|A(CCUM_(RED_SIZE|GREEN_SIZE|BLUE_SIZE|ALPHA_SIZE)|LPHA_SIZE)))|L(UMINANCE|EFT(_BUTTON)?|AYER_IN_USE)|A(C(CUM|TIVE_(SHIFT|CTRL|ALT))|PI(_VERSION|ENTRY_DEFINED)|LPHA))))\\b",
10
+ "name": "support.constant.open-gl"
11
+ },
12
+ {
13
+ "match": "\\b(gl(R(otate(d|f)|e(s(izeBuffersMESA|et(Minmax(EXT)?|Histogram(EXT)?))|nderMode|ct(s(v)?|i(v)?|d(v)?|f(v)?)|placementCode(u(s(SUN|vSUN)|i(SUN|Normal3fVertex3f(SUN|vSUN)|Color(3fVertex3f(SUN|vSUN)|4(ubVertex3f(SUN|vSUN)|fNormal3fVertex3f(SUN|vSUN)))|TexCoord2f(Normal3fVertex3f(SUN|vSUN)|Color4fNormal3fVertex3f(SUN|vSUN)|Vertex3f(SUN|vSUN))|vSUN|Vertex3f(SUN|vSUN))|b(SUN|vSUN))|PointerSUN)|questResidentProgramsNV|ferencePlaneSGIX|ad(Buffer|InstrumentsSGIX|Pixels))|asterPos(2(s(v)?|i(v)?|d(v)?|f(v)?)|3(s(v)?|i(v)?|d(v)?|f(v)?)|4(s(v)?|i(v)?|d(v)?|f(v)?)))|G(e(n(Buffers(ARB)?|SymbolsEXT|Textures(EXT)?|Programs(NV|ARB)|Vertex(ShadersEXT|ArraysAPPLE)|Queries(ARB)?|F(encesAPPLE|ragmentShadersEXT)|Lists|AsyncMarkersSGIX)|t(M(inmax(Parameter(iv(EXT)?|fv(EXT)?)|EXT)?|a(terial(iv|fv)|p(iv|dv|fv)))|B(ooleanv|uffer(SubData(ARB)?|P(ointerv(ARB)?|arameteriv(ARB)?)))|S(ha(der(iv|Source(ARB)?|InfoLog)|rpenTexFuncSGIS)|tring|eparableFilter(EXT)?)|H(istogram(Parameter(iv(EXT)?|fv(EXT)?)|EXT)?|andleARB)|C(o(nvolution(Parameter(iv(EXT)?|fv(EXT)?)|Filter(EXT)?)|lorTable(SGI|Parameter(iv(SGI|EXT)?|fv(SGI|EXT)?)|EXT)?|m(pressedTexImage(ARB)?|biner(StageParameterfvNV|InputParameter(ivNV|fvNV)|OutputParameter(ivNV|fvNV))))|lipPlane)|T(ex(Gen(iv|dv|fv)|Image|Parameter(iv|fv|PointervAPPLE)|Env(iv|fv)|FilterFuncSGIS|LevelParameter(iv|fv))|rackMatrixivNV)|I(n(strumentsSGIX|tegerv|variant(BooleanvEXT|IntegervEXT|FloatvEXT)|foLogARB)|mageTransformParameter(ivHP|fvHP))|ObjectParameter(ivARB|fvARB)|D(oublev|etailTexFuncSGIS)|Uniform(iv(ARB)?|fv(ARB)?|Location(ARB)?)|P(ixel(Map(u(sv|iv)|fv)|TexGenParameter(ivSGIS|fvSGIS))|o(interv(EXT)?|lygonStipple)|rogram(iv(NV|ARB)?|String(NV|ARB)|InfoLog|Parameter(dvNV|fvNV)|EnvParameter(dvARB|fvARB)|LocalParameter(dvARB|fvARB)))|Error|V(ertexAttrib(iv(NV|ARB)?|dv(NV|ARB)?|fv(NV|ARB)?|Pointerv(NV|ARB)?)|ariant(BooleanvEXT|IntegervEXT|PointervEXT|FloatvEXT))|Query(iv(ARB)?|Object(iv(ARB)?|uiv(ARB)?))|F(inalCombinerInputParameter(ivNV|fvNV)|ogFuncSGIS|loatv|ragment(Material(ivSGIX|fvSGIX)|Light(ivSGIX|fvSGIX)))|L(i(stParameter(ivSGIX|fvSGIX)|ght(iv|fv))|ocalConstant(BooleanvEXT|IntegervEXT|FloatvEXT))|A(ctive(Uniform(ARB)?|Attrib(ARB)?)|tt(ached(Shaders|ObjectsARB)|ribLocation(ARB)?))))|lobalAlphaFactor(sSUN|iSUN|dSUN|u(sSUN|iSUN|bSUN)|fSUN|bSUN))|M(inmax(EXT)?|ult(Matrix(d|f)|i(ModeDraw(ElementsIBM|ArraysIBM)|TexCoord(1(s(v(ARB)?|ARB)?|i(v(ARB)?|ARB)?|d(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?)|2(s(v(ARB)?|ARB)?|i(v(ARB)?|ARB)?|d(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?)|3(s(v(ARB)?|ARB)?|i(v(ARB)?|ARB)?|d(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?)|4(s(v(ARB)?|ARB)?|i(v(ARB)?|ARB)?|d(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?))|Draw(RangeElementArrayAPPLE|Element(s(EXT)?|ArrayAPPLE)|Arrays(EXT)?))|TransposeMatrix(d(ARB)?|f(ARB)?))|a(t(erial(i(v)?|f(v)?)|rixMode)|p(Grid(1(d|f)|2(d|f))|1(d|f)|Buffer(ARB)?|2(d|f)|VertexAttrib(1(dAPPLE|fAPPLE)|2(dAPPLE|fAPPLE)))))|B(i(n(ormal(3(s(vEXT|EXT)|i(vEXT|EXT)|d(vEXT|EXT)|f(vEXT|EXT)|b(vEXT|EXT))|PointerEXT)|d(MaterialParameterEXT|Buffer(ARB)?|Tex(GenParameterEXT|ture(UnitParameterEXT|EXT)?)|P(arameterEXT|rogram(NV|ARB))|Vertex(ShaderEXT|ArrayAPPLE)|FragmentShaderEXT|LightParameterEXT|AttribLocation(ARB)?))|tmap)|uffer(SubData(ARB)?|Data(ARB)?)|egin(VertexShaderEXT|Query(ARB)?|FragmentShaderEXT)?|lend(Color(EXT)?|Equation(Separate(EXT|ATI)|EXT)?|Func(Separate(EXT)?)?))|S(ha(de(Model|r(Source(ARB)?|Op(1EXT|2EXT|3EXT)))|rpenTexFuncSGIS)|c(issor|ale(d|f))|t(opInstrumentsSGIX|encil(Mask(Separate)?|Op(Separate(ATI)?)?|Func(Separate(ATI)?)?)|artInstrumentsSGIX)|priteParameter(i(SGIX|vSGIX)|f(SGIX|vSGIX))|e(condaryColor(3(s(v(EXT)?|EXT)?|i(v(EXT)?|EXT)?|d(v(EXT)?|EXT)?|u(s(v(EXT)?|EXT)?|i(v(EXT)?|EXT)?|b(v(EXT)?|EXT)?)|f(v(EXT)?|EXT)?|b(v(EXT)?|EXT)?)|Pointer(EXT|ListIBM)?)|t(InvariantEXT|F(enceAPPLE|ragmentShaderConstantEXT)|LocalConstantEXT)|parableFilter2D(EXT)?|lectBuffer)|w(izzleEXT|apAPPLE)|ample(Ma(sk(SGIS|EXT)|pEXT)|Coverage(ARB)?|Pa(ss(ARB)?|ttern(SGIS|EXT))))|Hi(stogram(EXT)?|nt(PGI)?)|N(ormal(3(s(v)?|i(v)?|d(v)?|f(v|Vertex3f(SUN|vSUN))?|b(v)?)|Pointer(vINTEL|EXT|ListIBM)?)|ewList)|C(o(nvolution(Parameter(i(v(EXT)?|EXT)?|f(v(EXT)?|EXT)?)|Filter(1D(EXT)?|2D(EXT)?))|py(Co(nvolutionFilter(1D(EXT)?|2D(EXT)?)|lor(SubTable(EXT)?|Table(SGI)?))|Tex(SubImage(1D(EXT)?|2D(EXT)?|3D(EXT)?)|Image(1D(EXT)?|2D(EXT)?))|Pixels)|lor(Ma(sk|terial)|SubTable(EXT)?|Table(SGI|Parameter(iv(SGI)?|fv(SGI)?)|EXT)?|3(s(v)?|i(v)?|d(v)?|u(s(v)?|i(v)?|b(v)?)|f(v|Vertex3f(SUN|vSUN))?|b(v)?)|4(s(v)?|i(v)?|d(v)?|u(s(v)?|i(v)?|b(v|Vertex(2f(SUN|vSUN)|3f(SUN|vSUN)))?)|f(Normal3fVertex3f(SUN|vSUN)|v)?|b(v)?)|Pointer(vINTEL|EXT|ListIBM)?|FragmentOp(1EXT|2EXT|3EXT))|m(p(ileShader(ARB)?|ressedTex(SubImage(1D(ARB)?|2D(ARB)?|3D(ARB)?)|Image(1D(ARB)?|2D(ARB)?|3D(ARB)?)))|biner(StageParameterfvNV|InputNV|OutputNV|Parameter(i(NV|vNV)|f(NV|vNV)))))|ull(Parameter(dvEXT|fvEXT)|Face)|l(i(pPlane|entActiveTexture(ARB)?)|ear(Stencil|Color|Index|Depth|Accum)?)|allList(s)?|reate(Shader(ObjectARB)?|Program(ObjectARB)?))|u(Get(String|NurbsProperty|TessProperty)|B(uild(1DMipmap(s(CTX)?|Levels(CTX)?)|2DMipmap(s(CTX)?|Levels(CTX)?)|3DMipmap(s(CTX)?|Levels(CTX)?))|egin(Surface|Curve|Trim|Polygon))|t(Re(shape(Func|Window)|portErrors|move(MenuItem|Overlay))|G(et(M(odifiers|enu)|Color|ProcAddress|Window)?|ameMode(Get|String))|M(o(tionFunc|useFunc)|enuStat(usFunc|eFunc)|ainLoop)|B(itmap(Character|Width|Length)|uttonBoxFunc)|S(how(Overlay|Window)|t(opVideoResizing|roke(Character|Width|Length))|olid(Sphere|C(one|ube)|T(orus|e(trahedron|apot))|Icosahedron|Octahedron|Dodecahedron)|urfaceTexture|p(ecial(UpFunc|Func)|aceball(RotateFunc|MotionFunc|ButtonFunc))|et(Menu|C(olor|ursor)|upVideoResizing|IconTitle|KeyRepeat|Window(Title)?)|wapBuffers)|Hide(Overlay|Window)|C(h(eckLoop|angeTo(MenuEntry|SubMenu))|opyColormap|reate(Menu|SubWindow|Window))|T(imerFunc|ablet(MotionFunc|ButtonFunc))|I(nit(Display(Mode|String)|Window(Size|Position))?|conifyWindow|dleFunc|gnoreKeyRepeat)|OverlayDisplayFunc|D(i(splayFunc|alsFunc)|e(stroy(Menu|Window)|tachMenu|viceGet))|UseLayer|JoystickFunc|P(o(s(t(Redisplay|OverlayRedisplay|Window(Redisplay|OverlayRedisplay))|itionWindow)|pWindow)|ushWindow|assiveMotionFunc)|E(stablishOverlay|nt(erGameMode|ryFunc)|xtensionSupported)|Vi(sibilityFunc|deo(Resize(Get)?|Pan))|Keyboard(UpFunc|Func)|F(orceJoystickFunc|ullScreen)|W(MCloseFunc|i(ndowStatusFunc|re(Sphere|C(one|ube)|T(orus|e(trahedron|apot))|Icosahedron|Octahedron|Dodecahedron))|arpPointer)|L(eaveGameMode|ayerGet)|A(ttachMenu|dd(MenuEntry|SubMenu)))|S(caleImage(CTX)?|phere)|N(urbs(Surface|C(urve|allback(Data(EXT)?)?)|Property)|e(w(NurbsRenderer(CTX)?|Tess(CTX)?|Quadric(CTX)?)|xtContour))|C(heckExtension|ylinder)|Tess(Begin(Contour|Polygon)|Normal|Callback|Property|End(Contour|Polygon)|Vertex)|Ortho2D(CTX)?|D(isk|elete(NurbsRenderer|Tess|Quadric))|UnProject(4)?|P(ickMatrix(CTX)?|erspective(CTX)?|wlCurve|artialDisk|roject)|E(nd(Surface|Curve|Trim|Polygon)|rrorString)|Quadric(Normals|Callback|Texture|Orientation|DrawStyle)|Lo(okAt(CTX)?|adSamplingMatrices))|T(e(st(ObjectAPPLE|FenceAPPLE)|x(Gen(i(v)?|d(v)?|f(v)?)|ture(RangeAPPLE|MaterialEXT|NormalEXT|ColorMaskSGIS|LightEXT)|SubImage(1D(EXT)?|2D(EXT)?|3D(EXT)?|4DSGIS)|Coord(1(s(v)?|i(v)?|d(v)?|f(v)?)|2(s(v)?|i(v)?|d(v)?|f(Normal3fVertex3f(SUN|vSUN)|Color(3fVertex3f(SUN|vSUN)|4(ubVertex3f(SUN|vSUN)|fNormal3fVertex3f(SUN|vSUN)))|v|Vertex3f(SUN|vSUN))?)|3(s(v)?|i(v)?|d(v)?|f(v)?)|4(s(v)?|i(v)?|d(v)?|f(Color4fNormal3fVertex4f(SUN|vSUN)|v|Vertex4f(SUN|vSUN))?)|Pointer(vINTEL|EXT|ListIBM)?)|Image(1D|2D|3D(EXT)?|4DSGIS)|Parameter(i(v)?|f(v)?)|Env(i(v)?|f(v)?)|FilterFuncSGIS))|a(ngent(3(s(vEXT|EXT)|i(vEXT|EXT)|d(vEXT|EXT)|f(vEXT|EXT)|b(vEXT|EXT))|PointerEXT)|gSampleBufferSGIX)|ra(nslate(d|f)|ckMatrixNV)|bufferMask3DFX)|I(s(Buffer(ARB)?|Shader|Texture(EXT)?|Program(NV|ARB)?|Enabled|V(ertexA(ttribEnabledAPPLE|rrayAPPLE)|ariantEnabledEXT)|Query(ARB)?|FenceAPPLE|List|AsyncMarkerSGIX)|n(s(trumentsBufferSGIX|ertComponentEXT)|terleavedArrays|itNames|dex(s(v)?|Ma(sk|terialEXT)|i(v)?|d(v)?|ub(v)?|f(v)?|Pointer(EXT|ListIBM)?|FuncEXT))|glooInterfaceSGIX|mageTransformParameter(i(HP|vHP)|f(HP|vHP)))|Ortho|D(isable(ClientState|V(ertexAttribA(PPLE|rray(ARB)?)|ariantClientStateEXT))?|e(ta(ch(Shader|ObjectARB)|ilTexFuncSGIS)|pth(Range|Mask|BoundsEXT|Func)|form(SGIX|ationMap3(dSGIX|fSGIX))|lete(Buffers(ARB)?|Shader|Textures(EXT)?|ObjectARB|Program(s(NV|ARB))?|Vertex(ShaderEXT|ArraysAPPLE)|Queries(ARB)?|F(encesAPPLE|ragmentShaderEXT)|Lists|AsyncMarkersSGIX))|raw(RangeElement(s(EXT)?|ArrayAPPLE)|Buffer(s(ARB)?)?|Pixels|Element(s|ArrayAPPLE)|Arrays(EXT)?))|U(seProgram(ObjectARB)?|n(iform(1(i(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?)|Matrix(2fv(ARB)?|3fv(ARB)?|4fv(ARB)?)|2(i(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?)|3(i(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?)|4(i(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?))|lockArraysEXT|mapBuffer(ARB)?))|P(ixel(Map(u(sv|iv)|fv)|Store(i|f)|T(exGen(SGIX|Parameter(i(SGIS|vSGIS)|f(SGIS|vSGIS)))|ransf(ormParameter(i(vEXT|EXT)|f(vEXT|EXT))|er(i|f)))|Zoom)|o(int(Size|Parameter(i(NV|v(NV)?)?|f(v(ARB)?|ARB)?))|p(Matrix|Name|ClientAttrib|Attrib)|l(ygon(Mode|Stipple|Offset(EXT)?)|l(InstrumentsSGIX|AsyncSGIX)))|NTriangles(iATI(X)?|fATI(X)?)|ush(Matrix|Name|ClientAttrib|Attrib)|assT(hrough|exCoordEXT)|r(ioritizeTextures(EXT)?|ogram(StringARB|Parameter(s4(dvNV|fvNV)|4(d(NV|vNV)|f(NV|vNV)))|EnvParameter4(d(vARB|ARB)|f(vARB|ARB))|LocalParameter4(d(vARB|ARB)|f(vARB|ARB)))))|E(n(d(VertexShaderEXT|Query(ARB)?|FragmentShaderEXT|List)?|able(ClientState|V(ertexAttribA(PPLE|rray(ARB)?)|ariantClientStateEXT))?)|dgeFlag(v|Pointer(EXT|ListIBM)?)?|val(Mesh(1|2)|Coord(1(d(v)?|f(v)?)|2(d(v)?|f(v)?))|Point(1|2))|lementPointerAPPLE|x(tractComponentEXT|ecuteProgramNV))|V(iewport|ertex(BlendARB|2(s(v)?|i(v)?|d(v)?|f(v)?)|3(s(v)?|i(v)?|d(v)?|f(v)?)|4(s(v)?|i(v)?|d(v)?|f(v)?)|Pointer(vINTEL|EXT|ListIBM)?|Weight(f(vEXT|EXT)|PointerEXT)|A(ttrib(s(1(svNV|dvNV|fvNV)|2(svNV|dvNV|fvNV)|3(svNV|dvNV|fvNV)|4(svNV|dvNV|ubvNV|fvNV))|1(s(NV|v(NV|ARB)?|ARB)?|d(NV|v(NV|ARB)?|ARB)?|f(NV|v(NV|ARB)?|ARB)?)|2(s(NV|v(NV|ARB)?|ARB)?|d(NV|v(NV|ARB)?|ARB)?|f(NV|v(NV|ARB)?|ARB)?)|3(s(NV|v(NV|ARB)?|ARB)?|d(NV|v(NV|ARB)?|ARB)?|f(NV|v(NV|ARB)?|ARB)?)|4(s(NV|v(NV|ARB)?|ARB)?|iv(ARB)?|d(NV|v(NV|ARB)?|ARB)?|N(sv(ARB)?|iv(ARB)?|u(sv(ARB)?|iv(ARB)?|b(v(ARB)?|ARB)?)|bv(ARB)?)|u(sv(ARB)?|iv(ARB)?|b(NV|v(NV|ARB)?))|f(NV|v(NV|ARB)?|ARB)?|bv(ARB)?)|Pointer(NV|ARB)?)|rray(Range(NV|APPLE)|ParameteriAPPLE)))|a(lidateProgram(ARB)?|riant(svEXT|ivEXT|dvEXT|u(svEXT|ivEXT|bvEXT)|fvEXT|PointerEXT|bvEXT)))|F(in(ish(RenderAPPLE|TextureSUNX|ObjectAPPLE|FenceAPPLE|AsyncSGIX)?|alCombinerInputNV)|og(i(v)?|Coord(d(v(EXT)?|EXT)?|f(v(EXT)?|EXT)?|Pointer(EXT|ListIBM)?)|f(v)?|FuncSGIS)|eedbackBuffer|lush(R(enderAPPLE|asterSGIX)|VertexArrayRange(NV|APPLE))?|r(ontFace|ustum|a(gment(Material(i(SGIX|vSGIX)|f(SGIX|vSGIX))|ColorMaterialSGIX|Light(Model(i(SGIX|vSGIX)|f(SGIX|vSGIX))|i(SGIX|vSGIX)|f(SGIX|vSGIX)))|meZoomSGIX)))|W(indowPos(2(s(v(ARB)?|ARB)?|i(v(ARB)?|ARB)?|d(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?)|3(s(v(ARB)?|ARB)?|i(v(ARB)?|ARB)?|d(v(ARB)?|ARB)?|f(v(ARB)?|ARB)?))|eight(svARB|ivARB|dvARB|u(svARB|ivARB|bvARB)|fvARB|PointerARB|bvARB)|riteMaskEXT)|L(i(st(Base|Parameter(i(SGIX|vSGIX)|f(SGIX|vSGIX)))|n(e(Stipple|Width)|kProgram(ARB)?)|ght(Model(i(v)?|f(v)?)|i(v)?|f(v)?|EnviSGIX))|o(ckArraysEXT|ad(Matrix(d|f)|Name|TransposeMatrix(d(ARB)?|f(ARB)?)|Identity(DeformationMapSGIX)?|ProgramNV)|gicOp))|A(syncMarkerSGIX|c(cum|tive(StencilFaceEXT|Texture(ARB)?))|ttach(Shader|ObjectARB)|pplyTextureEXT|lphaF(unc|ragmentOp(1EXT|2EXT|3EXT))|r(e(TexturesResident(EXT)?|ProgramsResidentNV)|rayElement(EXT)?))))\\b",
14
+ "name": "support.function.open-gl"
15
+ },
16
+ {
17
+ "comment": "for completions -- robbo",
18
+ "match": "\\b(gl|GL)\\w+",
19
+ "name": "meta.open-gl"
20
+ }
21
+ ],
22
+ "scopeName": "source.open-gl",
23
+ "uuid": "D5C78F2A-43D6-4598-BB92-1761EDF2C768"
24
+ }
@@ -0,0 +1,2184 @@
1
+ {
2
+ "comment": "TODO:\n\u2022 Try to improve parameters list syntax \u2013 scope numbers, \u2018=\u2019, \u2018,\u2019 and possibly be intelligent about entity ordering\n\u2022 Is meta.function-call the correct scope? I've added it to my theme but by default it's not highlighted",
3
+ "firstLineMatch": "^#!.*(?<!-)php[0-9]{0,1}\\b",
4
+ "foldingStartMarker": "(\/\\*|\\{\\s*$|<<<HTML)",
5
+ "foldingStopMarker": "(\\*\/|^\\s*\\}|^HTML;)",
6
+ "name": "PHP",
7
+ "patterns": [
8
+ {
9
+ "captures": {
10
+ "1": {
11
+ "name": "punctuation.whitespace.embedded.leading.php"
12
+ },
13
+ "2": {
14
+ "name": "source.php.embedded.line.empty.html"
15
+ },
16
+ "3": {
17
+ "name": "punctuation.section.embedded.begin.php"
18
+ },
19
+ "4": {
20
+ "name": "meta.consecutive-tags.php"
21
+ },
22
+ "5": {
23
+ "name": "source.php"
24
+ },
25
+ "6": {
26
+ "name": "punctuation.section.embedded.end.php"
27
+ },
28
+ "7": {
29
+ "name": "source.php"
30
+ },
31
+ "8": {
32
+ "name": "punctuation.whitespace.embedded.trailing.php"
33
+ }
34
+ },
35
+ "comment": "Matches empty tags.",
36
+ "match": "(?x)\n\t\t\t\t(^\\s*)?\t\t\t\t\t\t\t# 1 - Leading whitespace\n\t\t\t\t\t(\t\t\t\t\t\t\t# 2 - meta.embedded.line.empty.php\n\t\t\t\t\t\t(\t\t\t\t\t\t# 3 - Open Tag\n\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t((?<=\\?>)<)\t\t# 4 - Consecutive tags\n\t\t\t\t\t\t\t | <\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\\?(?i:php|=)?\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\t(\\s*)\t\t\t\t# 5 - Loneliness\n\t\t\t\t\t\t((\\?)>)\t\t\t\t\t# 6 - Close Tag\n\t\t\t\t\t\t\t\t\t\t\t\t# 7 - Scope ? as scope.php\n\t\t\t\t\t)\n\t\t\t\t(\n\t\t\t\t\t\\1\t\t\t\t\t\t\t# Match nothing if there was no\n\t\t\t\t\t\t\t\t\t\t\t\t# leading whitespace...\n\t\t\t\t | (\\s*$\\n)?\t\t\t\t\t# or match trailing whitespace.\n\t\t\t\t)\n\t\t\t"
37
+ },
38
+ {
39
+ "begin": "^\\s*(?=<\\?)",
40
+ "beginCaptures": {
41
+ "0": {
42
+ "name": "punctuation.whitespace.embedded.leading.php"
43
+ }
44
+ },
45
+ "comment": "Catches tags with preceeding whitespace.",
46
+ "end": "(?<=\\?>)(\\s*$\\n)?",
47
+ "endCaptures": {
48
+ "0": {
49
+ "name": "punctuation.whitespace.embedded.trailing.php"
50
+ }
51
+ },
52
+ "patterns": [
53
+ {
54
+ "begin": "<\\?(?i:php|=)?",
55
+ "beginCaptures": {
56
+ "0": {
57
+ "name": "punctuation.section.embedded.begin.php"
58
+ }
59
+ },
60
+ "end": "(\\?)>",
61
+ "endCaptures": {
62
+ "0": {
63
+ "name": "punctuation.section.embedded.end.php"
64
+ },
65
+ "1": {
66
+ "name": "source.php"
67
+ }
68
+ },
69
+ "name": "source.php.embedded.block.html",
70
+ "patterns": [
71
+ {
72
+ "include": "#language"
73
+ }
74
+ ]
75
+ }
76
+ ]
77
+ },
78
+ {
79
+ "begin": "(((?<=\\?>)<)|<)\\?(?i:php|=)?",
80
+ "beginCaptures": {
81
+ "0": {
82
+ "name": "punctuation.section.embedded.begin.php"
83
+ },
84
+ "2": {
85
+ "name": "meta.consecutive-tags.php"
86
+ }
87
+ },
88
+ "comment": "Catches the remainder.",
89
+ "end": "(\\?)>",
90
+ "endCaptures": {
91
+ "0": {
92
+ "name": "punctuation.section.embedded.end.php"
93
+ },
94
+ "1": {
95
+ "name": "source.php"
96
+ }
97
+ },
98
+ "name": "source.php.embedded.line.html",
99
+ "patterns": [
100
+ {
101
+ "include": "#language"
102
+ }
103
+ ]
104
+ }
105
+ ],
106
+ "repository": {
107
+ "constants": {
108
+ "patterns": [
109
+ {
110
+ "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|FUNCTION|CLASS|METHOD|LINE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b",
111
+ "name": "constant.language.php"
112
+ },
113
+ {
114
+ "match": "\\b(DEFAULT_INCLUDE_PATH|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|(RECOVERABLE_)?ERROR|NOTICE|PARSE|STRICT|USER_(ERROR|NOTICE|WARNING)|WARNING)|PEAR_(EXTENSION_DIR|INSTALL_DIR)|PHP_(BINDIR|CONFIG_FILE_PATH|DATADIR|E(OL|XTENSION_DIR)|L(IBDIR|OCALSTATEDIR)|O(S|UTPUT_HANDLER_CONT|UTPUT_HANDLER_END|UTPUT_HANDLER_START)|SYSCONFDIR|VERSION))\\b",
115
+ "name": "support.constant.core.php"
116
+ },
117
+ {
118
+ "match": "\\b(A(B(DAY_([1-7])|MON_([0-9]{1,2}))|LT_DIGITS|M_STR|SSERT_(ACTIVE|BAIL|CALLBACK|QUIET_EVAL|WARNING))|C(ASE_(LOWER|UPPER)|HAR_MAX|O(DESET|NNECTION_(ABORTED|NORMAL|TIMEOUT)|UNT_(NORMAL|RECURSIVE))|REDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)|RNCYSTR|RYPT_(BLOWFISH|EXT_DES|MD5|SALT_LENGTH|STD_DES)|URRENCY_SYMBOL)|D(AY_([1-7])|ECIMAL_POINT|IRECTORY_SEPARATOR|_(FMT|T_FMT))|E(NT_(COMPAT|NOQUOTES|QUOTES)|RA(|_D_FMT|_D_T_FMT|_T_FMT|_YEAR)|XTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|SKIP))|FRAC_DIGITS|GROUPING|HTML_(ENTITIES|SPECIALCHARS)|IN(FO_(ALL|CONFIGURATION|CREDITS|ENVIRONMENT|GENERAL|LICENSE|MODULES|VARIABLES)|I_(ALL|PERDIR|SYSTEM|USER)|T_(CURR_SYMBOL|FRAC_DIGITS))|L(C_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|O(CK_(EX|NB|SH|UN)|G_(ALERT|AUTH(|PRIV)|CONS|CRIT|CRON|DAEMON|DEBUG|EMERG|ERR|INFO|KERN|LOCAL([0-7])|LPR|MAIL|NDELAY|NEWS|NOTICE|NOWAIT|ODELAY|PERROR|PID|SYSLOG|USER|UUCP|WARNING)))|M(ON_([0-9]{1,2}|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)|YSQL_(ASSOC|BOTH|NUM)|_(1_PI|2_(PI|SQRTPI)|E|L(N10|N2|OG(10E|2E))|PI(|_2|_4)|SQRT1_2|SQRT2))|N(EGATIVE_SIGN|O(EXPR|STR)|_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN))|P(ATH(INFO_(BASENAME|DIRNAME|EXTENSION|FILENAME)|_SEPARATOR)|M_STR|OSITIVE_SIGN|_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN))|RADIXCHAR|S(EEK_(CUR|END|SET)|ORT_(ASC|DESC|NUMERIC|REGULAR|STRING)|TR_PAD_(BOTH|LEFT|RIGHT))|T(HOUS(ANDS_SEP|EP)|_(FMT(|_AMPM)))|YES(EXPR|STR))\\b",
119
+ "name": "support.constant.std.php"
120
+ },
121
+ {
122
+ "comment": "In PHP, any identifier which is not a variable is taken to be a constant.\n\t\t\t\tHowever, if there is no constant defined with the given name then a notice\n\t\t\t\tis generated and the constant is assumed to have the value of its name.",
123
+ "match": "[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*",
124
+ "name": "constant.other.php"
125
+ }
126
+ ]
127
+ },
128
+ "function-call": {
129
+ "match": "[A-Za-z_][A-Za-z_0-9]*(?=\\s*\\()",
130
+ "name": "meta.function-call.php"
131
+ },
132
+ "instantiation": {
133
+ "captures": {
134
+ "1": {
135
+ "name": "keyword.other.new.php"
136
+ },
137
+ "2": {
138
+ "name": "variable.other.php"
139
+ },
140
+ "3": {
141
+ "name": "support.class.php"
142
+ },
143
+ "4": {
144
+ "name": "support.class.php"
145
+ }
146
+ },
147
+ "match": "(?i)\\b(new)\\s+(?:(\\$[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)|(\\w+))|(\\w+)(?=::)"
148
+ },
149
+ "interpolation": {
150
+ "comment": "http:\/\/www.php.net\/manual\/en\/language.types.string.php#language.types.string.parsing",
151
+ "patterns": [
152
+ {
153
+ "match": "\\\\[0-7]{1,3}",
154
+ "name": "constant.numeric.octal.php"
155
+ },
156
+ {
157
+ "match": "\\\\x[0-9A-Fa-f]{1,2}",
158
+ "name": "constant.numeric.hex.php"
159
+ },
160
+ {
161
+ "match": "\\\\[nrt\\\\\\$\\\"]",
162
+ "name": "constant.character.escape.php"
163
+ },
164
+ {
165
+ "captures": {
166
+ "1": {
167
+ "name": "variable.other.php"
168
+ },
169
+ "2": {
170
+ "name": "punctuation.definition.variable.php"
171
+ },
172
+ "4": {
173
+ "name": "punctuation.definition.variable.php"
174
+ }
175
+ },
176
+ "comment": "Simple syntax with braces: \"foo${bar}baz\"",
177
+ "match": "(?x)\n\t\t\t\t\t\t((\\$\\{)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(\\}))\n\t\t\t\t\t\t"
178
+ },
179
+ {
180
+ "captures": {
181
+ "1": {
182
+ "name": "variable.other.php"
183
+ },
184
+ "10": {
185
+ "name": "punctuation.definition.variable.php"
186
+ },
187
+ "11": {
188
+ "name": "string.unquoted.index.php"
189
+ },
190
+ "12": {
191
+ "name": "invalid.illegal.invalid-simple-array-index.php"
192
+ },
193
+ "13": {
194
+ "name": "keyword.operator.index-end.php"
195
+ },
196
+ "2": {
197
+ "name": "punctuation.definition.variable.php"
198
+ },
199
+ "4": {
200
+ "name": "keyword.operator.class.php"
201
+ },
202
+ "5": {
203
+ "name": "variable.other.property.php"
204
+ },
205
+ "6": {
206
+ "name": "invalid.illegal.php"
207
+ },
208
+ "7": {
209
+ "name": "keyword.operator.index-start.php"
210
+ },
211
+ "8": {
212
+ "name": "constant.numeric.index.php"
213
+ },
214
+ "9": {
215
+ "name": "variable.other.index.php"
216
+ }
217
+ },
218
+ "comment": "Simple syntax: $foo, $foo[0], $foo[$bar], $foo->bar",
219
+ "match": "(?x)\n\t\t\t\t\t\t((\\$)(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*))\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t(->)\n\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t(\\g<name>)\n\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t(\\$\\g<name>)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t(\\[)\n\t\t\t\t\t\t\t\t(?:(\\d+)|((\\$)\\g<name>)|(\\w+)|(.*?))\n\t\t\t\t\t\t\t(\\])\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t"
220
+ },
221
+ {
222
+ "begin": "(?=(?<regex>(?#simple syntax)\\$(?<name>[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?:\\[(?<index>[a-zA-Z0-9_\\x{7f}-\\x{ff}]+|\\$\\g<name>)\\]|->\\g<name>(\\(.*?\\))?)?|(?#simple syntax with braces)\\$\\{(?:\\g<name>(?<indices>\\[(?:\\g<index>|'(?:\\\\.|[^'\\\\])*'|\"(?:\\g<regex>|\\\\.|[^\"\\\\])*\")\\])?|\\g<complex>|\\$\\{\\g<complex>\\})\\}|(?#complex syntax)\\{(?<complex>\\$(?<segment>\\g<name>(\\g<indices>*|\\(.*?\\))?)(?:->\\g<segment>)*|\\$\\g<complex>|\\$\\{\\g<complex>\\})\\}))\\{",
223
+ "beginCaptures": {
224
+ "0": {
225
+ "name": "punctuation.definition.variable.php"
226
+ }
227
+ },
228
+ "comment": "Complex syntax. It seems this now supports complex method calls, as of PHP5.\n\t\t\t\t\t\t\t I've put wildcards into the function call parameter lists to handle this, but this may break the pattern.\n\t\t\t\t\t\t\t It also might be better to disable it as I shouldn't imagine it's used often (hopefully) and it may confuse PHP4 users.",
229
+ "end": "\\}",
230
+ "endCaptures": {
231
+ "0": {
232
+ "name": "punctuation.definition.variable.php"
233
+ }
234
+ },
235
+ "patterns": [
236
+ {
237
+ "include": "#function-call"
238
+ },
239
+ {
240
+ "include": "#var_basic"
241
+ },
242
+ {
243
+ "include": "#object"
244
+ },
245
+ {
246
+ "include": "#numbers"
247
+ },
248
+ {
249
+ "match": "\\[",
250
+ "name": "keyword.operator.index-start.php"
251
+ },
252
+ {
253
+ "match": "\\]",
254
+ "name": "keyword.operator.index-end.php"
255
+ }
256
+ ]
257
+ }
258
+ ]
259
+ },
260
+ "language": {
261
+ "patterns": [
262
+ {
263
+ "begin": "(?=<<<\\s*(HTML|XML|SQL|JAVASCRIPT|CSS)\\s*$)",
264
+ "end": "(?!<?<<\\s*(HTML|XML|SQL|JAVASCRIPT|CSS)\\s*$)",
265
+ "name": "string.unquoted.heredoc.php",
266
+ "patterns": [
267
+ {
268
+ "begin": "(<<<)\\s*(HTML)\\s*$\\n?",
269
+ "beginCaptures": {
270
+ "0": {
271
+ "name": "punctuation.section.embedded.begin.php"
272
+ },
273
+ "1": {
274
+ "name": "punctuation.definition.string.php"
275
+ },
276
+ "2": {
277
+ "name": "keyword.operator.heredoc.php"
278
+ }
279
+ },
280
+ "contentName": "text.html",
281
+ "end": "^(HTML)(;?)$\\n?",
282
+ "endCaptures": {
283
+ "0": {
284
+ "name": "punctuation.section.embedded.end.php"
285
+ },
286
+ "1": {
287
+ "name": "keyword.operator.heredoc.php"
288
+ },
289
+ "2": {
290
+ "name": "punctuation.definition.string.php"
291
+ }
292
+ },
293
+ "name": "meta.embedded.html",
294
+ "patterns": [
295
+ {
296
+ "include": "text.html.basic"
297
+ },
298
+ {
299
+ "include": "#interpolation"
300
+ }
301
+ ]
302
+ },
303
+ {
304
+ "begin": "(<<<)\\s*(XML)\\s*$\\n?",
305
+ "beginCaptures": {
306
+ "0": {
307
+ "name": "punctuation.section.embedded.begin.php"
308
+ },
309
+ "1": {
310
+ "name": "punctuation.definition.string.php"
311
+ },
312
+ "2": {
313
+ "name": "keyword.operator.heredoc.php"
314
+ }
315
+ },
316
+ "contentName": "text.xml",
317
+ "end": "^(XML)(;?)$\\n?",
318
+ "endCaptures": {
319
+ "0": {
320
+ "name": "punctuation.section.embedded.end.php"
321
+ },
322
+ "1": {
323
+ "name": "keyword.operator.heredoc.php"
324
+ },
325
+ "2": {
326
+ "name": "punctuation.definition.string.php"
327
+ }
328
+ },
329
+ "name": "meta.embedded.xml",
330
+ "patterns": [
331
+ {
332
+ "include": "text.xml"
333
+ },
334
+ {
335
+ "include": "#interpolation"
336
+ }
337
+ ]
338
+ },
339
+ {
340
+ "begin": "(<<<)\\s*(SQL)\\s*$\\n?",
341
+ "beginCaptures": {
342
+ "0": {
343
+ "name": "punctuation.section.embedded.begin.php"
344
+ },
345
+ "1": {
346
+ "name": "punctuation.definition.string.php"
347
+ },
348
+ "2": {
349
+ "name": "keyword.operator.heredoc.php"
350
+ }
351
+ },
352
+ "contentName": "source.sql",
353
+ "end": "^(SQL)(;?)$\\n?",
354
+ "endCaptures": {
355
+ "0": {
356
+ "name": "punctuation.section.embedded.end.php"
357
+ },
358
+ "1": {
359
+ "name": "keyword.operator.heredoc.php"
360
+ },
361
+ "2": {
362
+ "name": "punctuation.definition.string.php"
363
+ }
364
+ },
365
+ "name": "meta.embedded.sql",
366
+ "patterns": [
367
+ {
368
+ "include": "source.sql"
369
+ },
370
+ {
371
+ "include": "#interpolation"
372
+ }
373
+ ]
374
+ },
375
+ {
376
+ "begin": "(<<<)\\s*(JAVASCRIPT)\\s*$\\n?",
377
+ "beginCaptures": {
378
+ "0": {
379
+ "name": "punctuation.section.embedded.begin.php"
380
+ },
381
+ "1": {
382
+ "name": "punctuation.definition.string.php"
383
+ },
384
+ "2": {
385
+ "name": "keyword.operator.heredoc.php"
386
+ }
387
+ },
388
+ "contentName": "source.js",
389
+ "end": "^(JAVASCRIPT)(;?)$\\n?",
390
+ "endCaptures": {
391
+ "0": {
392
+ "name": "punctuation.section.embedded.end.php"
393
+ },
394
+ "1": {
395
+ "name": "keyword.operator.heredoc.php"
396
+ },
397
+ "2": {
398
+ "name": "punctuation.definition.string.php"
399
+ }
400
+ },
401
+ "name": "meta.embedded.js",
402
+ "patterns": [
403
+ {
404
+ "include": "source.js"
405
+ },
406
+ {
407
+ "include": "#interpolation"
408
+ }
409
+ ]
410
+ },
411
+ {
412
+ "begin": "(<<<)\\s*(CSS)\\s*$\\n?",
413
+ "beginCaptures": {
414
+ "0": {
415
+ "name": "punctuation.section.embedded.begin.php"
416
+ },
417
+ "1": {
418
+ "name": "punctuation.definition.string.php"
419
+ },
420
+ "2": {
421
+ "name": "keyword.operator.heredoc.php"
422
+ }
423
+ },
424
+ "contentName": "source.css",
425
+ "end": "^(CSS)(;?)$\\n?",
426
+ "endCaptures": {
427
+ "0": {
428
+ "name": "punctuation.section.embedded.end.php"
429
+ },
430
+ "1": {
431
+ "name": "keyword.operator.heredoc.php"
432
+ },
433
+ "2": {
434
+ "name": "punctuation.definition.string.php"
435
+ }
436
+ },
437
+ "name": "meta.embedded.css",
438
+ "patterns": [
439
+ {
440
+ "include": "source.css"
441
+ },
442
+ {
443
+ "include": "#interpolation"
444
+ }
445
+ ]
446
+ }
447
+ ]
448
+ },
449
+ {
450
+ "begin": "\/\\*\\*(?:#@\\+)?\\s*$",
451
+ "captures": {
452
+ "0": {
453
+ "name": "punctuation.definition.comment.php"
454
+ }
455
+ },
456
+ "comment": "This now only highlights a docblock if the first line contains only \/**\n\t\t\t\t\t\t\t\t- this is to stop highlighting everything as invalid when people do comment banners with \/******** ...\n\t\t\t\t\t\t\t\t- Now matches \/**#@+ too - used for docblock templates: http:\/\/manual.phpdoc.org\/HTMLframesConverter\/default\/phpDocumentor\/tutorial_phpDocumentor.howto.pkg.html#basics.docblocktemplate",
457
+ "end": "\\*\/",
458
+ "name": "comment.block.documentation.phpdoc.php",
459
+ "patterns": [
460
+ {
461
+ "include": "#php_doc"
462
+ }
463
+ ]
464
+ },
465
+ {
466
+ "begin": "\/\\*",
467
+ "captures": {
468
+ "0": {
469
+ "name": "punctuation.definition.comment.php"
470
+ }
471
+ },
472
+ "end": "\\*\/",
473
+ "name": "comment.block.php"
474
+ },
475
+ {
476
+ "captures": {
477
+ "1": {
478
+ "name": "punctuation.definition.comment.php"
479
+ }
480
+ },
481
+ "match": "(\/\/).*?($\\n?|(?=\\?>))",
482
+ "name": "comment.line.double-slash.php"
483
+ },
484
+ {
485
+ "captures": {
486
+ "1": {
487
+ "name": "punctuation.definition.comment.php"
488
+ }
489
+ },
490
+ "match": "(#).*?($\\n?|(?=\\?>))",
491
+ "name": "comment.line.number-sign.php"
492
+ },
493
+ {
494
+ "begin": "^(?i)\\s*(interface)\\s+([a-z0-9_]+)\\s*(extends)?\\s*",
495
+ "beginCaptures": {
496
+ "1": {
497
+ "name": "storage.type.interface.php"
498
+ },
499
+ "2": {
500
+ "name": "entity.name.type.interface.php"
501
+ },
502
+ "3": {
503
+ "name": "storage.modifier.extends.php"
504
+ }
505
+ },
506
+ "end": "$",
507
+ "name": "meta.interface.php",
508
+ "patterns": [
509
+ {
510
+ "match": "[a-zA-Z0-9_]+",
511
+ "name": "entity.other.inherited-class.php"
512
+ }
513
+ ]
514
+ },
515
+ {
516
+ "begin": "(?i)^\\s*(abstract|final)?\\s*(class)\\s+([a-z0-9_]+)\\s*",
517
+ "beginCaptures": {
518
+ "1": {
519
+ "name": "storage.modifier.abstract.php"
520
+ },
521
+ "2": {
522
+ "name": "storage.type.class.php"
523
+ },
524
+ "3": {
525
+ "name": "entity.name.type.class.php"
526
+ }
527
+ },
528
+ "end": "$",
529
+ "name": "meta.class.php",
530
+ "patterns": [
531
+ {
532
+ "captures": {
533
+ "1": {
534
+ "name": "storage.modifier.extends.php"
535
+ },
536
+ "2": {
537
+ "name": "entity.other.inherited-class.php"
538
+ }
539
+ },
540
+ "match": "(?i:(extends))\\s+([a-zA-Z0-9_]+)\\s*"
541
+ },
542
+ {
543
+ "begin": "(?i:(implements))\\s+([a-zA-Z0-9_]+)\\s*",
544
+ "beginCaptures": {
545
+ "1": {
546
+ "name": "storage.modifier.implements.php"
547
+ },
548
+ "2": {
549
+ "name": "support.class.implements.php"
550
+ }
551
+ },
552
+ "end": "(?=\\s*\\b(?i:(extends)))|$",
553
+ "patterns": [
554
+ {
555
+ "captures": {
556
+ "1": {
557
+ "name": "support.class.implements.php"
558
+ }
559
+ },
560
+ "match": ",\\s*([a-zA-Z0-9_]+)\\s*"
561
+ }
562
+ ]
563
+ }
564
+ ]
565
+ },
566
+ {
567
+ "match": "\\b(break|c(ase|ontinue)|d(e(clare|fault)|ie|o)|e(lse(if)?|nd(declare|for(each)?|if|switch|while)|xit)|for(each)?|if|return|switch|use|while)\\b",
568
+ "name": "keyword.control.php"
569
+ },
570
+ {
571
+ "begin": "(?i)\\b((?:require|include)(?:_once)?)\\b\\s*",
572
+ "beginCaptures": {
573
+ "1": {
574
+ "name": "keyword.control.import.include.php"
575
+ }
576
+ },
577
+ "end": "(?=\\s|;|$)",
578
+ "name": "meta.include.php",
579
+ "patterns": [
580
+ {
581
+ "include": "#language"
582
+ }
583
+ ]
584
+ },
585
+ {
586
+ "captures": {
587
+ "1": {
588
+ "name": "keyword.control.exception.php"
589
+ },
590
+ "2": {
591
+ "name": "support.class.php"
592
+ },
593
+ "3": {
594
+ "name": "variable.other.php"
595
+ },
596
+ "4": {
597
+ "name": "punctuation.definition.variable.php"
598
+ }
599
+ },
600
+ "match": "\\b(catch)\\b\\s*\\(\\s*([A-Za-z_][A-Za-z_0-9]*)\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*\\)",
601
+ "name": "meta.catch.php"
602
+ },
603
+ {
604
+ "match": "\\b(catch|try|throw|exception)\\b",
605
+ "name": "keyword.control.exception.php"
606
+ },
607
+ {
608
+ "begin": "(?:^\\s*)((?:(?:final|abstract|public|private|protected|static)\\s+)*)(function)(?:\\s+|(\\s*&\\s*))(?:(__(?:call|(?:con|de)struct|get|(?:is|un)?set|tostring|clone|set_state|sleep|wakeup|autoload))|([a-zA-Z0-9_]+))\\s*(\\()",
609
+ "beginCaptures": {
610
+ "1": {
611
+ "name": "storage.modifier.php"
612
+ },
613
+ "2": {
614
+ "name": "storage.type.function.php"
615
+ },
616
+ "3": {
617
+ "name": "storage.modifier.reference.php"
618
+ },
619
+ "4": {
620
+ "name": "support.function.magic.php"
621
+ },
622
+ "5": {
623
+ "name": "entity.name.function.php"
624
+ },
625
+ "6": {
626
+ "name": "punctuation.definition.parameters.begin.php"
627
+ }
628
+ },
629
+ "contentName": "meta.function.arguments.php",
630
+ "end": "\\)",
631
+ "endCaptures": {
632
+ "1": {
633
+ "name": "punctuation.definition.parameters.end.php"
634
+ }
635
+ },
636
+ "name": "meta.function.php",
637
+ "patterns": [
638
+ {
639
+ "begin": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\\s*(array)\\s*(\\()\n\t\t\t\t\t\t\t\t\t",
640
+ "beginCaptures": {
641
+ "1": {
642
+ "name": "storage.type.php"
643
+ },
644
+ "2": {
645
+ "name": "storage.modifier.php"
646
+ },
647
+ "3": {
648
+ "name": "variable.other.php"
649
+ },
650
+ "4": {
651
+ "name": "punctuation.definition.variable.php"
652
+ },
653
+ "5": {
654
+ "name": "keyword.operator.assignment.php"
655
+ },
656
+ "6": {
657
+ "name": "support.function.construct.php"
658
+ },
659
+ "7": {
660
+ "name": "punctuation.definition.array.begin.php"
661
+ }
662
+ },
663
+ "contentName": "meta.array.php",
664
+ "end": "\\)",
665
+ "endCaptures": {
666
+ "0": {
667
+ "name": "punctuation.definition.array.end.php"
668
+ }
669
+ },
670
+ "name": "meta.function.argument.array.php",
671
+ "patterns": [
672
+ {
673
+ "include": "#strings"
674
+ },
675
+ {
676
+ "include": "#numbers"
677
+ }
678
+ ]
679
+ },
680
+ {
681
+ "captures": {
682
+ "1": {
683
+ "name": "storage.type.php"
684
+ },
685
+ "2": {
686
+ "name": "storage.modifier.php"
687
+ },
688
+ "3": {
689
+ "name": "variable.other.php"
690
+ },
691
+ "4": {
692
+ "name": "punctuation.definition.variable.php"
693
+ },
694
+ "5": {
695
+ "name": "keyword.operator.assignment.php"
696
+ },
697
+ "6": {
698
+ "name": "constant.language.php"
699
+ },
700
+ "7": {
701
+ "name": "invalid.illegal.non-null-typehinted.php"
702
+ }
703
+ },
704
+ "match": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*(array) # Typehint\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\t\t\t\t\t\t\t\t\t\t\t(NULL)\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\S.*?)\n\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t\t\t\t\t",
705
+ "name": "meta.function.argument.array.php"
706
+ },
707
+ {
708
+ "captures": {
709
+ "1": {
710
+ "name": "support.class.php"
711
+ },
712
+ "2": {
713
+ "name": "storage.modifier.php"
714
+ },
715
+ "3": {
716
+ "name": "variable.other.php"
717
+ },
718
+ "4": {
719
+ "name": "punctuation.definition.variable.php"
720
+ },
721
+ "5": {
722
+ "name": "keyword.operator.assignment.php"
723
+ },
724
+ "6": {
725
+ "name": "constant.language.php"
726
+ },
727
+ "7": {
728
+ "name": "invalid.illegal.non-null-typehinted.php"
729
+ }
730
+ },
731
+ "match": "(?x)\n\t\t\t\t\t\t\t\t\t\\s*([A-Za-z_][A-Za-z_0-9]*) # Typehinted class name\n\t\t\t\t\t\t\t\t\t\\s*(&)? \t\t\t\t\t# Reference\n\t\t\t\t\t\t\t\t\t\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*) # The variable name\n\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\\s*(=)\t# A default value\n\t\t\t\t\t\t\t\t\t\t\\s*(?i:\n\t\t\t\t\t\t\t\t\t\t\t(NULL)\n\t\t\t\t\t\t\t\t\t\t\t|\n\t\t\t\t\t\t\t\t\t\t\t(\\S.*?)\n\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t)?\n\t\t\t\t\t\t\t\t\t\\s*(?=,|\\)) # A closing parentheses (end of argument list) or a comma\n\t\t\t\t\t\t\t\t\t",
732
+ "name": "meta.function.argument.typehinted.php"
733
+ },
734
+ {
735
+ "captures": {
736
+ "1": {
737
+ "name": "storage.modifier.php"
738
+ },
739
+ "2": {
740
+ "name": "variable.other.php"
741
+ },
742
+ "3": {
743
+ "name": "punctuation.definition.variable.php"
744
+ }
745
+ },
746
+ "match": "(\\s*&)?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\\s*(?=,|\\))",
747
+ "name": "meta.function.argument.no-default.php"
748
+ },
749
+ {
750
+ "begin": "(\\s*&)?\\s*((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)(?:\\s*(=)\\s*)\\s*",
751
+ "captures": {
752
+ "1": {
753
+ "name": "storage.modifier.php"
754
+ },
755
+ "2": {
756
+ "name": "variable.other.php"
757
+ },
758
+ "3": {
759
+ "name": "punctuation.definition.variable.php"
760
+ },
761
+ "4": {
762
+ "name": "keyword.operator.assignment.php"
763
+ }
764
+ },
765
+ "end": "(?=,|\\))",
766
+ "name": "meta.function.argument.default.php",
767
+ "patterns": [
768
+ {
769
+ "include": "#parameter-default-types"
770
+ }
771
+ ]
772
+ },
773
+ {
774
+ "begin": "\/\\*",
775
+ "captures": {
776
+ "0": {
777
+ "name": "punctuation.definition.comment.php"
778
+ }
779
+ },
780
+ "end": "\\*\/",
781
+ "name": "comment.block.php"
782
+ }
783
+ ]
784
+ },
785
+ {
786
+ "match": "(?i)\\b(real|double|float|int(eger)?|bool(ean)?|string|class|clone|var|function|interface|parent|self|object)\\b",
787
+ "name": "storage.type.php"
788
+ },
789
+ {
790
+ "match": "(?i)\\b(global|abstract|const|extends|implements|final|p(r(ivate|otected)|ublic)|static)\\b",
791
+ "name": "storage.modifier.php"
792
+ },
793
+ {
794
+ "include": "#object"
795
+ },
796
+ {
797
+ "captures": {
798
+ "1": {
799
+ "name": "keyword.operator.class.php"
800
+ },
801
+ "2": {
802
+ "name": "meta.function-call.static.php"
803
+ },
804
+ "3": {
805
+ "name": "variable.other.class.php"
806
+ },
807
+ "4": {
808
+ "name": "punctuation.definition.variable.php"
809
+ },
810
+ "5": {
811
+ "name": "constant.other.class.php"
812
+ }
813
+ },
814
+ "match": "(?x)(::)\n (?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t |\n \t\t\t\t ([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?"
815
+ },
816
+ {
817
+ "include": "#support"
818
+ },
819
+ {
820
+ "begin": "(<<<)\\s*([a-zA-Z_]+[a-zA-Z0-9_]*)",
821
+ "beginCaptures": {
822
+ "1": {
823
+ "name": "punctuation.definition.string.php"
824
+ },
825
+ "2": {
826
+ "name": "keyword.operator.heredoc.php"
827
+ }
828
+ },
829
+ "end": "^(\\2)(;?)$",
830
+ "endCaptures": {
831
+ "1": {
832
+ "name": "keyword.operator.heredoc.php"
833
+ },
834
+ "2": {
835
+ "name": "punctuation.definition.string.php"
836
+ }
837
+ },
838
+ "name": "string.unquoted.heredoc.php",
839
+ "patterns": [
840
+ {
841
+ "include": "#interpolation"
842
+ }
843
+ ]
844
+ },
845
+ {
846
+ "match": "=>",
847
+ "name": "keyword.operator.key.php"
848
+ },
849
+ {
850
+ "match": "&(?=\\s*(\\$|new|[A-Za-z_][A-Za-z_0-9]+(?=\\s*\\()))",
851
+ "name": "storage.modifier.reference.php"
852
+ },
853
+ {
854
+ "match": ";",
855
+ "name": "punctuation.terminator.expression.php"
856
+ },
857
+ {
858
+ "match": "(@)",
859
+ "name": "keyword.operator.error-control.php"
860
+ },
861
+ {
862
+ "match": "(\\-\\-|\\+\\+)",
863
+ "name": "keyword.operator.increment-decrement.php"
864
+ },
865
+ {
866
+ "match": "(\\-|\\+|\\*|\/|%)",
867
+ "name": "keyword.operator.arithmetic.php"
868
+ },
869
+ {
870
+ "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b",
871
+ "name": "keyword.operator.logical.php"
872
+ },
873
+ {
874
+ "match": "<<|>>|~|\\^|&|\\|",
875
+ "name": "keyword.operator.bitwise.php"
876
+ },
877
+ {
878
+ "match": "(===|==|!==|!=|<=|>=|<>|<|>)",
879
+ "name": "keyword.operator.comparison.php"
880
+ },
881
+ {
882
+ "match": "(\\.=|\\.)",
883
+ "name": "keyword.operator.string.php"
884
+ },
885
+ {
886
+ "match": "=",
887
+ "name": "keyword.operator.assignment.php"
888
+ },
889
+ {
890
+ "captures": {
891
+ "1": {
892
+ "name": "keyword.operator.type.php"
893
+ },
894
+ "2": {
895
+ "name": "support.class.php"
896
+ }
897
+ },
898
+ "match": "(?i)\\b(instanceof)\\b(?:\\s+(\\w+))?"
899
+ },
900
+ {
901
+ "include": "#numbers"
902
+ },
903
+ {
904
+ "include": "#strings"
905
+ },
906
+ {
907
+ "include": "#string-backtick"
908
+ },
909
+ {
910
+ "include": "#function-call"
911
+ },
912
+ {
913
+ "include": "#variables"
914
+ },
915
+ {
916
+ "captures": {
917
+ "1": {
918
+ "name": "keyword.operator.php"
919
+ },
920
+ "2": {
921
+ "name": "variable.other.property.php"
922
+ }
923
+ },
924
+ "match": "(?<=[a-zA-Z0-9_\\x{7f}-\\x{ff}])(->)([a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*?)\\b"
925
+ },
926
+ {
927
+ "include": "#instantiation"
928
+ },
929
+ {
930
+ "include": "#constants"
931
+ }
932
+ ]
933
+ },
934
+ "numbers": {
935
+ "match": "\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)\\b",
936
+ "name": "constant.numeric.php"
937
+ },
938
+ "object": {
939
+ "captures": {
940
+ "1": {
941
+ "name": "keyword.operator.class.php"
942
+ },
943
+ "2": {
944
+ "name": "meta.function-call.object.php"
945
+ },
946
+ "3": {
947
+ "name": "variable.other.property.php"
948
+ },
949
+ "4": {
950
+ "name": "punctuation.definition.variable.php"
951
+ }
952
+ },
953
+ "match": "(?x)(->)\n \t\t\t\t(?:\n \t\t\t\t ([A-Za-z_][A-Za-z_0-9]*)\\s*\\(\n \t\t\t\t |\n \t\t\t\t ((\\$+)?[a-zA-Z_\\x{7f}-\\x{ff}][a-zA-Z0-9_\\x{7f}-\\x{ff}]*)\n \t\t\t\t)?"
954
+ },
955
+ "parameter-default-types": {
956
+ "patterns": [
957
+ {
958
+ "include": "#strings"
959
+ },
960
+ {
961
+ "include": "#numbers"
962
+ },
963
+ {
964
+ "include": "#string-backtick"
965
+ },
966
+ {
967
+ "include": "#variables"
968
+ },
969
+ {
970
+ "match": "=>",
971
+ "name": "keyword.operator.key.php"
972
+ },
973
+ {
974
+ "match": "=",
975
+ "name": "keyword.operator.assignment.php"
976
+ },
977
+ {
978
+ "match": "&(?=\\s*\\$)",
979
+ "name": "storage.modifier.reference.php"
980
+ },
981
+ {
982
+ "begin": "(array)\\s*(\\()",
983
+ "beginCaptures": {
984
+ "1": {
985
+ "name": "support.function.construct.php"
986
+ },
987
+ "2": {
988
+ "name": "punctuation.definition.array.begin.php"
989
+ }
990
+ },
991
+ "end": "\\)",
992
+ "endCaptures": {
993
+ "0": {
994
+ "name": "punctuation.definition.array.end.php"
995
+ }
996
+ },
997
+ "name": "meta.array.php",
998
+ "patterns": [
999
+ {
1000
+ "include": "#parameter-default-types"
1001
+ }
1002
+ ]
1003
+ },
1004
+ {
1005
+ "include": "#instantiation"
1006
+ },
1007
+ {
1008
+ "include": "#constants"
1009
+ }
1010
+ ]
1011
+ },
1012
+ "php_doc": {
1013
+ "patterns": [
1014
+ {
1015
+ "comment": "PHPDocumentor only recognises lines with an asterisk as the first non-whitespaces character",
1016
+ "match": "^(?!\\s*\\*).*$\\n?",
1017
+ "name": "invalid.illegal.missing-asterisk.phpdoc.php"
1018
+ },
1019
+ {
1020
+ "captures": {
1021
+ "1": {
1022
+ "name": "keyword.other.phpdoc.php"
1023
+ },
1024
+ "3": {
1025
+ "name": "storage.modifier.php"
1026
+ },
1027
+ "4": {
1028
+ "name": "invalid.illegal.wrong-access-type.phpdoc.php"
1029
+ }
1030
+ },
1031
+ "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$"
1032
+ },
1033
+ {
1034
+ "match": "((https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt):\/\/|mailto:)[-:@a-zA-Z0-9_.~%+\/?=&#]+(?<![.?:])",
1035
+ "name": "markup.underline.link.php"
1036
+ },
1037
+ {
1038
+ "captures": {
1039
+ "1": {
1040
+ "name": "keyword.other.phpdoc.php"
1041
+ },
1042
+ "2": {
1043
+ "name": "markup.underline.link.php"
1044
+ }
1045
+ },
1046
+ "match": "(@xlink)\\s+(.+)\\s*$"
1047
+ },
1048
+ {
1049
+ "match": "\\@(a(bstract|uthor)|c(ategory|opyright)|example|global|internal|li(cense|nk)|pa(ckage|ram)|return|s(ee|ince|tatic|ubpackage)|t(hrows|odo)|v(ar|ersion)|uses|deprecated|final)\\b",
1050
+ "name": "keyword.other.phpdoc.php"
1051
+ },
1052
+ {
1053
+ "captures": {
1054
+ "1": {
1055
+ "name": "keyword.other.phpdoc.php"
1056
+ }
1057
+ },
1058
+ "match": "\\{(@(link)).+?\\}",
1059
+ "name": "meta.tag.inline.phpdoc.php"
1060
+ }
1061
+ ]
1062
+ },
1063
+ "regex-double-quoted": {
1064
+ "begin": "(?x)\"\/ (?= (\\\\.|[^\"\/])++\/[imsxeADSUXu]*\" )",
1065
+ "beginCaptures": {
1066
+ "0": {
1067
+ "name": "punctuation.definition.string.begin.php"
1068
+ }
1069
+ },
1070
+ "end": "(\/)([imsxeADSUXu]*)(\")",
1071
+ "endCaptures": {
1072
+ "0": {
1073
+ "name": "punctuation.definition.string.end.php"
1074
+ }
1075
+ },
1076
+ "name": "string.regexp.double-quoted.php",
1077
+ "patterns": [
1078
+ {
1079
+ "comment": "Escaped from the regexp \u2013 there can also be 2 backslashes (since 1 will escape the first)",
1080
+ "match": "(\\\\){1,2}[.$^\\[\\]{}]",
1081
+ "name": "constant.character.escape.regex.php"
1082
+ },
1083
+ {
1084
+ "include": "#interpolation"
1085
+ },
1086
+ {
1087
+ "captures": {
1088
+ "1": {
1089
+ "name": "punctuation.definition.arbitrary-repitition.php"
1090
+ },
1091
+ "3": {
1092
+ "name": "punctuation.definition.arbitrary-repitition.php"
1093
+ }
1094
+ },
1095
+ "match": "(\\{)\\d+(,\\d+)?(\\})",
1096
+ "name": "string.regexp.arbitrary-repitition.php"
1097
+ },
1098
+ {
1099
+ "begin": "\\[(?:\\^?\\])?",
1100
+ "captures": {
1101
+ "0": {
1102
+ "name": "punctuation.definition.character-class.php"
1103
+ }
1104
+ },
1105
+ "end": "\\]",
1106
+ "name": "string.regexp.character-class.php",
1107
+ "patterns": [
1108
+ {
1109
+ "include": "#interpolation"
1110
+ }
1111
+ ]
1112
+ },
1113
+ {
1114
+ "match": "[$^+*]",
1115
+ "name": "keyword.operator.regexp.php"
1116
+ }
1117
+ ]
1118
+ },
1119
+ "regex-single-quoted": {
1120
+ "begin": "(?x)'\/ (?= (\\\\.|[^'\/])++\/[imsxeADSUXu]*' )",
1121
+ "beginCaptures": {
1122
+ "0": {
1123
+ "name": "punctuation.definition.string.begin.php"
1124
+ }
1125
+ },
1126
+ "end": "(\/)([imsxeADSUXu]*)(')",
1127
+ "endCaptures": {
1128
+ "0": {
1129
+ "name": "punctuation.definition.string.end.php"
1130
+ }
1131
+ },
1132
+ "name": "string.regexp.single-quoted.php",
1133
+ "patterns": [
1134
+ {
1135
+ "captures": {
1136
+ "1": {
1137
+ "name": "punctuation.definition.arbitrary-repitition.php"
1138
+ },
1139
+ "3": {
1140
+ "name": "punctuation.definition.arbitrary-repitition.php"
1141
+ }
1142
+ },
1143
+ "match": "(\\{)\\d+(,\\d+)?(\\})",
1144
+ "name": "string.regexp.arbitrary-repitition.php"
1145
+ },
1146
+ {
1147
+ "comment": "Escaped from the regexp \u2013 there can also be 2 backslashes (since 1 will escape the first)",
1148
+ "match": "(\\\\){1,2}[.$^\\[\\]{}]",
1149
+ "name": "constant.character.escape.regex.php"
1150
+ },
1151
+ {
1152
+ "comment": "Escaped from the PHP string \u2013 there can also be 2 backslashes (since 1 will escape the first)",
1153
+ "match": "\\\\{1,2}[\\\\']",
1154
+ "name": "constant.character.escape.php"
1155
+ },
1156
+ {
1157
+ "begin": "\\[(?:\\^?\\])?",
1158
+ "captures": {
1159
+ "0": {
1160
+ "name": "punctuation.definition.character-class.php"
1161
+ }
1162
+ },
1163
+ "end": "\\]",
1164
+ "name": "string.regexp.character-class.php",
1165
+ "patterns": [
1166
+ {
1167
+ "match": "\\\\[\\\\'\\[\\]]",
1168
+ "name": "constant.character.escape.php"
1169
+ }
1170
+ ]
1171
+ },
1172
+ {
1173
+ "match": "[$^+*]",
1174
+ "name": "keyword.operator.regexp.php"
1175
+ }
1176
+ ]
1177
+ },
1178
+ "sql-string-double-quoted": {
1179
+ "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)",
1180
+ "beginCaptures": {
1181
+ "0": {
1182
+ "name": "punctuation.definition.string.begin.php"
1183
+ }
1184
+ },
1185
+ "contentName": "source.sql.embedded.php",
1186
+ "end": "\"",
1187
+ "endCaptures": {
1188
+ "0": {
1189
+ "name": "punctuation.definition.string.end.php"
1190
+ }
1191
+ },
1192
+ "name": "string.quoted.double.sql.php",
1193
+ "patterns": [
1194
+ {
1195
+ "match": "#(\\\\\"|[^\"])*(?=\"|$\\n?)",
1196
+ "name": "comment.line.number-sign.sql"
1197
+ },
1198
+ {
1199
+ "match": "--(\\\\\"|[^\"])*(?=\"|$\\n?)",
1200
+ "name": "comment.line.double-dash.sql"
1201
+ },
1202
+ {
1203
+ "begin": "'(?=[^']*?\")",
1204
+ "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",
1205
+ "end": "(?=\")",
1206
+ "name": "string.quoted.single.unclosed.sql",
1207
+ "patterns": [
1208
+ {
1209
+ "match": "\\\\[\\\\']",
1210
+ "name": "constant.character.escape.php"
1211
+ }
1212
+ ]
1213
+ },
1214
+ {
1215
+ "begin": "`(?=[^`]*?\")",
1216
+ "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",
1217
+ "end": "(?=\")",
1218
+ "name": "string.quoted.other.backtick.unclosed.sql",
1219
+ "patterns": [
1220
+ {
1221
+ "match": "\\\\[\\\\']",
1222
+ "name": "constant.character.escape.php"
1223
+ }
1224
+ ]
1225
+ },
1226
+ {
1227
+ "begin": "\\\\\"(?!([^\\\\\"]|\\\\[^\"])*\\\\\")(?=(\\\\[^\"]|.)*?\")",
1228
+ "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",
1229
+ "end": "(?=\")",
1230
+ "name": "string.quoted.double.unclosed.sql",
1231
+ "patterns": [
1232
+ {
1233
+ "match": "\\\\[\\\\']",
1234
+ "name": "constant.character.escape.php"
1235
+ }
1236
+ ]
1237
+ },
1238
+ {
1239
+ "begin": "\\\\\"",
1240
+ "captures": {
1241
+ "0": {
1242
+ "name": "constant.character.escape.php"
1243
+ }
1244
+ },
1245
+ "end": "\\\\\"",
1246
+ "name": "string.quoted.double.sql",
1247
+ "patterns": [
1248
+ {
1249
+ "include": "#interpolation"
1250
+ }
1251
+ ]
1252
+ },
1253
+ {
1254
+ "begin": "`",
1255
+ "end": "`",
1256
+ "name": "string.quoted.other.backtick.sql",
1257
+ "patterns": [
1258
+ {
1259
+ "include": "#interpolation"
1260
+ }
1261
+ ]
1262
+ },
1263
+ {
1264
+ "begin": "'",
1265
+ "end": "'",
1266
+ "name": "string.quoted.single.sql",
1267
+ "patterns": [
1268
+ {
1269
+ "include": "#interpolation"
1270
+ }
1271
+ ]
1272
+ },
1273
+ {
1274
+ "match": "\\\\.",
1275
+ "name": "constant.character.escape.php"
1276
+ },
1277
+ {
1278
+ "include": "#interpolation"
1279
+ },
1280
+ {
1281
+ "include": "source.sql"
1282
+ }
1283
+ ]
1284
+ },
1285
+ "sql-string-single-quoted": {
1286
+ "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER)\\b)",
1287
+ "beginCaptures": {
1288
+ "0": {
1289
+ "name": "punctuation.definition.string.begin.php"
1290
+ }
1291
+ },
1292
+ "contentName": "source.sql.embedded.php",
1293
+ "end": "'",
1294
+ "endCaptures": {
1295
+ "0": {
1296
+ "name": "punctuation.definition.string.end.php"
1297
+ }
1298
+ },
1299
+ "name": "string.quoted.single.sql.php",
1300
+ "patterns": [
1301
+ {
1302
+ "match": "#(\\\\'|[^'])*(?='|$\\n?)",
1303
+ "name": "comment.line.number-sign.sql"
1304
+ },
1305
+ {
1306
+ "match": "--(\\\\'|[^'])*(?='|$\\n?)",
1307
+ "name": "comment.line.double-dash.sql"
1308
+ },
1309
+ {
1310
+ "begin": "\\\\'(?!([^\\\\']|\\\\[^'])*\\\\')(?=(\\\\[^']|.)*?')",
1311
+ "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",
1312
+ "end": "(?=')",
1313
+ "name": "string.quoted.single.unclosed.sql",
1314
+ "patterns": [
1315
+ {
1316
+ "match": "\\\\[\\\\']",
1317
+ "name": "constant.character.escape.php"
1318
+ }
1319
+ ]
1320
+ },
1321
+ {
1322
+ "begin": "`(?=[^`]*?')",
1323
+ "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",
1324
+ "end": "(?=')",
1325
+ "name": "string.quoted.other.backtick.unclosed.sql",
1326
+ "patterns": [
1327
+ {
1328
+ "match": "\\\\[\\\\']",
1329
+ "name": "constant.character.escape.php"
1330
+ }
1331
+ ]
1332
+ },
1333
+ {
1334
+ "begin": "\"(?=[^\"]*?')",
1335
+ "comment": "Unclosed strings must be captured to avoid them eating the remainder of the PHP script\n\t\t\t\t\tSample case: $sql = \"SELECT * FROM bar WHERE foo = '\" . $variable . \"'\"",
1336
+ "end": "(?=')",
1337
+ "name": "string.quoted.double.unclosed.sql",
1338
+ "patterns": [
1339
+ {
1340
+ "match": "\\\\[\\\\']",
1341
+ "name": "constant.character.escape.php"
1342
+ }
1343
+ ]
1344
+ },
1345
+ {
1346
+ "begin": "\\\\'",
1347
+ "captures": {
1348
+ "0": {
1349
+ "name": "constant.character.escape.php"
1350
+ }
1351
+ },
1352
+ "end": "\\\\'",
1353
+ "name": "string.quoted.single.sql"
1354
+ },
1355
+ {
1356
+ "match": "\\\\[\\\\']",
1357
+ "name": "constant.character.escape.php"
1358
+ },
1359
+ {
1360
+ "include": "source.sql"
1361
+ }
1362
+ ]
1363
+ },
1364
+ "string-backtick": {
1365
+ "begin": "`",
1366
+ "beginCaptures": {
1367
+ "0": {
1368
+ "name": "punctuation.definition.string.begin.php"
1369
+ }
1370
+ },
1371
+ "end": "`",
1372
+ "endCaptures": {
1373
+ "0": {
1374
+ "name": "punctuation.definition.string.end.php"
1375
+ }
1376
+ },
1377
+ "name": "string.interpolated.php",
1378
+ "patterns": [
1379
+ {
1380
+ "match": "\\\\.",
1381
+ "name": "constant.character.escape.php"
1382
+ },
1383
+ {
1384
+ "include": "#interpolation"
1385
+ }
1386
+ ]
1387
+ },
1388
+ "string-double-quoted": {
1389
+ "begin": "\"",
1390
+ "beginCaptures": {
1391
+ "0": {
1392
+ "name": "punctuation.definition.string.begin.php"
1393
+ }
1394
+ },
1395
+ "comment": "This contentName is just to allow the usage of \u201cselect scope\u201d to select the string contents first, then the string with quotes",
1396
+ "contentName": "meta.string-contents.quoted.double.php",
1397
+ "end": "\"",
1398
+ "endCaptures": {
1399
+ "0": {
1400
+ "name": "punctuation.definition.string.end.php"
1401
+ }
1402
+ },
1403
+ "name": "string.quoted.double.php",
1404
+ "patterns": [
1405
+ {
1406
+ "include": "#interpolation"
1407
+ }
1408
+ ]
1409
+ },
1410
+ "string-single-quoted": {
1411
+ "begin": "'",
1412
+ "beginCaptures": {
1413
+ "0": {
1414
+ "name": "punctuation.definition.string.begin.php"
1415
+ }
1416
+ },
1417
+ "contentName": "meta.string-contents.quoted.single.php",
1418
+ "end": "'",
1419
+ "endCaptures": {
1420
+ "0": {
1421
+ "name": "punctuation.definition.string.end.php"
1422
+ }
1423
+ },
1424
+ "name": "string.quoted.single.php",
1425
+ "patterns": [
1426
+ {
1427
+ "match": "\\\\[\\\\']",
1428
+ "name": "constant.character.escape.php"
1429
+ }
1430
+ ]
1431
+ },
1432
+ "strings": {
1433
+ "patterns": [
1434
+ {
1435
+ "include": "#regex-double-quoted"
1436
+ },
1437
+ {
1438
+ "include": "#sql-string-double-quoted"
1439
+ },
1440
+ {
1441
+ "include": "#string-double-quoted"
1442
+ },
1443
+ {
1444
+ "include": "#regex-single-quoted"
1445
+ },
1446
+ {
1447
+ "include": "#sql-string-single-quoted"
1448
+ },
1449
+ {
1450
+ "include": "#string-single-quoted"
1451
+ }
1452
+ ]
1453
+ },
1454
+ "support": {
1455
+ "patterns": [
1456
+ {
1457
+ "begin": "(array)(\\()",
1458
+ "beginCaptures": {
1459
+ "1": {
1460
+ "name": "support.function.construct.php"
1461
+ },
1462
+ "2": {
1463
+ "name": "punctuation.definition.array.begin.php"
1464
+ }
1465
+ },
1466
+ "end": "\\)",
1467
+ "endCaptures": {
1468
+ "0": {
1469
+ "name": "punctuation.definition.array.end.php"
1470
+ }
1471
+ },
1472
+ "name": "meta.array.php",
1473
+ "patterns": [
1474
+ {
1475
+ "include": "#language"
1476
+ }
1477
+ ]
1478
+ },
1479
+ {
1480
+ "match": "(?i)\\b(s(huffle|ort)|n(ext|at(sort|casesort))|c(o(unt|mpact)|urrent)|in_array|u(sort|ksort|asort)|prev|e(nd|xtract)|k(sort|ey|rsort)|a(sort|r(sort|ray_(s(hift|um|plice|earch|lice)|c(h(unk|ange_key_case)|o(unt_values|mbine))|intersect(_(u(key|assoc)|key|assoc))?|diff(_(u(key|assoc)|key|assoc))?|u(n(shift|ique)|intersect(_(uassoc|assoc))?|diff(_(uassoc|assoc))?)|p(op|ush|ad|roduct)|values|key(s|_exists)|f(il(ter|l(_keys)?)|lip)|walk(_recursive)?|r(e(duce|verse)|and)|m(ultisort|erge(_recursive)?|ap))))|r(sort|eset|ange)|m(in|ax))(?=\\s*\\()",
1481
+ "name": "support.function.array.php"
1482
+ },
1483
+ {
1484
+ "match": "(?i)\\bassert(_options)?(?=\\s*\\()",
1485
+ "name": "support.function.assert.php"
1486
+ },
1487
+ {
1488
+ "match": "(?i)\\bdom_attr_is_id(?=\\s*\\()",
1489
+ "name": "support.function.attr.php"
1490
+ },
1491
+ {
1492
+ "match": "(?i)\\bbase64_(decode|encode)(?=\\s*\\()",
1493
+ "name": "support.function.base64.php"
1494
+ },
1495
+ {
1496
+ "match": "(?i)\\b(highlight_(string|file)|s(ys_getloadavg|et_(include_path|magic_quotes_runtime)|leep)|c(on(stant|nection_(status|aborted))|all_user_(func(_array)?|method(_array)?))|time_(sleep_until|nanosleep)|i(s_uploaded_file|n(i_(set|restore|get(_all)?)|et_(ntop|pton))|p2long|gnore_user_abort|mport_request_variables)|u(sleep|nregister_tick_function)|error_(log|get_last)|p(hp_strip_whitespace|utenv|arse_ini_file|rint_r)|flush|long2ip|re(store_include_path|gister_(shutdown_function|tick_function))|get(servby(name|port)|opt|_(c(urrent_user|fg_var)|include_path|magic_quotes_(gpc|runtime))|protobyn(umber|ame)|env)|move_uploaded_file)(?=\\s*\\()",
1497
+ "name": "support.function.basic_functions.php"
1498
+ },
1499
+ {
1500
+ "match": "(?i)\\bbc(s(cale|ub|qrt)|comp|div|pow(mod)?|add|m(od|ul))(?=\\s*\\()",
1501
+ "name": "support.function.bcmath.php"
1502
+ },
1503
+ {
1504
+ "match": "(?i)\\bbirdstep_(c(o(nnect|mmit)|lose)|off_autocommit|exec|f(ieldn(um|ame)|etch|reeresult)|autocommit|r(ollback|esult))(?=\\s*\\()",
1505
+ "name": "support.function.birdstep.php"
1506
+ },
1507
+ {
1508
+ "match": "(?i)\\bget_browser(?=\\s*\\()",
1509
+ "name": "support.function.browscap.php"
1510
+ },
1511
+ {
1512
+ "match": "(?i)\\b(s(tr(nc(asecmp|mp)|c(asecmp|mp)|len)|et_e(rror_handler|xception_handler))|c(lass_exists|reate_function)|trigger_error|i(s_(subclass_of|a)|nterface_exists)|de(fine(d)?|bug_(print_backtrace|backtrace))|zend_version|property_exists|e(ach|rror_reporting|xtension_loaded)|func(tion_exists|_(num_args|get_arg(s)?))|leak|restore_e(rror_handler|xception_handler)|get_(class(_(vars|methods))?|included_files|de(clared_(classes|interfaces)|fined_(constants|vars|functions))|object_vars|extension_funcs|parent_class|loaded_extensions|resource_type)|method_exists)(?=\\s*\\()",
1513
+ "name": "support.function.builtin_functions.php"
1514
+ },
1515
+ {
1516
+ "match": "(?i)\\bbz(compress|decompress|open|err(str|no|or)|read)(?=\\s*\\()",
1517
+ "name": "support.function.bz2.php"
1518
+ },
1519
+ {
1520
+ "match": "(?i)\\b(jdtounix|unixtojd)(?=\\s*\\()",
1521
+ "name": "support.function.cal_unix.php"
1522
+ },
1523
+ {
1524
+ "match": "(?i)\\b(cal_(to_jd|info|days_in_month|from_jd)|j(d(to(j(ulian|ewish)|french|gregorian)|dayofweek|monthname)|uliantojd|ewishtojd)|frenchtojd|gregoriantojd)(?=\\s*\\()",
1525
+ "name": "support.function.calendar.php"
1526
+ },
1527
+ {
1528
+ "match": "(?i)\\bdom_characterdata_(substring_data|insert_data|delete_data|append_data|replace_data)(?=\\s*\\()",
1529
+ "name": "support.function.characterdata.php"
1530
+ },
1531
+ {
1532
+ "match": "(?i)\\bcom_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)(?=\\s*\\()",
1533
+ "name": "support.function.com_com.php"
1534
+ },
1535
+ {
1536
+ "match": "(?i)\\bvariant_(s(ub|et(_type)?)|n(ot|eg)|c(a(st|t)|mp)|i(nt|div|mp)|or|d(iv|ate_(to_timestamp|from_timestamp))|pow|eqv|fix|a(nd|dd|bs)|get_type|round|xor|m(od|ul))(?=\\s*\\()",
1537
+ "name": "support.function.com_variant.php"
1538
+ },
1539
+ {
1540
+ "match": "(?i)\\bcrc32(?=\\s*\\()",
1541
+ "name": "support.function.crc32.php"
1542
+ },
1543
+ {
1544
+ "match": "(?i)\\bcrypt(?=\\s*\\()",
1545
+ "name": "support.function.crypt.php"
1546
+ },
1547
+ {
1548
+ "match": "(?i)\\bctype_(space|cntrl|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit)(?=\\s*\\()",
1549
+ "name": "support.function.ctype.php"
1550
+ },
1551
+ {
1552
+ "match": "(?i)\\bconvert_cyr_string(?=\\s*\\()",
1553
+ "name": "support.function.cyr_convert.php"
1554
+ },
1555
+ {
1556
+ "match": "(?i)\\bstrptime(?=\\s*\\()",
1557
+ "name": "support.function.datetime.php"
1558
+ },
1559
+ {
1560
+ "match": "(?i)\\bdba_(handlers|sync|nextkey|close|insert|delete|op(timize|en)|exists|popen|key_split|f(irstkey|etch)|list|replace)(?=\\s*\\()",
1561
+ "name": "support.function.dba.php"
1562
+ },
1563
+ {
1564
+ "match": "(?i)\\bdbase_(num(fields|records)|c(lose|reate)|delete_record|open|pack|add_record|get_(header_info|record(_with_names)?)|replace_record)(?=\\s*\\()",
1565
+ "name": "support.function.dbase.php"
1566
+ },
1567
+ {
1568
+ "match": "(?i)\\b(scandir|c(h(dir|root)|losedir)|dir|opendir|re(addir|winddir)|g(etcwd|lob))(?=\\s*\\()",
1569
+ "name": "support.function.dir.php"
1570
+ },
1571
+ {
1572
+ "match": "(?i)\\bdl(?=\\s*\\()",
1573
+ "name": "support.function.dl.php"
1574
+ },
1575
+ {
1576
+ "match": "(?i)\\b(dns_(check_record|get_(record|mx))|gethostby(name(l)?|addr))(?=\\s*\\()",
1577
+ "name": "support.function.dns.php"
1578
+ },
1579
+ {
1580
+ "match": "(?i)\\bdom_document_(s(chema_validate(_file)?|ave(_html(_file)?|xml)?)|normalize_document|create_(c(datasection|omment)|text_node|document_fragment|processing_instruction|e(ntity_reference|lement(_ns)?)|attribute(_ns)?)|import_node|validate|load(_html(_file)?|xml)?|adopt_node|re(name_node|laxNG_validate_(file|xml))|get_element(s_by_tag_name(_ns)?|_by_id)|xinclude)(?=\\s*\\()",
1581
+ "name": "support.function.document.php"
1582
+ },
1583
+ {
1584
+ "match": "(?i)\\bdom_domconfiguration_(set_parameter|can_set_parameter|get_parameter)(?=\\s*\\()",
1585
+ "name": "support.function.domconfiguration.php"
1586
+ },
1587
+ {
1588
+ "match": "(?i)\\bdom_domerrorhandler_handle_error(?=\\s*\\()",
1589
+ "name": "support.function.domerrorhandler.php"
1590
+ },
1591
+ {
1592
+ "match": "(?i)\\bdom_domimplementation_(has_feature|create_document(_type)?|get_feature)(?=\\s*\\()",
1593
+ "name": "support.function.domimplementation.php"
1594
+ },
1595
+ {
1596
+ "match": "(?i)\\bdom_domimplementationlist_item(?=\\s*\\()",
1597
+ "name": "support.function.domimplementationlist.php"
1598
+ },
1599
+ {
1600
+ "match": "(?i)\\bdom_domimplementationsource_get_domimplementation(s)?(?=\\s*\\()",
1601
+ "name": "support.function.domimplementationsource.php"
1602
+ },
1603
+ {
1604
+ "match": "(?i)\\bdom_domstringlist_item(?=\\s*\\()",
1605
+ "name": "support.function.domstringlist.php"
1606
+ },
1607
+ {
1608
+ "match": "(?i)\\beaster_da(ys|te)(?=\\s*\\()",
1609
+ "name": "support.function.easter.php"
1610
+ },
1611
+ {
1612
+ "match": "(?i)\\bdom_element_(has_attribute(_ns)?|set_(id_attribute(_n(s|ode))?|attribute(_n(s|ode(_ns)?))?)|remove_attribute(_n(s|ode))?|get_(elements_by_tag_name(_ns)?|attribute(_n(s|ode(_ns)?))?))(?=\\s*\\()",
1613
+ "name": "support.function.element.php"
1614
+ },
1615
+ {
1616
+ "match": "(?i)\\b(s(hell_exec|ystem)|p(assthru|roc_nice)|e(scapeshell(cmd|arg)|xec))(?=\\s*\\()",
1617
+ "name": "support.function.exec.php"
1618
+ },
1619
+ {
1620
+ "match": "(?i)\\bexif_(imagetype|t(humbnail|agname)|read_data)(?=\\s*\\()",
1621
+ "name": "support.function.exif.php"
1622
+ },
1623
+ {
1624
+ "match": "(?i)\\bfdf_(header|s(et_(s(tatus|ubmit_form_action)|target_frame|o(n_import_javascript|pt)|javascript_action|encoding|v(ersion|alue)|f(ile|lags)|ap)|ave(_string)?)|next_field_name|c(lose|reate)|open(_string)?|e(num_values|rr(no|or))|add_(template|doc_javascript)|remove_item|get_(status|opt|encoding|v(ersion|alue)|f(ile|lags)|a(ttachment|p)))(?=\\s*\\()",
1625
+ "name": "support.function.fdf.php"
1626
+ },
1627
+ {
1628
+ "match": "(?i)\\b(sys_get_temp_dir|copy|t(empnam|mpfile)|u(nlink|mask)|p(close|open)|f(s(canf|tat|eek)|nmatch|close|t(ell|runcate)|ile(_(put_contents|get_contents))?|open|p(utcsv|assthru)|eof|flush|write|lock|read|get(s(s)?|c(sv)?))|r(e(name|a(dfile|lpath)|wind)|mdir)|get_meta_tags|mkdir)(?=\\s*\\()",
1629
+ "name": "support.function.file.php"
1630
+ },
1631
+ {
1632
+ "match": "(?i)\\b(stat|c(h(own|grp|mod)|learstatcache)|is_(dir|executable|file|link|writable|readable)|touch|disk_(total_space|free_space)|file(size|ctime|type|inode|owner|_exists|perms|atime|group|mtime)|l(stat|chgrp))(?=\\s*\\()",
1633
+ "name": "support.function.filestat.php"
1634
+ },
1635
+ {
1636
+ "match": "(?i)\\bfilter_(has_var|input(_array)?|var(_array)?)(?=\\s*\\()",
1637
+ "name": "support.function.filter.php"
1638
+ },
1639
+ {
1640
+ "match": "(?i)\\b(sprintf|printf|v(sprintf|printf|fprintf)|fprintf)(?=\\s*\\()",
1641
+ "name": "support.function.formatted_print.php"
1642
+ },
1643
+ {
1644
+ "match": "(?i)\\b(pfsockopen|fsockopen)(?=\\s*\\()",
1645
+ "name": "support.function.fsock.php"
1646
+ },
1647
+ {
1648
+ "match": "(?i)\\bftok(?=\\s*\\()",
1649
+ "name": "support.function.ftok.php"
1650
+ },
1651
+ {
1652
+ "match": "(?i)\\b(image(s(y|tring(up)?|et(style|t(hickness|ile)|pixel|brush)|avealpha|x)|c(har(up)?|o(nvolution|py(res(ized|ampled)|merge(gray)?)?|lor(s(total|et|forindex)|closest(hwb|alpha)?|transparent|deallocate|exact(alpha)?|a(t|llocate(alpha)?)|resolve(alpha)?|match))|reate(truecolor|from(string|jpeg|png|wbmp|g(if|d(2(part)?)?)|x(pm|bm)))?)|2wbmp|t(ypes|tf(text|bbox)|ruecolortopalette)|i(struecolor|nterlace)|d(estroy|ashedline)|jpeg|ellipse|p(s(slantfont|copyfont|text|e(ncodefont|xtendfont)|freefont|loadfont|bbox)|ng|olygon|alettecopy)|f(t(text|bbox)|il(ter|l(toborder|ed(polygon|ellipse|arc|rectangle))?)|ont(height|width))|wbmp|a(ntialias|lphablending|rc)|l(ine|oadfont|ayereffect)|r(otate|ectangle)|g(if|d(2)?|ammacorrect|rab(screen|window))|xbm)|jpeg2wbmp|png2wbmp|gd_info)(?=\\s*\\()",
1653
+ "name": "support.function.gd.php"
1654
+ },
1655
+ {
1656
+ "match": "(?i)\\b(ngettext|textdomain|d(ngettext|c(ngettext|gettext)|gettext)|gettext|bind(textdomain|_textdomain_codeset))(?=\\s*\\()",
1657
+ "name": "support.function.gettext.php"
1658
+ },
1659
+ {
1660
+ "match": "(?i)\\bgmp_(hamdist|s(can(1|0)|ign|trval|ub|etbit|qrt(rem)?)|c(om|lrbit|mp)|ne(g|xtprime)|in(tval|it|vert)|or|div(_(q(r)?|r)|exact)|jacobi|p(o(pcount|w(m)?)|erfect_square|rob_prime)|fact|legendre|a(nd|dd|bs)|random|gcd(ext)?|xor|m(od|ul))(?=\\s*\\()",
1661
+ "name": "support.function.gmp.php"
1662
+ },
1663
+ {
1664
+ "match": "(?i)\\bhash(_(hmac(_file)?|init|update(_(stream|file))?|fi(nal|le)|algos))?(?=\\s*\\()",
1665
+ "name": "support.function.hash.php"
1666
+ },
1667
+ {
1668
+ "match": "(?i)\\bmd5(_file)?(?=\\s*\\()",
1669
+ "name": "support.function.hash_md.php"
1670
+ },
1671
+ {
1672
+ "match": "(?i)\\bsha1(_file)?(?=\\s*\\()",
1673
+ "name": "support.function.hash_sha.php"
1674
+ },
1675
+ {
1676
+ "match": "(?i)\\b(set(cookie|rawcookie)|header(s_(sent|list))?)(?=\\s*\\()",
1677
+ "name": "support.function.head.php"
1678
+ },
1679
+ {
1680
+ "match": "(?i)\\b(html(specialchars(_decode)?|_entity_decode|entities)|get_html_translation_table)(?=\\s*\\()",
1681
+ "name": "support.function.html.php"
1682
+ },
1683
+ {
1684
+ "match": "(?i)\\bhttp_build_query(?=\\s*\\()",
1685
+ "name": "support.function.http.php"
1686
+ },
1687
+ {
1688
+ "match": "(?i)\\bibase_blob_(c(ancel|lose|reate)|i(nfo|mport)|open|echo|add|get)(?=\\s*\\()",
1689
+ "name": "support.function.ibase_blobs.php"
1690
+ },
1691
+ {
1692
+ "match": "(?i)\\bibase_(set_event_handler|free_event_handler|wait_event)(?=\\s*\\()",
1693
+ "name": "support.function.ibase_events.php"
1694
+ },
1695
+ {
1696
+ "match": "(?i)\\bibase_(n(um_(params|fields|rows)|ame_result)|execute|p(aram_info|repare)|f(ield_info|etch_(object|assoc|row)|ree_(query|result))|query|affected_rows)(?=\\s*\\()",
1697
+ "name": "support.function.ibase_query.php"
1698
+ },
1699
+ {
1700
+ "match": "(?i)\\bibase_(serv(ice_(detach|attach)|er_info)|d(elete_user|b_info)|add_user|restore|backup|m(odify_user|aintain_db))(?=\\s*\\()",
1701
+ "name": "support.function.ibase_service.php"
1702
+ },
1703
+ {
1704
+ "match": "(?i)\\b(iconv(_(s(tr(pos|len|rpos)|ubstr|et_encoding)|get_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)(?=\\s*\\()",
1705
+ "name": "support.function.iconv.php"
1706
+ },
1707
+ {
1708
+ "match": "(?i)\\b(image_type_to_(extension|mime_type)|getimagesize)(?=\\s*\\()",
1709
+ "name": "support.function.image.php"
1710
+ },
1711
+ {
1712
+ "match": "(?i)\\b(zend_logo_guid|php(credits|info|_(sapi_name|ini_scanned_files|uname|egg_logo_guid|logo_guid|real_logo_guid)|version))(?=\\s*\\()",
1713
+ "name": "support.function.info.php"
1714
+ },
1715
+ {
1716
+ "match": "(?i)\\bibase_(c(o(nnect|mmit(_ret)?)|lose)|trans|drop_db|pconnect|err(code|msg)|gen_id|rollback(_ret)?)(?=\\s*\\()",
1717
+ "name": "support.function.interbase.php"
1718
+ },
1719
+ {
1720
+ "match": "(?i)\\bcurl_(setopt(_array)?|c(opy_handle|lose)|init|e(rr(no|or)|xec)|version|getinfo)(?=\\s*\\()",
1721
+ "name": "support.function.interface.php"
1722
+ },
1723
+ {
1724
+ "match": "(?i)\\biptc(parse|embed)(?=\\s*\\()",
1725
+ "name": "support.function.iptc.php"
1726
+ },
1727
+ {
1728
+ "match": "(?i)\\bjson_(decode|encode)(?=\\s*\\()",
1729
+ "name": "support.function.json.php"
1730
+ },
1731
+ {
1732
+ "match": "(?i)\\blcg_value(?=\\s*\\()",
1733
+ "name": "support.function.lcg.php"
1734
+ },
1735
+ {
1736
+ "match": "(?i)\\bldap_(s(tart_tls|ort|e(t_(option|rebind_proc)|arch)|asl_bind)|next_(entry|attribute|reference)|co(nnect|unt_entries|mpare)|t61_to_8859|8859_to_t61|d(n2ufn|elete)|unbind|parse_re(sult|ference)|e(rr(no|2str|or)|xplode_dn)|f(irst_(entry|attribute|reference)|ree_result)|add|list|get_(option|dn|entries|values_len|attributes)|re(name|ad)|mod_(del|add|replace)|bind)(?=\\s*\\()",
1737
+ "name": "support.function.ldap.php"
1738
+ },
1739
+ {
1740
+ "match": "(?i)\\blevenshtein(?=\\s*\\()",
1741
+ "name": "support.function.levenshtein.php"
1742
+ },
1743
+ {
1744
+ "match": "(?i)\\blibxml_(set_streams_context|clear_errors|use_internal_errors|get_(errors|last_error))(?=\\s*\\()",
1745
+ "name": "support.function.libxml.php"
1746
+ },
1747
+ {
1748
+ "match": "(?i)\\b(symlink|link(info)?|readlink)(?=\\s*\\()",
1749
+ "name": "support.function.link.php"
1750
+ },
1751
+ {
1752
+ "match": "(?i)\\b(ezmlm_hash|mail)(?=\\s*\\()",
1753
+ "name": "support.function.mail.php"
1754
+ },
1755
+ {
1756
+ "match": "(?i)\\bset_time_limit(?=\\s*\\()",
1757
+ "name": "support.function.main.php"
1758
+ },
1759
+ {
1760
+ "match": "(?i)\\b(h(ypot|exdec)|s(in(h)?|qrt)|number_format|c(os(h)?|eil)|is_(nan|infinite|finite)|tan(h)?|octdec|de(c(hex|oct|bin)|g2rad)|exp(m1)?|p(i|ow)|f(loor|mod)|log(1(p|0))?|a(sin(h)?|cos(h)?|tan(h|2)?|bs)|r(ound|ad2deg)|b(indec|ase_convert))(?=\\s*\\()",
1761
+ "name": "support.function.math.php"
1762
+ },
1763
+ {
1764
+ "match": "(?i)\\bmb_(s(tr(str|cut|to(upper|lower)|i(str|pos|mwidth)|pos|width|len|r(chr|i(chr|pos)|pos))|ubst(itute_character|r(_count)?)|end_mail)|http_(input|output)|c(heck_encoding|onvert_(case|encoding|variables|kana))|internal_encoding|output_handler|de(code_(numericentity|mimeheader)|tect_(order|encoding))|encode_(numericentity|mimeheader)|p(arse_str|referred_mime_name)|l(ist_(encodings(_alias_names)?|mime_names)|anguage)|get_info)(?=\\s*\\()",
1765
+ "name": "support.function.mbstring.php"
1766
+ },
1767
+ {
1768
+ "match": "(?i)\\bm(crypt_(c(fb|reate_iv|bc)|ofb|decrypt|e(cb|nc(_(self_test|is_block_(algorithm(_mode)?|mode)|get_(supported_key_sizes|iv_size|key_size|algorithms_name|modes_name|block_size))|rypt))|list_(algorithms|modes)|ge(neric(_(init|deinit))?|t_(cipher_name|iv_size|key_size|block_size))|module_(self_test|close|is_block_(algorithm(_mode)?|mode)|open|get_(supported_key_sizes|algo_(key_size|block_size))))|decrypt_generic)(?=\\s*\\()",
1769
+ "name": "support.function.mcrypt.php"
1770
+ },
1771
+ {
1772
+ "match": "(?i)\\bmd5(_file)?(?=\\s*\\()",
1773
+ "name": "support.function.md5.php"
1774
+ },
1775
+ {
1776
+ "match": "(?i)\\bmetaphone(?=\\s*\\()",
1777
+ "name": "support.function.metaphone.php"
1778
+ },
1779
+ {
1780
+ "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?(?=\\s*\\()",
1781
+ "name": "support.function.mhash.php"
1782
+ },
1783
+ {
1784
+ "match": "(?i)\\b(get(timeofday|rusage)|microtime)(?=\\s*\\()",
1785
+ "name": "support.function.microtime.php"
1786
+ },
1787
+ {
1788
+ "match": "(?i)\\bmime_content_type(?=\\s*\\()",
1789
+ "name": "support.function.mime_magic.php"
1790
+ },
1791
+ {
1792
+ "match": "(?i)\\b(swf(prebuiltclip_init|videostream_init)|ming_(set(scale|cubicthreshold)|use(swfversion|constants)|keypress))(?=\\s*\\()",
1793
+ "name": "support.function.ming.php"
1794
+ },
1795
+ {
1796
+ "match": "(?i)\\bcurl_multi_(select|close|in(it|fo_read)|exec|add_handle|getcontent|remove_handle)(?=\\s*\\()",
1797
+ "name": "support.function.multi.php"
1798
+ },
1799
+ {
1800
+ "match": "(?i)\\bmysqli_(s(sl_set|t(ore_result|at|mt_(s(tore_result|end_long_data|qlstate)|num_rows|close|in(sert_id|it)|data_seek|p(aram_count|repare)|e(rr(no|or)|xecute)|f(ield_count|etch|ree_result)|a(ttr_(set|get)|ffected_rows)|res(ult_metadata|et)|bind_(param|result)))|e(t_local_infile_(handler|default)|lect_db)|qlstate)|n(um_(fields|rows)|ext_result)|c(ha(nge_user|racter_set_name)|ommit|lose)|thread_(safe|id)|in(sert_id|it|fo)|options|d(ump_debug_info|ebug|ata_seek)|use_result|p(ing|repare)|err(no|or)|kill|f(ield_(seek|count|tell)|etch_(field(s|_direct)?|lengths|row)|ree_result)|warning_count|a(utocommit|ffected_rows)|r(ollback|eal_(connect|escape_string|query))|get_(server_(info|version)|host_info|client_(info|version)|proto_info)|more_results)(?=\\s*\\()",
1801
+ "name": "support.function.mysqli_api.php"
1802
+ },
1803
+ {
1804
+ "match": "(?i)\\bmysqli_embedded_server_(start|end)(?=\\s*\\()",
1805
+ "name": "support.function.mysqli_embedded.php"
1806
+ },
1807
+ {
1808
+ "match": "(?i)\\bmysqli_(s(tmt_get_warnings|et_charset)|connect(_err(no|or))?|query|fetch_(object|a(ssoc|rray))|get_(charset|warnings)|multi_query)(?=\\s*\\()",
1809
+ "name": "support.function.mysqli_nonapi.php"
1810
+ },
1811
+ {
1812
+ "match": "(?i)\\bmysqli_(s(end_query|lave_query)|disable_r(pl_parse|eads_from_master)|enable_r(pl_parse|eads_from_master)|rpl_(p(arse_enabled|robe)|query_type)|master_query)(?=\\s*\\()",
1813
+ "name": "support.function.mysqli_repl.php"
1814
+ },
1815
+ {
1816
+ "match": "(?i)\\bmysqli_report(?=\\s*\\()",
1817
+ "name": "support.function.mysqli_report.php"
1818
+ },
1819
+ {
1820
+ "match": "(?i)\\bdom_namednodemap_(set_named_item(_ns)?|item|remove_named_item(_ns)?|get_named_item(_ns)?)(?=\\s*\\()",
1821
+ "name": "support.function.namednodemap.php"
1822
+ },
1823
+ {
1824
+ "match": "(?i)\\bdom_namelist_get_name(space_uri)?(?=\\s*\\()",
1825
+ "name": "support.function.namelist.php"
1826
+ },
1827
+ {
1828
+ "match": "(?i)\\bncurses_(s(how_panel|cr(_(set|init|dump|restore)|l)|ta(nd(out|end)|rt_color)|lk_(set|noutrefresh|c(olor|lear)|init|touch|attr(set|o(n|ff))?|re(store|fresh))|avetty)|h(ide_panel|line|a(s_(colors|i(c|l)|key)|lfdelay))|n(o(nl|cbreak|echo|qiflush|raw)|ew(_panel|pad|win)|apms|l)|c(olor_(set|content)|urs_set|l(ear|rto(eol|bot))|an_change_color|break)|t(ypeahead|imeout|op_panel|erm(name|attrs))|i(sendwin|n(s(str|ch|tr|delln|ertln)|ch|it(_(color|pair))?))|d(oupdate|e(f(ine_key|_(shell_mode|prog_mode))|l(ch|_panel|eteln|ay_output|win)))|u(se_(default_colors|e(nv|xtended_names))|nget(ch|mouse)|pdate_panels)|p(noutrefresh|utp|a(nel_(window|above|below)|ir_content)|refresh)|e(cho(char)?|nd|rase(char)?)|v(idattr|line)|k(illchar|ey(ok|pad))|qiflush|f(ilter|l(ushinp|ash))|longname|w(stand(out|end)|hline|noutrefresh|c(olor_set|lear)|erase|vline|a(ttr(set|o(n|ff))|dd(str|ch))|getch|refresh|mo(use_trafo|ve)|border)|a(ssume_default_colors|ttr(set|o(n|ff))|dd(str|nstr|ch(str|nstr)?))|r(e(set(ty|_(shell_mode|prog_mode))|place_panel|fresh)|aw)|get(yx|ch|m(ouse|axyx))|b(o(ttom_panel|rder)|eep|kgd(set)?|audrate)|m(o(use(interval|_trafo|mask)|ve(_panel)?)|eta|v(hline|cur|inch|delch|vline|waddstr|add(str|nstr|ch(str|nstr)?)|getch)))(?=\\s*\\()",
1829
+ "name": "support.function.ncurses_functions.php"
1830
+ },
1831
+ {
1832
+ "match": "(?i)\\bdom_node_(set_user_data|has_(child_nodes|attributes)|normalize|c(ompare_document_position|lone_node)|i(s_(s(upported|ame_node)|default_namespace|equal_node)|nsert_before)|lookup_(namespace_uri|prefix)|append_child|get_(user_data|feature)|re(place_child|move_child))(?=\\s*\\()",
1833
+ "name": "support.function.node.php"
1834
+ },
1835
+ {
1836
+ "match": "(?i)\\bdom_nodelist_item(?=\\s*\\()",
1837
+ "name": "support.function.nodelist.php"
1838
+ },
1839
+ {
1840
+ "match": "(?i)\\bnsapi_(virtual|re(sponse_headers|quest_headers))(?=\\s*\\()",
1841
+ "name": "support.function.nsapi.php"
1842
+ },
1843
+ {
1844
+ "match": "(?i)\\boci(setbufferinglob|_(s(tatement_type|e(t_prefetch|rver_version))|c(o(nnect|llection_(size|trim|element_(assign|get)|a(ssign|ppend)|max)|mmit)|lose|ancel)|n(um_(fields|rows)|ew_(c(o(nnect|llection)|ursor)|descriptor))|internal_debug|define_by_name|p(connect|a(ssword_change|rse))|e(rror|xecute)|f(ield_(s(cale|ize)|name|is_null|type(_raw)?|precision)|etch(_(object|a(ssoc|ll|rray)|row))?|ree_(statement|collection|descriptor))|lob_(s(ize|eek|ave)|c(opy|lose)|t(ell|runcate)|i(s_equal|mport)|e(of|rase|xport)|flush|append|write(_temporary)?|load|re(wind|ad))|r(ollback|esult)|bind_(array_by_name|by_name))|fetchinto|getbufferinglob)(?=\\s*\\()",
1845
+ "name": "support.function.oci8_interface.php"
1846
+ },
1847
+ {
1848
+ "match": "(?i)\\bopenssl_(s(ign|eal)|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|open|error_string|p(ublic_(decrypt|encrypt)|k(cs(12_(export(_to_file)?|read)|7_(sign|decrypt|encrypt|verify))|ey_(new|export(_to_file)?|free|get_(details|p(ublic|rivate))))|rivate_(decrypt|encrypt))|verify|x509_(check(_private_key|purpose)|parse|export(_to_file)?|free|read))(?=\\s*\\()",
1849
+ "name": "support.function.openssl.php"
1850
+ },
1851
+ {
1852
+ "match": "(?i)\\bo(utput_(add_rewrite_var|reset_rewrite_vars)|b_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|get_(status|c(ontents|lean)|flush|le(ngth|vel))))(?=\\s*\\()",
1853
+ "name": "support.function.output.php"
1854
+ },
1855
+ {
1856
+ "match": "(?i)\\b(unpack|pack)(?=\\s*\\()",
1857
+ "name": "support.function.pack.php"
1858
+ },
1859
+ {
1860
+ "match": "(?i)\\bget(lastmod|my(inode|uid|pid|gid))(?=\\s*\\()",
1861
+ "name": "support.function.pageinfo.php"
1862
+ },
1863
+ {
1864
+ "match": "(?i)\\bpcntl_(s(ignal|etpriority)|exec|fork|w(stopsig|termsig|if(s(ignaled|topped)|exited)|exitstatus|ait(pid)?)|alarm|getpriority)(?=\\s*\\()",
1865
+ "name": "support.function.pcntl.php"
1866
+ },
1867
+ {
1868
+ "match": "(?i)\\bpdo_drivers(?=\\s*\\()",
1869
+ "name": "support.function.pdo.php"
1870
+ },
1871
+ {
1872
+ "match": "(?i)\\bpdo_drivers(?=\\s*\\()",
1873
+ "name": "support.function.pdo_dbh.php"
1874
+ },
1875
+ {
1876
+ "match": "(?i)\\bpg_(se(nd_(execute|prepare|query(_params)?)|t_(client_encoding|error_verbosity)|lect)|host|num_(fields|rows)|c(o(n(nect(ion_(status|reset|busy))?|vert)|py_(to|from))|ancel_query|l(ient_encoding|ose))|insert|t(ty|ra(nsaction_status|ce))|options|d(elete|bname)|u(n(trace|escape_bytea)|pdate)|e(scape_(string|bytea)|nd_copy|xecute)|p(connect|ing|ort|ut_line|arameter_status|repare)|version|f(ield_(size|n(um|ame)|is_null|t(ype(_oid)?|able)|prtlen)|etch_(object|a(ssoc|ll(_columns)?|rray)|r(ow|esult))|ree_result)|query(_params)?|affected_rows|l(o_(seek|c(lose|reate)|tell|import|open|unlink|export|write|read(_all)?)|ast_(notice|oid|error))|get_(notify|pid|result)|result_(s(tatus|eek)|error(_field)?)|meta_data)(?=\\s*\\()",
1877
+ "name": "support.function.pgsql.php"
1878
+ },
1879
+ {
1880
+ "match": "(?i)\\b(virtual|apache_(setenv|note|child_terminate|lookup_uri|get_(version|modules)|re(s(et_timeout|ponse_headers)|quest_(s(ome_auth_required|ub_req_(lookup_(uri|file)|method_uri)|e(t_(etag|last_modified)|rver_port)|atisfies)|headers(_(in|out))?|is_initial_req|discard_request_body|update_mtime|err_headers_out|log_error|auth_(name|type)|r(un|emote_host)|meets_conditions)))|getallheaders)(?=\\s*\\()",
1881
+ "name": "support.function.php_apache.php"
1882
+ },
1883
+ {
1884
+ "match": "(?i)\\b(str(totime|ftime)|checkdate|time(zone_(name_(from_abbr|get)|identifiers_list|transitions_get|o(pen|ffset_get)|abbreviations_list))?|idate|date(_(sun(set|_info|rise)|create|isodate_set|time(zone_(set|get)|_set)|d(efault_timezone_(set|get)|ate_set)|offset_get|parse|format|modify))?|localtime|g(etdate|m(strftime|date|mktime))|mktime)(?=\\s*\\()",
1885
+ "name": "support.function.php_date.php"
1886
+ },
1887
+ {
1888
+ "match": "(?i)\\bdom_import_simplexml(?=\\s*\\()",
1889
+ "name": "support.function.php_dom.php"
1890
+ },
1891
+ {
1892
+ "match": "(?i)\\bfbsql_(hostname|s(t(op_db|art_db)|e(t_(characterset|transaction|password|lob_mode)|lect_db))|n(um_(fields|rows)|ext_result)|c(hange_user|o(nnect|mmit)|lo(se|b_size)|reate_(clob|db|blob))|table_name|insert_id|d(ata(_seek|base(_password)?)|rop_db|b_(status|query))|username|err(no|or)|p(connect|assword)|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|query|warnings|list_(tables|dbs|fields)|a(utocommit|ffected_rows)|get_autostart_info|r(o(ws_fetched|llback)|e(sult|ad_(clob|blob)))|blob_size)(?=\\s*\\()",
1893
+ "name": "support.function.php_fbsql.php"
1894
+ },
1895
+ {
1896
+ "match": "(?i)\\bftp_(s(sl_connect|ystype|i(te|ze)|et_option)|n(list|b_(continue|put|f(put|get)|get))|c(h(dir|mod)|dup|onnect|lose)|delete|exec|p(ut|asv|wd)|f(put|get)|alloc|login|get(_option)?|r(ename|aw(list)?|mdir)|m(dtm|kdir))(?=\\s*\\()",
1897
+ "name": "support.function.php_ftp.php"
1898
+ },
1899
+ {
1900
+ "match": "(?i)\\b(virtual|apache_(setenv|note|get(_(version|modules)|env)|response_headers)|getallheaders)(?=\\s*\\()",
1901
+ "name": "support.function.php_functions.php"
1902
+ },
1903
+ {
1904
+ "match": "(?i)\\bimap_(header(s|info)|s(can|tatus|ort|ubscribe|e(t(_quota|flag_full|acl)|arch)|avebody)|c(heck|l(ose|earflag_full)|reatemailbox)|num_(recent|msg)|t(hread|imeout)|8bit|delete(mailbox)?|open|u(n(subscribe|delete)|id|tf(7_(decode|encode)|8))|e(rrors|xpunge)|ping|qprint|fetch(header|structure|_overview|body)|l(sub|ist|ast_error)|a(ppend|lerts)|get(subscribed|_quota(root)?|acl|mailboxes)|r(e(namemailbox|open)|fc822_(parse_(headers|adrlist)|write_address))|m(sgno|ime_header_decode|ail(_(co(py|mpose)|move)|boxmsginfo)?)|b(inary|ody(struct)?|ase64))(?=\\s*\\()",
1905
+ "name": "support.function.php_imap.php"
1906
+ },
1907
+ {
1908
+ "match": "(?i)\\bmb_(split|ereg(i(_replace)?|_(search(_(setpos|init|pos|get(pos|regs)|regs))?|replace|match))?|regex_(set_options|encoding))(?=\\s*\\()",
1909
+ "name": "support.function.php_mbregex.php"
1910
+ },
1911
+ {
1912
+ "match": "(?i)\\bsmfi_(set(timeout|flags|reply)|chgheader|delrcpt|add(header|rcpt)|replacebody|getsymval)(?=\\s*\\()",
1913
+ "name": "support.function.php_milter.php"
1914
+ },
1915
+ {
1916
+ "match": "(?i)\\bmsql_(select_db|num_(fields|rows)|c(onnect|lose|reate_db)|d(ata_seek|rop_db|b_query)|error|pconnect|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|array|row)|ree_result)|query|affected_rows|list_(tables|dbs|fields)|result)(?=\\s*\\()",
1917
+ "name": "support.function.php_msql.php"
1918
+ },
1919
+ {
1920
+ "match": "(?i)\\bmssql_(select_db|n(um_(fields|rows)|ext_result)|c(onnect|lose)|init|data_seek|execute|pconnect|query|f(ield_(seek|name|type|length)|etch_(object|field|a(ssoc|rray)|row|batch)|ree_(statement|result))|g(uid_string|et_last_message)|r(ows_affected|esult)|bind|min_(error_severity|message_severity))(?=\\s*\\()",
1921
+ "name": "support.function.php_mssql.php"
1922
+ },
1923
+ {
1924
+ "match": "(?i)\\bmysql_(s(tat|e(t_charset|lect_db))|num_(fields|rows)|c(onnect|l(ient_encoding|ose)|reate_db)|thread_id|in(sert_id|fo)|d(ata_seek|rop_db|b_query)|unbuffered_query|e(scape_string|rr(no|or))|p(connect|ing)|f(ield_(seek|name|t(ype|able)|flags|len)|etch_(object|field|lengths|a(ssoc|rray)|row)|ree_result)|query|affected_rows|list_(tables|dbs|processes|fields)|re(sult|al_escape_string)|get_(server_info|host_info|client_info|proto_info))(?=\\s*\\()",
1925
+ "name": "support.function.php_mysql.php"
1926
+ },
1927
+ {
1928
+ "match": "(?i)\\b(solid_fetch_prev|odbc_(s(tatistics|pecialcolumns|etoption)|n(um_(fields|rows)|ext_result)|c(o(nnect|lumn(s|privileges)|mmit)|ursor|lose(_all)?)|table(s|privileges)|data_source|e(rror(msg)?|xec(ute)?)|p(connect|r(imarykeys|ocedure(s|columns)|epare))|f(ield_(scale|n(um|ame)|type|len)|oreignkeys|etch_(into|object|array|row)|ree_result)|autocommit|longreadlen|gettypeinfo|r(ollback|esult(_all)?)|binmode))(?=\\s*\\()",
1929
+ "name": "support.function.php_odbc.php"
1930
+ },
1931
+ {
1932
+ "match": "(?i)\\bpreg_(split|quote|last_error|grep|replace(_callback)?|match(_all)?)(?=\\s*\\()",
1933
+ "name": "support.function.php_pcre.php"
1934
+ },
1935
+ {
1936
+ "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|parents))(?=\\s*\\()",
1937
+ "name": "support.function.php_spl.php"
1938
+ },
1939
+ {
1940
+ "match": "(?i)\\bsybase_(se(t_message_handler|lect_db)|num_(fields|rows)|c(onnect|lose)|d(eadlock_retry_count|ata_seek)|unbuffered_query|pconnect|f(ield_seek|etch_(object|field|a(ssoc|rray)|row)|ree_result)|query|affected_rows|result|get_last_message|min_(server_severity|client_severity))(?=\\s*\\()",
1941
+ "name": "support.function.php_sybase_ct.php"
1942
+ },
1943
+ {
1944
+ "match": "(?i)\\bsybase_(select_db|num_(fields|rows)|c(onnect|lose)|data_seek|pconnect|f(ield_seek|etch_(object|field|array|row)|ree_result)|query|affected_rows|result|get_last_message|min_(error_severity|message_severity))(?=\\s*\\()",
1945
+ "name": "support.function.php_sybase_db.php"
1946
+ },
1947
+ {
1948
+ "match": "(?i)\\bxmlwriter_(s(tart_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element(_ns)?|attribute(_ns)?)|et_indent(_string)?)|text|o(utput_memory|pen_(uri|memory))|end_(c(omment|data)|d(td(_(e(ntity|lement)|attlist))?|ocument)|pi|element|attribute)|f(ull_end_element|lush)|write_(c(omment|data)|dtd(_(e(ntity|lement)|attlist))?|pi|element(_ns)?|attribute(_ns)?|raw))(?=\\s*\\()",
1949
+ "name": "support.function.php_xmlwriter.php"
1950
+ },
1951
+ {
1952
+ "match": "(?i)\\b(s(tat(Name|Index)|et(Comment(Name|Index)|ArchiveComment))|c(lose|reateEmptyDir)|delete(Name|Index)|open|zip_(close|open|entry_(name|c(ompress(ionmethod|edsize)|lose)|open|filesize|read)|read)|unchange(Name|Index|All)|locateName|addF(ile|romString)|rename(Name|Index)|get(Stream|Comment(Name|Index)|NameIndex|From(Name|Index)|ArchiveComment))(?=\\s*\\()",
1953
+ "name": "support.function.php_zip.php"
1954
+ },
1955
+ {
1956
+ "match": "(?i)\\bposix_(s(trerror|et(sid|uid|pgid|e(uid|gid)|gid))|ctermid|i(satty|nitgroups)|t(tyname|imes)|uname|kill|access|get(sid|cwd|_last_error|uid|e(uid|gid)|p(id|pid|w(nam|uid)|g(id|rp))|login|rlimit|g(id|r(nam|oups|gid)))|mk(nod|fifo))(?=\\s*\\()",
1957
+ "name": "support.function.posix.php"
1958
+ },
1959
+ {
1960
+ "match": "(?i)\\bproc_(close|terminate|open|get_status)(?=\\s*\\()",
1961
+ "name": "support.function.proc_open.php"
1962
+ },
1963
+ {
1964
+ "match": "(?i)\\bpspell_(s(tore_replacement|uggest|ave_wordlist)|c(heck|onfig_(save_repl|create|ignore|d(ict_dir|ata_dir)|personal|r(untogether|epl)|mode)|lear_session)|new(_(config|personal))?|add_to_(session|personal))(?=\\s*\\()",
1965
+ "name": "support.function.pspell.php"
1966
+ },
1967
+ {
1968
+ "match": "(?i)\\bquoted_printable_decode(?=\\s*\\()",
1969
+ "name": "support.function.quot_print.php"
1970
+ },
1971
+ {
1972
+ "match": "(?i)\\b(srand|getrandmax|rand|mt_(srand|getrandmax|rand))(?=\\s*\\()",
1973
+ "name": "support.function.rand.php"
1974
+ },
1975
+ {
1976
+ "match": "(?i)\\breadline(_(c(ompletion_function|allback_(handler_(install|remove)|read_char)|lear_history)|info|on_new_line|write_history|list_history|add_history|re(display|ad_history)))?(?=\\s*\\()",
1977
+ "name": "support.function.readline.php"
1978
+ },
1979
+ {
1980
+ "match": "(?i)\\brecode_(string|file)(?=\\s*\\()",
1981
+ "name": "support.function.recode.php"
1982
+ },
1983
+ {
1984
+ "match": "(?i)\\b(s(plit(i)?|ql_regcase)|ereg(i(_replace)?|_replace)?)(?=\\s*\\()",
1985
+ "name": "support.function.reg.php"
1986
+ },
1987
+ {
1988
+ "match": "(?i)\\bsession_(s(tart|et_(save_handler|cookie_params)|ave_path)|cache_(expire|limiter)|name|i(s_registered|d)|de(stroy|code)|un(set|register)|encode|write_close|reg(ister|enerate_id)|get_cookie_params|module_name)(?=\\s*\\()",
1989
+ "name": "support.function.session.php"
1990
+ },
1991
+ {
1992
+ "match": "(?i)\\bsha1(_file)?(?=\\s*\\()",
1993
+ "name": "support.function.sha1.php"
1994
+ },
1995
+ {
1996
+ "match": "(?i)\\bshmop_(size|close|delete|open|write|read)(?=\\s*\\()",
1997
+ "name": "support.function.shmop.php"
1998
+ },
1999
+ {
2000
+ "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))(?=\\s*\\()",
2001
+ "name": "support.function.simplexml.php"
2002
+ },
2003
+ {
2004
+ "match": "(?i)\\bconfirm_extname_compiled(?=\\s*\\()",
2005
+ "name": "support.function.skeleton.php"
2006
+ },
2007
+ {
2008
+ "match": "(?i)\\b(snmp(set|2_(set|walk|real_walk|get(next)?)|3_(set|walk|real_walk|get(next)?)|_(set_(oid_output_format|enum_print|valueretrieval|quick_print)|read_mib|get_(valueretrieval|quick_print))|walk|realwalk|get(next)?)|php_snmpv3)(?=\\s*\\()",
2009
+ "name": "support.function.snmp.php"
2010
+ },
2011
+ {
2012
+ "match": "(?i)\\bsocket_(s(hutdown|trerror|e(nd(to)?|t_(nonblock|option|block)|lect))|c(onnect|l(ose|ear_error)|reate(_(pair|listen))?)|write|l(isten|ast_error)|accept|get(sockname|_option|peername)|re(cv(from)?|ad)|bind)(?=\\s*\\()",
2013
+ "name": "support.function.sockets.php"
2014
+ },
2015
+ {
2016
+ "match": "(?i)\\bsoundex(?=\\s*\\()",
2017
+ "name": "support.function.soundex.php"
2018
+ },
2019
+ {
2020
+ "match": "(?i)\\biterator_(count|to_array|apply)(?=\\s*\\()",
2021
+ "name": "support.function.spl_iterators.php"
2022
+ },
2023
+ {
2024
+ "match": "(?i)\\bsqlite_(has_prev|s(ingle_query|eek)|n(um_(fields|rows)|ext)|c(hanges|olumn|urrent|lose|reate_(function|aggregate))|open|u(nbuffered_query|df_(decode_binary|encode_binary))|e(scape_string|rror_string|xec)|p(open|rev)|key|valid|query|f(ield_name|etch_(single|column_types|object|a(ll|rray))|actory)|l(ib(encoding|version)|ast_(insert_rowid|error))|array_query|rewind|busy_timeout)(?=\\s*\\()",
2025
+ "name": "support.function.sqlite.php"
2026
+ },
2027
+ {
2028
+ "match": "(?i)\\bstream_(s(ocket_(s(hutdown|e(ndto|rver))|client|enable_crypto|pair|accept|recvfrom|get_name)|e(t_(timeout|write_buffer|blocking)|lect))|co(ntext_(set_(option|params)|create|get_(default|options))|py_to_stream)|filter_(prepend|append|remove)|get_(contents|transports|line|wrappers|meta_data))(?=\\s*\\()",
2029
+ "name": "support.function.streamsfuncs.php"
2030
+ },
2031
+ {
2032
+ "match": "(?i)\\b(hebrev(c)?|s(scanf|imilar_text|tr(s(tr|pn)|natc(asecmp|mp)|c(hr|spn|oll)|i(str|p(slashes|cslashes|os|_tags))|t(o(upper|k|lower)|r)|_(s(huffle|plit)|ireplace|pad|word_count|r(ot13|ep(eat|lace)))|p(os|brk)|r(chr|ipos|ev|pos))|ubstr(_(co(unt|mpare)|replace))?|etlocale)|c(h(unk_split|r)|ount_chars)|nl(2br|_langinfo)|implode|trim|ord|dirname|uc(first|words)|join|pa(thinfo|rse_str)|explode|quotemeta|add(slashes|cslashes)|wordwrap|l(trim|ocaleconv)|rtrim|money_format|b(in2hex|asename))(?=\\s*\\()",
2033
+ "name": "support.function.string.php"
2034
+ },
2035
+ {
2036
+ "match": "(?i)\\bdom_string_extend_find_offset(16|32)(?=\\s*\\()",
2037
+ "name": "support.function.string_extend.php"
2038
+ },
2039
+ {
2040
+ "match": "(?i)\\b(syslog|closelog|openlog|define_syslog_variables)(?=\\s*\\()",
2041
+ "name": "support.function.syslog.php"
2042
+ },
2043
+ {
2044
+ "match": "(?i)\\bmsg_(s(tat_queue|e(nd|t_queue))|re(ceive|move_queue)|get_queue)(?=\\s*\\()",
2045
+ "name": "support.function.sysvmsg.php"
2046
+ },
2047
+ {
2048
+ "match": "(?i)\\bsem_(acquire|re(lease|move)|get)(?=\\s*\\()",
2049
+ "name": "support.function.sysvsem.php"
2050
+ },
2051
+ {
2052
+ "match": "(?i)\\bshm_(detach|put_var|attach|get_var|remove(_var)?)(?=\\s*\\()",
2053
+ "name": "support.function.sysvshm.php"
2054
+ },
2055
+ {
2056
+ "match": "(?i)\\bdom_text_(split_text|is_whitespace_in_element_content|replace_whole_text)(?=\\s*\\()",
2057
+ "name": "support.function.text.php"
2058
+ },
2059
+ {
2060
+ "match": "(?i)\\btidy_(c(onfig_count|lean_repair)|is_x(html|ml)|diagnose|error_count|parse_(string|file)|access_count|warning_count|repair_(string|file)|get(opt|_(h(tml(_ver)?|ead)|status|config|o(utput|pt_doc)|error_buffer|r(oot|elease)|body)))(?=\\s*\\()",
2061
+ "name": "support.function.tidy.php"
2062
+ },
2063
+ {
2064
+ "match": "(?i)\\btoken_(name|get_all)(?=\\s*\\()",
2065
+ "name": "support.function.tokenizer.php"
2066
+ },
2067
+ {
2068
+ "match": "(?i)\\b(s(trval|ettype)|i(s_(s(calar|tring)|callable|nu(ll|meric)|object|float|array|long|resource|bool)|ntval)|floatval|gettype)(?=\\s*\\()",
2069
+ "name": "support.function.type.php"
2070
+ },
2071
+ {
2072
+ "match": "(?i)\\buniqid(?=\\s*\\()",
2073
+ "name": "support.function.uniqid.php"
2074
+ },
2075
+ {
2076
+ "match": "(?i)\\b(url(decode|encode)|parse_url|get_headers|rawurl(decode|encode))(?=\\s*\\()",
2077
+ "name": "support.function.url.php"
2078
+ },
2079
+ {
2080
+ "match": "(?i)\\bstream_(filter_register|get_filters|bucket_(new|prepend|append|make_writeable))(?=\\s*\\()",
2081
+ "name": "support.function.user_filters.php"
2082
+ },
2083
+ {
2084
+ "match": "(?i)\\bdom_userdatahandler_handle(?=\\s*\\()",
2085
+ "name": "support.function.userdatahandler.php"
2086
+ },
2087
+ {
2088
+ "match": "(?i)\\bstream_wrapper_(unregister|re(store|gister))(?=\\s*\\()",
2089
+ "name": "support.function.userspace.php"
2090
+ },
2091
+ {
2092
+ "match": "(?i)\\bconvert_uu(decode|encode)(?=\\s*\\()",
2093
+ "name": "support.function.uuencode.php"
2094
+ },
2095
+ {
2096
+ "match": "(?i)\\b(serialize|debug_zval_dump|unserialize|var_(dump|export)|memory_get_(usage|peak_usage))(?=\\s*\\()",
2097
+ "name": "support.function.var.php"
2098
+ },
2099
+ {
2100
+ "match": "(?i)\\bversion_compare(?=\\s*\\()",
2101
+ "name": "support.function.versioning.php"
2102
+ },
2103
+ {
2104
+ "match": "(?i)\\bwddx_(serialize_va(lue|rs)|deserialize|packet_(start|end)|add_vars)(?=\\s*\\()",
2105
+ "name": "support.function.wddx.php"
2106
+ },
2107
+ {
2108
+ "match": "(?i)\\b(utf8_(decode|encode)|xml_(set_(start_namespace_decl_handler|notation_decl_handler|character_data_handler|default_handler|object|unparsed_entity_decl_handler|processing_instruction_handler|e(nd_namespace_decl_handler|lement_handler|xternal_entity_ref_handler))|error_string|parse(_into_struct|r_(set_option|create(_ns)?|free|get_option))?|get_(current_(column_number|line_number|byte_index)|error_code)))(?=\\s*\\()",
2109
+ "name": "support.function.xml.php"
2110
+ },
2111
+ {
2112
+ "match": "(?i)\\bxmlrpc_(se(t_type|rver_(c(all_method|reate)|destroy|add_introspection_data|register_(introspection_callback|method)))|is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|get_type)(?=\\s*\\()",
2113
+ "name": "support.function.xmlrpc-epi-php.php"
2114
+ },
2115
+ {
2116
+ "match": "(?i)\\bdom_xpath_(evaluate|query|register_ns)(?=\\s*\\()",
2117
+ "name": "support.function.xpath.php"
2118
+ },
2119
+ {
2120
+ "match": "(?i)\\bxsl_xsltprocessor_(has_exslt_support|set_parameter|transform_to_(doc|uri|xml)|import_stylesheet|re(gister_php_functions|move_parameter)|get_parameter)(?=\\s*\\()",
2121
+ "name": "support.function.xsltprocessor.php"
2122
+ },
2123
+ {
2124
+ "match": "(?i)\\b(ob_gzhandler|zlib_get_coding_type|readgzfile|gz(compress|inflate|deflate|open|uncompress|encode|file))(?=\\s*\\()",
2125
+ "name": "support.function.zlib.php"
2126
+ },
2127
+ {
2128
+ "match": "(?i)\\bis_int(eger)?(?=\\s*\\()",
2129
+ "name": "support.function.alias.php"
2130
+ },
2131
+ {
2132
+ "match": "(?i)\\b(Re(cursive(RegexIterator|CachingIterator|IteratorIterator|DirectoryIterator|FilterIterator|ArrayIterator)|flection(Method|Class|Object|Extension|P(arameter|roperty)|Function)?|gexIterator)|s(tdClass|wf(s(hape|ound|prite)|text(field)?|displayitem|f(ill|ont(cha(r)?)?)|action|gradient|mo(vie|rph)|b(itmap|utton)))|XMLReader|tidyNode|S(impleXML(Iterator|Element)|oap(Server|Header|Client|Param|Var|Fault)|pl(TempFileObject|ObjectStorage|File(Info|Object)))|NoRewindIterator|C(OMPersistHelper|achingIterator)|I(nfiniteIterator|teratorIterator)|D(irectoryIterator|OM(XPath|Node|C(omment|dataSection)|Text|Document(Fragment)?|ProcessingInstruction|E(ntityReference|lement)|Attr))|P(DO(Statement)?|arentIterator)|E(rrorException|mptyIterator|xception)|FilterIterator|LimitIterator|A(p(pendIterator|acheRequest)|rray(Iterator|Object)))(?=\\s*\\()",
2133
+ "name": "support.class.builtin.php"
2134
+ },
2135
+ {
2136
+ "match": "(?i)\\b((print|echo)\\b|(isset|unset|e(val|mpty)|list)(?=\\s*\\())",
2137
+ "name": "support.function.construct.php"
2138
+ }
2139
+ ]
2140
+ },
2141
+ "var_basic": {
2142
+ "captures": {
2143
+ "1": {
2144
+ "name": "punctuation.definition.variable.php"
2145
+ }
2146
+ },
2147
+ "match": "(?x)\n\t\t\t (\\$+)[a-zA-Z_\\x{7f}-\\x{ff}]\n\t\t\t [a-zA-Z0-9_\\x{7f}-\\x{ff}]*?\\b",
2148
+ "name": "variable.other.php"
2149
+ },
2150
+ "var_global": {
2151
+ "captures": {
2152
+ "1": {
2153
+ "name": "punctuation.definition.variable.php"
2154
+ }
2155
+ },
2156
+ "match": "(\\$)(_(COOKIE|FILES|GET|POST|REQUEST))\\b",
2157
+ "name": "variable.other.global.php"
2158
+ },
2159
+ "var_global_safer": {
2160
+ "captures": {
2161
+ "2": {
2162
+ "name": "punctuation.definition.variable.php"
2163
+ }
2164
+ },
2165
+ "match": "((\\$)(GLOBALS|_(ENV|SERVER|SESSION)))|\\b(global)\\b",
2166
+ "name": "variable.other.global.safer.php"
2167
+ },
2168
+ "variables": {
2169
+ "patterns": [
2170
+ {
2171
+ "include": "#var_global"
2172
+ },
2173
+ {
2174
+ "include": "#var_global_safer"
2175
+ },
2176
+ {
2177
+ "include": "#var_basic"
2178
+ }
2179
+ ]
2180
+ }
2181
+ },
2182
+ "scopeName": "source.php",
2183
+ "uuid": "22986475-8CA5-11D9-AEDD-000D93C8BE28"
2184
+ }