ultraviolet 0.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (212) hide show
  1. data/History.txt +5 -0
  2. data/Manifest.txt +216 -0
  3. data/README.txt +52 -0
  4. data/Rakefile +51 -0
  5. data/bin/theme2render +104 -0
  6. data/bin/uv +162 -0
  7. data/lib/uv.rb +84 -0
  8. data/lib/uv/html_processor.rb +89 -0
  9. data/render/old/txt2tags.render +131 -0
  10. data/render/xhtml/active4d.render +105 -0
  11. data/render/xhtml/all_hallows_eve.render +69 -0
  12. data/render/xhtml/amy.render +144 -0
  13. data/render/xhtml/blackboard.render +84 -0
  14. data/render/xhtml/brilliance_black.render +575 -0
  15. data/render/xhtml/brilliance_dull.render +534 -0
  16. data/render/xhtml/cobalt.render +135 -0
  17. data/render/xhtml/dawn.render +99 -0
  18. data/render/xhtml/eiffel.render +105 -0
  19. data/render/xhtml/espresso_libre.render +96 -0
  20. data/render/xhtml/files/css/active4d.css +114 -0
  21. data/render/xhtml/files/css/all_hallows_eve.css +72 -0
  22. data/render/xhtml/files/css/amy.css +144 -0
  23. data/render/xhtml/files/css/blackboard.css +88 -0
  24. data/render/xhtml/files/css/brilliance_black.css +632 -0
  25. data/render/xhtml/files/css/brilliance_dull.css +579 -0
  26. data/render/xhtml/files/css/cobalt.css +149 -0
  27. data/render/xhtml/files/css/dawn.css +121 -0
  28. data/render/xhtml/files/css/eiffel.css +121 -0
  29. data/render/xhtml/files/css/espresso_libre.css +109 -0
  30. data/render/xhtml/files/css/idle.css +62 -0
  31. data/render/xhtml/files/css/iplastic.css +80 -0
  32. data/render/xhtml/files/css/lazy.css +73 -0
  33. data/render/xhtml/files/css/mac_classic.css +123 -0
  34. data/render/xhtml/files/css/magicwb_amiga.css +101 -0
  35. data/render/xhtml/files/css/pastels_on_dark.css +188 -0
  36. data/render/xhtml/files/css/slush_poppies.css +85 -0
  37. data/render/xhtml/files/css/spacecadet.css +51 -0
  38. data/render/xhtml/files/css/sunburst.css +180 -0
  39. data/render/xhtml/files/css/twilight.css +137 -0
  40. data/render/xhtml/files/css/zenburnesque.css +88 -0
  41. data/render/xhtml/idle.render +66 -0
  42. data/render/xhtml/iplastic.render +72 -0
  43. data/render/xhtml/lazy.render +69 -0
  44. data/render/xhtml/mac_classic.render +108 -0
  45. data/render/xhtml/magicwb_amiga.render +90 -0
  46. data/render/xhtml/pastels_on_dark.render +177 -0
  47. data/render/xhtml/slush_poppies.render +96 -0
  48. data/render/xhtml/spacecadet.render +54 -0
  49. data/render/xhtml/sunburst.render +159 -0
  50. data/render/xhtml/twilight.render +126 -0
  51. data/render/xhtml/zenburnesque.render +99 -0
  52. data/syntax/actionscript.syntax +97 -0
  53. data/syntax/active4d.syntax +276 -0
  54. data/syntax/active4d_html.syntax +311 -0
  55. data/syntax/active4d_ini.syntax +50 -0
  56. data/syntax/active4d_library.syntax +21 -0
  57. data/syntax/ada.syntax +33 -0
  58. data/syntax/antlr.syntax +128 -0
  59. data/syntax/apache.syntax +176 -0
  60. data/syntax/applescript.syntax +384 -0
  61. data/syntax/asp.syntax +70 -0
  62. data/syntax/asp_vb.net.syntax +129 -0
  63. data/syntax/bibtex.syntax +151 -0
  64. data/syntax/blog_html.syntax +41 -0
  65. data/syntax/blog_markdown.syntax +42 -0
  66. data/syntax/blog_text.syntax +27 -0
  67. data/syntax/blog_textile.syntax +27 -0
  68. data/syntax/buggy/nemerle.yaml +74 -0
  69. data/syntax/build.syntax +53 -0
  70. data/syntax/bulletin_board.syntax +287 -0
  71. data/syntax/c++.syntax +109 -0
  72. data/syntax/c.syntax +326 -0
  73. data/syntax/cake.syntax +55 -0
  74. data/syntax/camlp4.syntax +36 -0
  75. data/syntax/coldfusion.syntax +118 -0
  76. data/syntax/context_free.syntax +176 -0
  77. data/syntax/cs.syntax +59 -0
  78. data/syntax/css.syntax +190 -0
  79. data/syntax/css_experimental.syntax +1925 -0
  80. data/syntax/csv.syntax +68 -0
  81. data/syntax/d.syntax +138 -0
  82. data/syntax/diff.syntax +81 -0
  83. data/syntax/dokuwiki.syntax +204 -0
  84. data/syntax/dot.syntax +47 -0
  85. data/syntax/doxygen.syntax +43 -0
  86. data/syntax/dylan.syntax +62 -0
  87. data/syntax/eiffel.syntax +78 -0
  88. data/syntax/erlang.syntax +922 -0
  89. data/syntax/f-script.syntax +80 -0
  90. data/syntax/fortran.syntax +141 -0
  91. data/syntax/fxscript.syntax +142 -0
  92. data/syntax/greasemonkey.syntax +34 -0
  93. data/syntax/gri.syntax +83 -0
  94. data/syntax/groovy.syntax +189 -0
  95. data/syntax/gtd2_text.syntax +31 -0
  96. data/syntax/gtdalt.syntax +143 -0
  97. data/syntax/haml.syntax +88 -0
  98. data/syntax/haskell.syntax +88 -0
  99. data/syntax/html-asp.syntax +27 -0
  100. data/syntax/html.syntax +362 -0
  101. data/syntax/html_django.syntax +36 -0
  102. data/syntax/html_for_asp.net.syntax +424 -0
  103. data/syntax/html_mason.syntax +119 -0
  104. data/syntax/html_rails.syntax +40 -0
  105. data/syntax/html_tcl.syntax +26 -0
  106. data/syntax/icalendar.syntax +32 -0
  107. data/syntax/inform.syntax +48 -0
  108. data/syntax/ini.syntax +54 -0
  109. data/syntax/installer_distribution_script.syntax +77 -0
  110. data/syntax/io.syntax +81 -0
  111. data/syntax/java.syntax +211 -0
  112. data/syntax/javaproperties.syntax +20 -0
  113. data/syntax/javascript.syntax +255 -0
  114. data/syntax/javascript_+_prototype.syntax +72 -0
  115. data/syntax/javascript_+_prototype_bracketed.syntax +140 -0
  116. data/syntax/jquery_javascript.syntax +114 -0
  117. data/syntax/json.syntax +136 -0
  118. data/syntax/languagedefinition.syntax +697 -0
  119. data/syntax/latex.syntax +566 -0
  120. data/syntax/latex_beamer.syntax +41 -0
  121. data/syntax/latex_log.syntax +50 -0
  122. data/syntax/latex_memoir.syntax +64 -0
  123. data/syntax/lexflex.syntax +219 -0
  124. data/syntax/lighttpd.syntax +54 -0
  125. data/syntax/lilypond.syntax +492 -0
  126. data/syntax/lisp.syntax +61 -0
  127. data/syntax/literate_haskell.syntax +24 -0
  128. data/syntax/logo.syntax +29 -0
  129. data/syntax/logtalk.syntax +152 -0
  130. data/syntax/lua.syntax +86 -0
  131. data/syntax/m.syntax +142 -0
  132. data/syntax/macports_portfile.syntax +143 -0
  133. data/syntax/mail.syntax +118 -0
  134. data/syntax/makefile.syntax +35 -0
  135. data/syntax/man.syntax +17 -0
  136. data/syntax/markdown.syntax +543 -0
  137. data/syntax/mediawiki.syntax +567 -0
  138. data/syntax/mel.syntax +92 -0
  139. data/syntax/mips.syntax +66 -0
  140. data/syntax/mod_perl.syntax +50 -0
  141. data/syntax/modula-3.syntax +47 -0
  142. data/syntax/moinmoin.syntax +189 -0
  143. data/syntax/mootools.syntax +572 -0
  144. data/syntax/movable_type.syntax +162 -0
  145. data/syntax/multimarkdown.syntax +39 -0
  146. data/syntax/objective-c++.syntax +18 -0
  147. data/syntax/objective-c.syntax +226 -0
  148. data/syntax/ocaml.syntax +764 -0
  149. data/syntax/ocamllex.syntax +167 -0
  150. data/syntax/ocamlyacc.syntax +184 -0
  151. data/syntax/old/YAML.yaml +160 -0
  152. data/syntax/old/txt2tags.yaml +139 -0
  153. data/syntax/opengl.syntax +14 -0
  154. data/syntax/pascal.syntax +77 -0
  155. data/syntax/perl.syntax +1075 -0
  156. data/syntax/php.syntax +678 -0
  157. data/syntax/plain_text.syntax +32 -0
  158. data/syntax/postscript.syntax +114 -0
  159. data/syntax/processing.syntax +106 -0
  160. data/syntax/prolog.syntax +40 -0
  161. data/syntax/property_list.syntax +645 -0
  162. data/syntax/python.syntax +865 -0
  163. data/syntax/python_django.syntax +21 -0
  164. data/syntax/qmake_project.syntax +114 -0
  165. data/syntax/qt_c++.syntax +26 -0
  166. data/syntax/quake3_config.syntax +32 -0
  167. data/syntax/r.syntax +81 -0
  168. data/syntax/r_console.syntax +16 -0
  169. data/syntax/ragel.syntax +201 -0
  170. data/syntax/rd_r_documentation.syntax +91 -0
  171. data/syntax/regexp.syntax +50 -0
  172. data/syntax/regular_expressions_oniguruma.syntax +107 -0
  173. data/syntax/regular_expressions_python.syntax +109 -0
  174. data/syntax/release_notes.syntax +37 -0
  175. data/syntax/remind.syntax +253 -0
  176. data/syntax/restructuredtext.syntax +250 -0
  177. data/syntax/rez.syntax +80 -0
  178. data/syntax/ruby.syntax +1035 -0
  179. data/syntax/ruby_experimental.syntax +145 -0
  180. data/syntax/ruby_on_rails.syntax +88 -0
  181. data/syntax/s5.syntax +69 -0
  182. data/syntax/scheme.syntax +347 -0
  183. data/syntax/scilab.syntax +41 -0
  184. data/syntax/setext.syntax +147 -0
  185. data/syntax/shell-unix-generic.syntax +384 -0
  186. data/syntax/slate.syntax +149 -0
  187. data/syntax/smarty.syntax +63 -0
  188. data/syntax/sql.syntax +237 -0
  189. data/syntax/sql_rails.syntax +18 -0
  190. data/syntax/ssh-config.syntax +33 -0
  191. data/syntax/standard_ml.syntax +45 -0
  192. data/syntax/strings_file.syntax +39 -0
  193. data/syntax/subversion_commit_message.syntax +36 -0
  194. data/syntax/sweave.syntax +84 -0
  195. data/syntax/swig.syntax +57 -0
  196. data/syntax/tcl.syntax +152 -0
  197. data/syntax/template_toolkit.syntax +121 -0
  198. data/syntax/tex.syntax +86 -0
  199. data/syntax/tex_math.syntax +49 -0
  200. data/syntax/textile.syntax +215 -0
  201. data/syntax/tsv.syntax +50 -0
  202. data/syntax/twiki.syntax +241 -0
  203. data/syntax/txt2tags.syntax +79 -0
  204. data/syntax/vectorscript.syntax +57 -0
  205. data/syntax/xhtml_1.0.syntax +4027 -0
  206. data/syntax/xml.syntax +179 -0
  207. data/syntax/xml_strict.syntax +92 -0
  208. data/syntax/xsl.syntax +60 -0
  209. data/syntax/yaml.syntax +160 -0
  210. data/syntax/yui_javascript.syntax +176 -0
  211. data/test/test_uv.rb +0 -0
  212. metadata +270 -0
@@ -0,0 +1,139 @@
1
+ ---
2
+ name: TXT2TAGS
3
+ fileTypes:
4
+ - t2t
5
+ scopeName: source.t2t
6
+ foldingStartMarker: ^[^#]\s*.*:(\s*\[?| &.+)?$
7
+ expressions:
8
+ patt_img : '(\[)([\w_,.+%$#@!?+~/-]+\.(png|PNG|jpe?g|JPE?G|gif|GIF|eps|EPS|bmp|BMP))(\])'
9
+ proto : '(https?|ftp|news|telnet|gopher|wais)://'
10
+ guess : '(www[23]?|ftp)\.'
11
+ login : 'A-Za-z0-9_.-'
12
+ pass : '[^ @]*'
13
+ chars : 'A-Za-z0-9%._/~:,=$@&+-'
14
+ anchor : 'A-Za-z0-9%._-'
15
+ form : 'A-Za-z0-9/%&=+;.,$@*_-'
16
+ punct : '.,;:!?'
17
+ patt_url_login : '([(?#login)]+(:(?#pass))?@)?'
18
+ retxt_url : '\b((?#proto)(?#patt_url_login)|(?#guess))[(?#chars)]+\b/*(\?[(?#form)]+)?(#[(?#anchor)]*)?'
19
+ retxt_url_local : '[(?#chars)]+|[(?#chars)]*(#[(?#anchor)]*)'
20
+ patt_email : '\b[(?#login)]+@([A-Za-z0-9_-]+\.)+[A-Za-z]{2,4}\b(\?[(?#form)]+)?'
21
+ patterns:
22
+ - contentName: markup.other.paragraph
23
+ begin: ^\s*^ *(?!```|"""|%|\t|\+|=|-|:|\s)
24
+ end: ([\n\r])(\s*[\n\r]|\t|"""(?!")|```(?!`)|=|-)
25
+ endCaptures:
26
+ "1": { name: line.blank }
27
+ - contentName: markup.raw.verbatim.block
28
+ begin: ^(```)([ \t]*[\n\r])
29
+ end: ^(```)([ \t]*[\n\r])
30
+ captures:
31
+ "1": { name: keyword.other.marker.verbatim }
32
+ "2": { name: line.blank }
33
+ - contentName: markup.raw.block
34
+ begin: ^(""")\s*$
35
+ end: ^(""")\s*$
36
+ captures:
37
+ "1": { name: keyword.other.marker.raw }
38
+ - name: comment.block
39
+ begin: ^%%%\s*$
40
+ end: ^%%%\s*$
41
+ - match: ^(\t+)(.+?\n)
42
+ captures:
43
+ "1": { name: keyword.other.marker.quote }
44
+ "2": { name: markup.quote.line }
45
+ - match: ((?<!`)```)(?!.*```)([^\n\r]+)([\n\r]\s*[\n\r])
46
+ captures:
47
+ "1": { name: keyword.other.marker.verbatim }
48
+ "2": { name: markup.raw.verbatim.line }
49
+ "3": { name: line.blank }
50
+ - name: markup.raw.raw.line
51
+ match: ^""" (?=\S)
52
+ - match: ((?<!`)``(?!`))(.+?)((?<!`)``(?!`))
53
+ captures:
54
+ "1": { name: keyword.other.marker.verbatim }
55
+ "2": { name: markup.raw.verbatim }
56
+ "3": { name: keyword.other.marker.verbatim }
57
+ - match: ((?<!")""(?!\s))(.+?)((?<!\s)""(?!"))
58
+ captures:
59
+ "1": { name: keyword.other.marker.raw }
60
+ "2": { name: markup.raw.raw }
61
+ "3": { name: keyword.other.marker.raw }
62
+ - match: (?<!\*)(\*\*)(?!\*)([^\n\r]+)(?<!\*)(\*\*)(?!\*)
63
+ captures:
64
+ "1": { name: keyword.other.marker.bold }
65
+ "2": { name: markup.bold }
66
+ "3": { name: keyword.other.marker.bold }
67
+ - match: (?<!/)(//)(?!/)([^\n\r]+)(?<!/)(//)(?!/)
68
+ captures:
69
+ "1": { name: keyword.other.marker.italic }
70
+ "2": { name: markup.italic }
71
+ "3": { name: keyword.other.marker.italic }
72
+ - match: (?<!_)(__)(?!_)([^\n\r]+)(?<!_)(__)(?!_)
73
+ captures:
74
+ "1": { name: keyword.other.marker.underline }
75
+ "2": { name: markup.underline }
76
+ "3": { name: keyword.other.marker.underline }
77
+ - match: ^( *-)( (?=[^ ]).*?[\n\t])
78
+ captures:
79
+ "1": { name: keyword.other.marker.list.unnumbered }
80
+ "2": { name: markup.list.unnumbered }
81
+ - match: ^( *\+) (?=[^ ])(.*?)[\n\t]
82
+ captures:
83
+ "1": { name: keyword.other.marker.list.numbered }
84
+ "2": { name: markup.list.numbered }
85
+ - match: ^( *\:) ([^\s].*?)$
86
+ captures:
87
+ "1": { name: keyword.other.marker.list.definition }
88
+ "2": { name: markup.list.definition.name }
89
+ - name: line.list.close
90
+ match: ^( *)([-+:])\s*$
91
+ - match: ^\s*([_-]{20,})\s*?$
92
+ captures:
93
+ "1": { name: markup.other.bar.thin }
94
+ - match: ^\s*(={20,})\s*?$
95
+ captures:
96
+ "1": { name: markup.other.bar.thick }
97
+ - name: line.table
98
+ match: ^ *\|\|?
99
+ - name: line.blank
100
+ match: (^[ \t]*[\n\r])+
101
+ - name: comment.line
102
+ match: ^%\s*.*?\n
103
+ - match: ^([\t ]*?)(=+(?!=))([^\n\r]+)((?<!=)\2)([\t ]*[\n\r])
104
+ captures:
105
+ "1": { name: other.filler }
106
+ "2": { name: keyword.other.marker.heading.plain }
107
+ "3": { name: markup.heading.plain }
108
+ "4": { name: keyword.other.marker.heading.plain }
109
+ "5": { name: other.filler }
110
+ - match: ^\s*(\++(?!\+))([^\n\r]+)((?<!\+)\1)$
111
+ captures:
112
+ "1": { name: keyword.other.marker.heading.numbered }
113
+ "2": { name: markup.heading.numbered }
114
+ "3": { name: keyword.other.marker.heading.numbered }
115
+ - name: markup.other.email
116
+ match: '(?#patt_email)'
117
+ preprocess: true
118
+ - name: markup.other.link
119
+ match: (?#retxt_url)
120
+ preprocess: true
121
+ - name: meta.link.complex
122
+ match: '(?<open>\[)(?<label>(?#patt_img)|[^]]+)(?<middle> )(?<link>(?#retxt_url)|(?#patt_email)|(?#retxt_url_local))(?<close>\])'
123
+ preprocess: true
124
+ namedCaptures:
125
+ "open" : { name: keyword.other.marker.link }
126
+ "label" : { name: variable.link.label }
127
+ "middle": { name: keyword.other.marker.link }
128
+ "close" : { name: keyword.other.marker.link }
129
+ - match: (?#patt_img)
130
+ preprocess: true
131
+ captures:
132
+ "1": { name: keyword.other.marker.img }
133
+ "2": { name: markup.other.img }
134
+ "4": { name: keyword.other.marker.img }
135
+ - name: markup.other.special
136
+ match: '^%!\s*'
137
+ preprocess: true
138
+ foldingStopMarker: ^\s*$|^\s*\}|^\s*\]|^\s*\)
139
+ keyEquivalent: ^~Y
@@ -0,0 +1,14 @@
1
+ ---
2
+ name: OpenGL
3
+ scopeName: source.open-gl
4
+ uuid: D5C78F2A-43D6-4598-BB92-1761EDF2C768
5
+ patterns:
6
+ - name: support.type.open-gl
7
+ match: \b(GL(u?int(ptr)?|float|enum|boolean|bitfield|u?byte|u?short|sizei(ptr)?|clamp[fd]|double|void|char))\b
8
+ - name: support.constant.open-gl
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.function.open-gl
11
+ 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
12
+ - name: meta.open-gl
13
+ match: \b(gl|GL)\w+
14
+ comment: for completions -- robbo
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: Pascal
3
+ fileTypes:
4
+ - pas
5
+ - p
6
+ scopeName: source.pascal
7
+ uuid: F42FA544-6B1C-11D9-9517-000D93589AF6
8
+ foldingStartMarker: \b(?i:(function|package|procedure|try|type))\b
9
+ patterns:
10
+ - name: keyword.control.pascal
11
+ match: \b(?i:(absolute|abstract|all|and|and_then|array|as|asm|attribute|begin|bindable|case|class|const|constructor|destructor|div|do|do|else|end|except|export|exports|external|far|file|finalization|finally|for|forward|goto|if|implementation|import|in|inherited|initialization|interface|interrupt|is|label|library|mod|module|name|near|nil|not|object|of|only|operator|or|or_else|otherwise|packed|pow|private|program|property|protected|public|published|qualified|record|repeat|resident|restricted|segment|set|shl|shr|then|to|try|type|unit|until|uses|value|var|view|virtual|while|with|xor))\b
12
+ - name: meta.function.prototype.pascal
13
+ captures:
14
+ "1":
15
+ name: storage.type.prototype.pascal
16
+ "2":
17
+ name: entity.name.prototype.pascal
18
+ match: \b(?i:(function|procedure))\b\s+(\w+(\.\w+)?)(\(.*?\))?;\s*(?=(?i:attribute|forward|external))
19
+ - name: meta.function.pascal
20
+ captures:
21
+ "1":
22
+ name: storage.type.function.pascal
23
+ "2":
24
+ name: entity.name.function.pascal
25
+ match: \b(?i:(function|procedure))\b\s+(\w+(\.\w+)?)
26
+ - name: constant.numeric.pascal
27
+ match: \b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b
28
+ - name: comment.line.double-dash.pascal.one
29
+ captures:
30
+ "1":
31
+ name: punctuation.definition.comment.pascal
32
+ match: (--).*$\n?
33
+ - name: comment.line.double-slash.pascal.two
34
+ captures:
35
+ "1":
36
+ name: punctuation.definition.comment.pascal
37
+ match: (//).*$\n?
38
+ - name: comment.block.pascal.one
39
+ captures:
40
+ "0":
41
+ name: punctuation.definition.comment.pascal
42
+ begin: \(\*
43
+ end: \*\)
44
+ - name: comment.block.pascal.two
45
+ captures:
46
+ "0":
47
+ name: punctuation.definition.comment.pascal
48
+ begin: \{
49
+ end: \}
50
+ - name: string.quoted.double.pascal
51
+ endCaptures:
52
+ "0":
53
+ name: punctuation.definition.string.end.pascal
54
+ begin: "\""
55
+ beginCaptures:
56
+ "0":
57
+ name: punctuation.definition.string.begin.pascal
58
+ end: "\""
59
+ patterns:
60
+ - name: constant.character.escape.pascal
61
+ match: \\.
62
+ comment: Double quoted strings are an extension and (generally) support C-style escape sequences.
63
+ - name: string.quoted.single.pascal
64
+ endCaptures:
65
+ "0":
66
+ name: punctuation.definition.string.end.pascal
67
+ begin: "'"
68
+ applyEndPatternLast: 1
69
+ beginCaptures:
70
+ "0":
71
+ name: punctuation.definition.string.begin.pascal
72
+ end: "'"
73
+ patterns:
74
+ - name: constant.character.escape.apostrophe.pascal
75
+ match: "''"
76
+ foldingStopMarker: \b(?i:(end))\b
77
+ keyEquivalent: ^~P
@@ -0,0 +1,1075 @@
1
+ ---
2
+ name: Perl
3
+ fileTypes:
4
+ - pl
5
+ - pm
6
+ - pod
7
+ - t
8
+ - PL
9
+ firstLineMatch: ^#!.*\bperl\b
10
+ scopeName: source.perl
11
+ repository:
12
+ nested_ltgt:
13
+ captures:
14
+ "1":
15
+ name: punctuation.section.scope.perl
16
+ begin: <
17
+ end: ">"
18
+ patterns:
19
+ - include: "#nested_ltgt"
20
+ escaped_char:
21
+ name: constant.character.escape.perl
22
+ match: \\.
23
+ nested_brackets:
24
+ captures:
25
+ "1":
26
+ name: punctuation.section.scope.perl
27
+ begin: \[
28
+ end: \]
29
+ patterns:
30
+ - include: "#escaped_char"
31
+ - include: "#nested_brackets"
32
+ nested_braces:
33
+ captures:
34
+ "1":
35
+ name: punctuation.section.scope.perl
36
+ begin: \{
37
+ end: \}
38
+ patterns:
39
+ - include: "#escaped_char"
40
+ - include: "#nested_braces"
41
+ line_comment:
42
+ patterns:
43
+ - name: meta.comment.full-line.perl
44
+ captures:
45
+ "1":
46
+ name: comment.line.number-sign.perl
47
+ "2":
48
+ name: punctuation.definition.comment.perl
49
+ match: ^((#).*$\n?)
50
+ - name: comment.line.number-sign.perl
51
+ captures:
52
+ "1":
53
+ name: punctuation.definition.comment.perl
54
+ match: (#).*$\n?
55
+ nested_parens_interpolated:
56
+ captures:
57
+ "1":
58
+ name: punctuation.section.scope.perl
59
+ begin: \(
60
+ end: \)
61
+ patterns:
62
+ - include: "#escaped_char"
63
+ - include: "#variable"
64
+ - include: "#nested_parens_interpolated"
65
+ nested_parens:
66
+ captures:
67
+ "1":
68
+ name: punctuation.section.scope.perl
69
+ begin: \(
70
+ end: \)
71
+ patterns:
72
+ - include: "#escaped_char"
73
+ - include: "#nested_parens"
74
+ nested_brackets_interpolated:
75
+ captures:
76
+ "1":
77
+ name: punctuation.section.scope.perl
78
+ begin: \[
79
+ end: \]
80
+ patterns:
81
+ - include: "#escaped_char"
82
+ - include: "#variable"
83
+ - include: "#nested_brackets_interpolated"
84
+ nested_braces_interpolated:
85
+ captures:
86
+ "1":
87
+ name: punctuation.section.scope.perl
88
+ begin: \{
89
+ end: \}
90
+ patterns:
91
+ - include: "#escaped_char"
92
+ - include: "#variable"
93
+ - include: "#nested_braces_interpolated"
94
+ nested_ltgt_interpolated:
95
+ captures:
96
+ "1":
97
+ name: punctuation.section.scope.perl
98
+ begin: <
99
+ end: ">"
100
+ patterns:
101
+ - include: "#variable"
102
+ - include: "#nested_ltgt_interpolated"
103
+ variable:
104
+ patterns:
105
+ - name: variable.other.regexp.match.perl
106
+ captures:
107
+ "1":
108
+ name: punctuation.definition.variable.perl
109
+ match: (\$)&(?![A-Za-z0-9_])
110
+ - name: variable.other.regexp.pre-match.perl
111
+ captures:
112
+ "1":
113
+ name: punctuation.definition.variable.perl
114
+ match: (\$)`(?![A-Za-z0-9_])
115
+ - name: variable.other.regexp.post-match.perl
116
+ captures:
117
+ "1":
118
+ name: punctuation.definition.variable.perl
119
+ match: (\$)'(?![A-Za-z0-9_])
120
+ - name: variable.other.regexp.last-paren-match.perl
121
+ captures:
122
+ "1":
123
+ name: punctuation.definition.variable.perl
124
+ match: (\$)\+(?![A-Za-z0-9_])
125
+ - name: variable.other.readwrite.list-separator.perl
126
+ captures:
127
+ "1":
128
+ name: punctuation.definition.variable.perl
129
+ match: (\$)"(?![A-Za-z0-9_])
130
+ - name: variable.other.predefined.program-name.perl
131
+ captures:
132
+ "1":
133
+ name: punctuation.definition.variable.perl
134
+ match: (\$)0(?![A-Za-z0-9_])
135
+ - name: variable.other.predefined.perl
136
+ captures:
137
+ "1":
138
+ name: punctuation.definition.variable.perl
139
+ match: (\$)[_ab\*\.\/\|,\\;#%=\-~^:?!\$<>\(\)\[\]@](?![A-Za-z0-9_])
140
+ - name: variable.other.subpattern.perl
141
+ captures:
142
+ "1":
143
+ name: punctuation.definition.variable.perl
144
+ match: (\$)[0-9]+(?![A-Za-z0-9_])
145
+ - name: variable.other.readwrite.global.perl
146
+ captures:
147
+ "1":
148
+ name: punctuation.definition.variable.perl
149
+ match: ([\$\@\%](#)?)([a-zA-Zx7f-xff\$]|::)([a-zA-Z0-9_x7f-xff\$]|::)*\b
150
+ - name: variable.other.readwrite.global.perl
151
+ captures:
152
+ "1":
153
+ name: punctuation.definition.variable.perl
154
+ "2":
155
+ name: punctuation.definition.variable.perl
156
+ match: (\$\{)(?:[a-zA-Zx7f-xff\$]|::)(?:[a-zA-Z0-9_x7f-xff\$]|::)*(\})
157
+ - name: variable.other.readwrite.global.special.perl
158
+ captures:
159
+ "1":
160
+ name: punctuation.definition.variable.perl
161
+ match: ([\$\@\%](#)?)[0-9_]\b
162
+ uuid: EDBFE125-6B1C-11D9-9189-000D93589AF6
163
+ foldingStartMarker: (/\*|(\{|\[|\()\s*$)
164
+ patterns:
165
+ - include: "#line_comment"
166
+ - name: comment.block.documentation.perl
167
+ captures:
168
+ "0":
169
+ name: punctuation.definition.comment.perl
170
+ begin: ^=
171
+ end: ^=cut
172
+ - include: "#variable"
173
+ - endCaptures:
174
+ "1":
175
+ name: string.regexp.compile.perl
176
+ "2":
177
+ name: punctuation.definition.string.perl
178
+ "3":
179
+ name: keyword.control.regexp-option.perl
180
+ begin: \b(?=qr\s*[^\s\w])
181
+ applyEndPatternLast: 1
182
+ end: ((([egimosx]*)))(?=(\s+\S|\s*[;\,\#\{\}\)]|$))
183
+ patterns:
184
+ - name: string.regexp.compile.nested_braces.perl
185
+ captures:
186
+ "0":
187
+ name: punctuation.definition.string.perl
188
+ "1":
189
+ name: support.function.perl
190
+ begin: (qr)\s*\{
191
+ end: \}
192
+ patterns:
193
+ - include: "#escaped_char"
194
+ - include: "#variable"
195
+ - include: "#nested_braces_interpolated"
196
+ - name: string.regexp.compile.nested_brackets.perl
197
+ captures:
198
+ "0":
199
+ name: punctuation.definition.string.perl
200
+ "1":
201
+ name: support.function.perl
202
+ begin: (qr)\s*\[
203
+ end: \]
204
+ patterns:
205
+ - include: "#escaped_char"
206
+ - include: "#variable"
207
+ - include: "#nested_brackets_interpolated"
208
+ - name: string.regexp.compile.nested_ltgt.perl
209
+ captures:
210
+ "0":
211
+ name: punctuation.definition.string.perl
212
+ "1":
213
+ name: support.function.perl
214
+ begin: (qr)\s*<
215
+ end: ">"
216
+ patterns:
217
+ - include: "#escaped_char"
218
+ - include: "#variable"
219
+ - include: "#nested_ltgt_interpolated"
220
+ - name: string.regexp.compile.nested_parens.perl
221
+ captures:
222
+ "0":
223
+ name: punctuation.definition.string.perl
224
+ "1":
225
+ name: support.function.perl
226
+ begin: (qr)\s*\(
227
+ end: \)
228
+ patterns:
229
+ - include: "#escaped_char"
230
+ - include: "#variable"
231
+ - include: "#nested_parens_interpolated"
232
+ - name: string.regexp.compile.single-quote.perl
233
+ captures:
234
+ "0":
235
+ name: punctuation.definition.string.perl
236
+ "1":
237
+ name: support.function.perl
238
+ begin: (qr)\s*\'
239
+ end: \'
240
+ patterns:
241
+ - include: "#escaped_char"
242
+ - name: string.regexp.compile.simple-delimiter.perl
243
+ captures:
244
+ "0":
245
+ name: punctuation.definition.string.perl
246
+ "1":
247
+ name: support.function.perl
248
+ begin: (qr)\s*([^\s\w\'\{\[\(\<])
249
+ end: \2
250
+ patterns:
251
+ - include: "#escaped_char"
252
+ - include: "#variable"
253
+ - include: "#nested_parens_interpolated"
254
+ comment: string.regexp.compile.perl
255
+ - endCaptures:
256
+ "1":
257
+ name: string.regexp.replace.perl
258
+ "2":
259
+ name: punctuation.definition.string.perl
260
+ "3":
261
+ name: keyword.control.regexp-option.perl
262
+ begin: \b(?=(s)(\s+\S|\s*[;\,\#\{\}\(\)\[<]|$))
263
+ applyEndPatternLast: 1
264
+ end: ((([egimosx]*)))(?=(\s+\S|\s*[;\,\#\{\}\)\]>]|$))
265
+ patterns:
266
+ - name: string.regexp.nested_braces.perl
267
+ captures:
268
+ "0":
269
+ name: punctuation.definition.string.perl
270
+ "1":
271
+ name: support.function.perl
272
+ begin: (s)\s*\{
273
+ end: \}
274
+ patterns:
275
+ - include: "#escaped_char"
276
+ - include: "#nested_braces"
277
+ - name: string.regexp.nested_brackets.perl
278
+ captures:
279
+ "0":
280
+ name: punctuation.definition.string.perl
281
+ "1":
282
+ name: support.function.perl
283
+ begin: (s)\s*\[
284
+ end: \]
285
+ patterns:
286
+ - include: "#escaped_char"
287
+ - include: "#nested_brackets"
288
+ - name: string.regexp.nested_ltgt.perl
289
+ captures:
290
+ "0":
291
+ name: punctuation.definition.string.perl
292
+ "1":
293
+ name: support.function.perl
294
+ begin: (s)\s*<
295
+ end: ">"
296
+ patterns:
297
+ - include: "#escaped_char"
298
+ - include: "#nested_ltgt"
299
+ - name: string.regexp.nested_parens.perl
300
+ captures:
301
+ "0":
302
+ name: punctuation.definition.string.perl
303
+ "1":
304
+ name: support.function.perl
305
+ begin: (s)\s*\(
306
+ end: \)
307
+ patterns:
308
+ - include: "#escaped_char"
309
+ - include: "#nested_parens"
310
+ - name: string.regexp.format.nested_braces.perl
311
+ captures:
312
+ "0":
313
+ name: punctuation.definition.string.perl
314
+ begin: \{
315
+ end: \}
316
+ patterns:
317
+ - include: "#escaped_char"
318
+ - include: "#variable"
319
+ - include: "#nested_braces_interpolated"
320
+ - name: string.regexp.format.nested_brackets.perl
321
+ captures:
322
+ "0":
323
+ name: punctuation.definition.string.perl
324
+ begin: \[
325
+ end: \]
326
+ patterns:
327
+ - include: "#escaped_char"
328
+ - include: "#variable"
329
+ - include: "#nested_brackets_interpolated"
330
+ - name: string.regexp.format.nested_ltgt.perl
331
+ captures:
332
+ "0":
333
+ name: punctuation.definition.string.perl
334
+ begin: <
335
+ end: ">"
336
+ patterns:
337
+ - include: "#escaped_char"
338
+ - include: "#variable"
339
+ - include: "#nested_ltgt_interpolated"
340
+ - name: string.regexp.format.nested_parens.perl
341
+ captures:
342
+ "0":
343
+ name: punctuation.definition.string.perl
344
+ begin: \(
345
+ end: \)
346
+ patterns:
347
+ - include: "#escaped_char"
348
+ - include: "#variable"
349
+ - include: "#nested_parens_interpolated"
350
+ - name: string.regexp.format.single_quote.perl
351
+ captures:
352
+ "0":
353
+ name: punctuation.definition.string.perl
354
+ begin: "'"
355
+ end: "'"
356
+ patterns:
357
+ - name: constant.character.escape.perl
358
+ match: \\['\\]
359
+ - name: string.regexp.format.simple_delimiter.perl
360
+ captures:
361
+ "0":
362
+ name: punctuation.definition.string.perl
363
+ begin: ([^\s\w\[({<;])
364
+ end: \1
365
+ patterns:
366
+ - include: "#escaped_char"
367
+ - include: "#variable"
368
+ - match: \s+
369
+ comment: string.regexp.replace.perl
370
+ - endCaptures:
371
+ "1":
372
+ name: string.regexp.replace.perl
373
+ "2":
374
+ name: punctuation.definition.string.perl
375
+ "3":
376
+ name: keyword.control.regexp-option.perl
377
+ begin: \b(?=s([^\s\w\[({<]).*\1([egimos]*)([\}\)\;\,]|\s+))
378
+ end: ((([egimos]*)))(?=([\}\)\;\,]|\s+|$))
379
+ patterns:
380
+ - name: string.regexp.replaceXXX.simple_delimiter.perl
381
+ captures:
382
+ "0":
383
+ name: punctuation.definition.string.perl
384
+ "1":
385
+ name: support.function.perl
386
+ begin: (s\s*)([^\s\w\[({<])
387
+ end: (?=\2)
388
+ patterns:
389
+ - include: "#escaped_char"
390
+ - name: string.regexp.replaceXXX.format.single_quote.perl
391
+ captures:
392
+ "0":
393
+ name: punctuation.definition.string.perl
394
+ begin: "'"
395
+ end: "'"
396
+ patterns:
397
+ - name: constant.character.escape.perl.perl
398
+ match: \\['\\]
399
+ - name: string.regexp.replaceXXX.format.simple_delimiter.perl
400
+ captures:
401
+ "0":
402
+ name: punctuation.definition.string.perl
403
+ begin: ([^\s\w\[({<])
404
+ end: \1
405
+ patterns:
406
+ - include: "#escaped_char"
407
+ - include: "#variable"
408
+ comment: string.regexp.replaceXXX
409
+ - endCaptures:
410
+ "1":
411
+ name: string.regexp.replace.perl
412
+ "2":
413
+ name: punctuation.definition.string.perl
414
+ "3":
415
+ name: keyword.control.regexp-option.perl
416
+ begin: \b(?=(?<!\\)s\s*([^\s\w\[({<]))
417
+ end: \2((([egimos]*x[egimos]*)))\b
418
+ patterns:
419
+ - name: string.regexp.replace.extended.simple_delimiter.perl
420
+ captures:
421
+ "0":
422
+ name: punctuation.definition.string.perl
423
+ "1":
424
+ name: support.function.perl
425
+ begin: (s)\s*(.)
426
+ end: (?=\2)
427
+ patterns:
428
+ - include: "#escaped_char"
429
+ - name: string.regexp.replace.extended.simple_delimiter.perl
430
+ captures:
431
+ "0":
432
+ name: punctuation.definition.string.perl
433
+ begin: "'"
434
+ end: "'(?=[egimos]*x[egimos]*)\\b"
435
+ patterns:
436
+ - include: "#escaped_char"
437
+ - name: string.regexp.replace.extended.simple_delimiter.perl
438
+ captures:
439
+ "0":
440
+ name: punctuation.definition.string.perl
441
+ begin: (.)
442
+ end: \1(?=[egimos]*x[egimos]*)\b
443
+ patterns:
444
+ - include: "#escaped_char"
445
+ - include: "#variable"
446
+ comment: string.regexp.replace.extended
447
+ - name: constant.other.key.perl
448
+ match: \b\w+\s*(?==>)
449
+ - name: constant.other.bareword.perl
450
+ match: (?<={)\s*\w+\s*(?=})
451
+ - name: string.regexp.find.perl
452
+ captures:
453
+ "1":
454
+ name: punctuation.definition.string.perl
455
+ "5":
456
+ name: punctuation.definition.string.perl
457
+ match: (?<!\\)((~\s*)?\/)(.*?)(?<!\\)(\\{2})*(\/)
458
+ - name: string.regexp.find.extended.perl
459
+ endCaptures:
460
+ "1":
461
+ name: keyword.control.regexp-option.perl
462
+ captures:
463
+ "0":
464
+ name: punctuation.definition.string.perl
465
+ begin: (?<!\\)(\~\s*\/)
466
+ end: \/([cgimos]*x[cgimos]*)\b
467
+ patterns:
468
+ - include: "#escaped_char"
469
+ - include: "#variable"
470
+ - name: meta.class.perl
471
+ captures:
472
+ "1":
473
+ name: keyword.control.perl
474
+ "2":
475
+ name: entity.name.type.class.perl
476
+ "3":
477
+ name: comment.line.number-sign.perl
478
+ "4":
479
+ name: punctuation.definition.comment.perl
480
+ match: ^\s*(package)\s+(\S+)\s*((#).*)?$\n?
481
+ - name: meta.function.perl
482
+ captures:
483
+ "1":
484
+ name: storage.type.sub.perl
485
+ "2":
486
+ name: entity.name.function.perl
487
+ "3":
488
+ name: storage.type.method.perl
489
+ match: ^\s*(sub)\s+([-a-zA-Z0-9_]+)\s*(\([\$\@\*;]*\))?
490
+ - name: meta.function.perl
491
+ captures:
492
+ "1":
493
+ name: entity.name.function.perl
494
+ "2":
495
+ name: punctuation.definition.parameters.perl
496
+ "3":
497
+ name: variable.parameter.function.perl
498
+ match: ^\s*(BEGIN|END|DESTROY)\b
499
+ - name: meta.leading-tabs
500
+ begin: ^(?=(\t| {4}))
501
+ end: (?=[^\t\s])
502
+ patterns:
503
+ - captures:
504
+ "1":
505
+ name: meta.odd-tab
506
+ "2":
507
+ name: meta.even-tab
508
+ match: (\t| {4})(\t| {4})?
509
+ - name: string.regexp.find-m.perl
510
+ captures:
511
+ "1":
512
+ name: support.function.perl
513
+ "2":
514
+ name: punctuation.definition.string.perl
515
+ "5":
516
+ name: punctuation.definition.string.perl
517
+ match: \b(m)\s*(?<!\\)([^\[\{\(A-Za-z0-9\s])(.*?)(?<!\\)(\\{2})*(\2)
518
+ - name: string.regexp.find-m-paren.perl
519
+ endCaptures:
520
+ "0":
521
+ name: punctuation.definition.string.end.perl
522
+ begin: \b(m)\s*(?<!\\)\(
523
+ beginCaptures:
524
+ "0":
525
+ name: punctuation.definition.string.begin.perl
526
+ end: \)
527
+ patterns:
528
+ - include: "#escaped_char"
529
+ - include: "#nested_parens_interpolated"
530
+ - include: "#variable"
531
+ - name: string.regexp.find-m-brace.perl
532
+ endCaptures:
533
+ "0":
534
+ name: punctuation.definition.string.end.perl
535
+ begin: \b(m)\s*(?<!\\)\{
536
+ beginCaptures:
537
+ "0":
538
+ name: punctuation.definition.string.begin.perl
539
+ end: \}
540
+ patterns:
541
+ - include: "#escaped_char"
542
+ - include: "#nested_braces_interpolated"
543
+ - include: "#variable"
544
+ - name: string.regexp.find-m-bracket.perl
545
+ endCaptures:
546
+ "0":
547
+ name: punctuation.definition.string.end.perl
548
+ begin: \b(m)\s*(?<!\\)\[
549
+ beginCaptures:
550
+ "0":
551
+ name: punctuation.definition.string.begin.perl
552
+ end: \]
553
+ patterns:
554
+ - include: "#escaped_char"
555
+ - include: "#nested_brackets_interpolated"
556
+ - include: "#variable"
557
+ - name: string.regexp.find-m-ltgt.perl
558
+ endCaptures:
559
+ "0":
560
+ name: punctuation.definition.string.end.perl
561
+ begin: \b(m)\s*(?<!\\)\<
562
+ beginCaptures:
563
+ "0":
564
+ name: punctuation.definition.string.begin.perl
565
+ end: \>
566
+ patterns:
567
+ - include: "#escaped_char"
568
+ - include: "#nested_ltgt_interpolated"
569
+ - include: "#variable"
570
+ - name: string.regexp.replace.perl
571
+ captures:
572
+ "8":
573
+ name: punctuation.definition.string.perl
574
+ "1":
575
+ name: support.function.perl
576
+ "2":
577
+ name: punctuation.definition.string.perl
578
+ "5":
579
+ name: punctuation.definition.string.perl
580
+ match: \b(s|tr|y)\s*([^A-Za-z0-9\s])(.*?)(?<!\\)(\\{2})*(\2)(.*?)(?<!\\)(\\{2})*(\2)
581
+ - name: constant.language.perl
582
+ match: \b(__FILE__|__LINE__|__PACKAGE__)\b
583
+ - name: keyword.control.perl
584
+ match: \b(continue|die|do|else|elsif|exit|for|foreach|goto|if|last|next|redo|return|select|unless|until|wait|while|switch|case|package|require|use|eval)\b
585
+ - name: storage.modifier.perl
586
+ match: \b(my|our|local)\b
587
+ - name: keyword.operator.filetest.perl
588
+ match: (?<!\w)\-[rwx0RWXOezsfdlpSbctugkTBMAC]\b
589
+ - name: keyword.operator.logical.perl
590
+ match: \b(and|or|xor|as)\b
591
+ - name: keyword.operator.comparison.perl
592
+ match: (<=>| =>|->)
593
+ - captures:
594
+ "0":
595
+ name: punctuation.definition.string.perl
596
+ "1":
597
+ name: string.unquoted.heredoc.doublequote.perl
598
+ "2":
599
+ name: punctuation.definition.heredoc.perl
600
+ begin: ((<<) *"HTML").*\n?
601
+ contentName: text.html.embedded.perl
602
+ end: (^HTML$)
603
+ patterns:
604
+ - include: "#escaped_char"
605
+ - include: "#variable"
606
+ - include: text.html.basic
607
+ - captures:
608
+ "0":
609
+ name: punctuation.definition.string.perl
610
+ "1":
611
+ name: string.unquoted.heredoc.doublequote.perl
612
+ "2":
613
+ name: punctuation.definition.heredoc.perl
614
+ begin: ((<<) *"XML").*\n?
615
+ contentName: text.xml.embedded.perl
616
+ end: (^XML$)
617
+ patterns:
618
+ - include: "#escaped_char"
619
+ - include: "#variable"
620
+ - include: text.xml
621
+ - captures:
622
+ "0":
623
+ name: punctuation.definition.string.perl
624
+ "1":
625
+ name: string.unquoted.heredoc.doublequote.perl
626
+ "2":
627
+ name: punctuation.definition.heredoc.perl
628
+ begin: ((<<) *"CSS").*\n?
629
+ contentName: text.css.embedded.perl
630
+ end: (^CSS$)
631
+ patterns:
632
+ - include: "#escaped_char"
633
+ - include: "#variable"
634
+ - include: source.css
635
+ - captures:
636
+ "0":
637
+ name: punctuation.definition.string.perl
638
+ "1":
639
+ name: string.unquoted.heredoc.doublequote.perl
640
+ "2":
641
+ name: punctuation.definition.heredoc.perl
642
+ begin: ((<<) *"JAVASCRIPT").*\n?
643
+ contentName: text.js.embedded.perl
644
+ end: (^JAVASCRIPT$)
645
+ patterns:
646
+ - include: "#escaped_char"
647
+ - include: "#variable"
648
+ - include: source.js
649
+ - captures:
650
+ "0":
651
+ name: punctuation.definition.string.perl
652
+ "1":
653
+ name: string.unquoted.heredoc.doublequote.perl
654
+ "2":
655
+ name: punctuation.definition.heredoc.perl
656
+ begin: ((<<) *"SQL").*\n?
657
+ contentName: source.sql.embedded.perl
658
+ end: (^SQL$)
659
+ patterns:
660
+ - include: "#escaped_char"
661
+ - include: "#variable"
662
+ - include: source.sql
663
+ - captures:
664
+ "0":
665
+ name: punctuation.definition.string.perl
666
+ "1":
667
+ name: string.unquoted.heredoc.doublequote.perl
668
+ "2":
669
+ name: punctuation.definition.heredoc.perl
670
+ begin: ((<<) *"([^"]*)").*\n?
671
+ contentName: string.unquoted.heredoc.doublequote.perl
672
+ end: (^\3$)
673
+ patterns:
674
+ - include: "#escaped_char"
675
+ - include: "#variable"
676
+ - captures:
677
+ "0":
678
+ name: punctuation.definition.string.perl
679
+ "1":
680
+ name: string.unquoted.heredoc.quote.perl
681
+ "2":
682
+ name: punctuation.definition.heredoc.perl
683
+ begin: ((<<) *'HTML').*\n?
684
+ contentName: text.html.embedded.perl
685
+ end: (^HTML$)
686
+ patterns:
687
+ - include: text.html.basic
688
+ - captures:
689
+ "0":
690
+ name: punctuation.definition.string.perl
691
+ "1":
692
+ name: string.unquoted.heredoc.quote.perl
693
+ "2":
694
+ name: punctuation.definition.heredoc.perl
695
+ begin: ((<<) *'XML').*\n?
696
+ contentName: text.xml.embedded.perl
697
+ end: (^XML$)
698
+ patterns:
699
+ - include: text.xml
700
+ - captures:
701
+ "0":
702
+ name: punctuation.definition.string.perl
703
+ "1":
704
+ name: string.unquoted.heredoc.quote.perl
705
+ "2":
706
+ name: punctuation.definition.heredoc.perl
707
+ begin: ((<<) *'CSS').*\n?
708
+ contentName: text.css.embedded.perl
709
+ end: (^CSS$)
710
+ patterns:
711
+ - include: source.css
712
+ - captures:
713
+ "0":
714
+ name: punctuation.definition.string.perl
715
+ "1":
716
+ name: string.unquoted.heredoc.quote.perl
717
+ "2":
718
+ name: punctuation.definition.heredoc.perl
719
+ begin: ((<<) *'JAVASCRIPT').*\n?
720
+ contentName: text.js.embedded.perl
721
+ end: (^JAVASCRIPT$)
722
+ patterns:
723
+ - include: source.js
724
+ - captures:
725
+ "0":
726
+ name: punctuation.definition.string.perl
727
+ "1":
728
+ name: string.unquoted.heredoc.quote.perl
729
+ "2":
730
+ name: punctuation.definition.heredoc.perl
731
+ begin: ((<<) *'SQL').*\n?
732
+ contentName: source.sql.embedded.perl
733
+ end: (^SQL$)
734
+ patterns:
735
+ - include: source.sql
736
+ - captures:
737
+ "0":
738
+ name: punctuation.definition.string.perl
739
+ "1":
740
+ name: string.unquoted.heredoc.quote.perl
741
+ "2":
742
+ name: punctuation.definition.heredoc.perl
743
+ begin: ((<<) *'([^']*)').*\n?
744
+ contentName: string.unquoted.heredoc.quote.perl
745
+ end: (^\3$)
746
+ - captures:
747
+ "0":
748
+ name: punctuation.definition.string.perl
749
+ "1":
750
+ name: string.unquoted.heredoc.backtick.perl
751
+ "2":
752
+ name: punctuation.definition.heredoc.perl
753
+ begin: ((<<) *`([^`]*)`).*\n?
754
+ contentName: string.unquoted.heredoc.backtick.perl
755
+ end: (^\3$)
756
+ patterns:
757
+ - include: "#escaped_char"
758
+ - include: "#variable"
759
+ - captures:
760
+ "0":
761
+ name: punctuation.definition.string.perl
762
+ "1":
763
+ name: string.unquoted.heredoc.perl
764
+ "2":
765
+ name: punctuation.definition.heredoc.perl
766
+ begin: ((<<) *HTML\b).*\n?
767
+ contentName: text.html.embedded.perl
768
+ end: (^HTML$)
769
+ patterns:
770
+ - include: "#escaped_char"
771
+ - include: "#variable"
772
+ - include: text.html.basic
773
+ - captures:
774
+ "0":
775
+ name: punctuation.definition.string.perl
776
+ "1":
777
+ name: string.unquoted.heredoc.perl
778
+ "2":
779
+ name: punctuation.definition.heredoc.perl
780
+ begin: ((<<) *XML\b).*\n?
781
+ contentName: text.xml.embedded.perl
782
+ end: (^XML$)
783
+ patterns:
784
+ - include: "#escaped_char"
785
+ - include: "#variable"
786
+ - include: text.xml
787
+ - captures:
788
+ "0":
789
+ name: punctuation.definition.string.perl
790
+ "1":
791
+ name: string.unquoted.heredoc.perl
792
+ "2":
793
+ name: punctuation.definition.heredoc.perl
794
+ begin: ((<<) *SQL\b).*\n?
795
+ contentName: source.sql.embedded.perl
796
+ end: (^SQL$)
797
+ patterns:
798
+ - include: "#escaped_char"
799
+ - include: "#variable"
800
+ - include: source.sql
801
+ - captures:
802
+ "0":
803
+ name: punctuation.definition.string.perl
804
+ "1":
805
+ name: string.unquoted.heredoc.perl
806
+ "2":
807
+ name: punctuation.definition.heredoc.perl
808
+ begin: ((<<) *((?![=\d\$ ])[^;,'"`\s)]*)).*\n?
809
+ contentName: string.unquoted.heredoc.perl
810
+ end: (^\3$)
811
+ patterns:
812
+ - include: "#escaped_char"
813
+ - include: "#variable"
814
+ - name: string.quoted.other.qq.perl
815
+ endCaptures:
816
+ "0":
817
+ name: punctuation.definition.string.end.perl
818
+ begin: \bqq\s*([^\(\{\[\<\w\s])
819
+ beginCaptures:
820
+ "0":
821
+ name: punctuation.definition.string.begin.perl
822
+ end: \1
823
+ patterns:
824
+ - include: "#escaped_char"
825
+ - include: "#variable"
826
+ - name: string.interpolated.qx.perl
827
+ endCaptures:
828
+ "0":
829
+ name: punctuation.definition.string.end.perl
830
+ begin: \bqx\s*([^'\(\{\[\<\w\s])
831
+ beginCaptures:
832
+ "0":
833
+ name: punctuation.definition.string.begin.perl
834
+ end: \1
835
+ patterns:
836
+ - include: "#escaped_char"
837
+ - include: "#variable"
838
+ - name: string.interpolated.qx.single-quote.perl
839
+ endCaptures:
840
+ "0":
841
+ name: punctuation.definition.string.end.perl
842
+ begin: \bqx\s*'
843
+ beginCaptures:
844
+ "0":
845
+ name: punctuation.definition.string.begin.perl
846
+ end: "'"
847
+ patterns:
848
+ - include: "#escaped_char"
849
+ - name: string.quoted.double.perl
850
+ endCaptures:
851
+ "0":
852
+ name: punctuation.definition.string.end.perl
853
+ begin: "\""
854
+ beginCaptures:
855
+ "0":
856
+ name: punctuation.definition.string.begin.perl
857
+ end: "\""
858
+ patterns:
859
+ - include: "#escaped_char"
860
+ - include: "#variable"
861
+ - name: string.quoted.other.q.perl
862
+ endCaptures:
863
+ "0":
864
+ name: punctuation.definition.string.end.perl
865
+ begin: \bqw?\s*([^\(\{\[\<\w\s])
866
+ beginCaptures:
867
+ "0":
868
+ name: punctuation.definition.string.begin.perl
869
+ end: \1
870
+ patterns:
871
+ - include: "#escaped_char"
872
+ - name: string.quoted.single.perl
873
+ endCaptures:
874
+ "0":
875
+ name: punctuation.definition.string.end.perl
876
+ begin: "'"
877
+ beginCaptures:
878
+ "0":
879
+ name: punctuation.definition.string.begin.perl
880
+ end: "'"
881
+ patterns:
882
+ - name: constant.character.escape.perl
883
+ match: \\['\\]
884
+ - name: string.interpolated.perl
885
+ endCaptures:
886
+ "0":
887
+ name: punctuation.definition.string.end.perl
888
+ begin: `
889
+ beginCaptures:
890
+ "0":
891
+ name: punctuation.definition.string.begin.perl
892
+ end: `
893
+ patterns:
894
+ - include: "#escaped_char"
895
+ - include: "#variable"
896
+ - name: string.quoted.other.qq-paren.perl
897
+ endCaptures:
898
+ "0":
899
+ name: punctuation.definition.string.end.perl
900
+ begin: \bqq\s*\(
901
+ beginCaptures:
902
+ "0":
903
+ name: punctuation.definition.string.begin.perl
904
+ end: \)
905
+ patterns:
906
+ - include: "#escaped_char"
907
+ - include: "#nested_parens_interpolated"
908
+ - include: "#variable"
909
+ - name: string.quoted.other.qq-brace.perl
910
+ endCaptures:
911
+ "0":
912
+ name: punctuation.definition.string.end.perl
913
+ begin: \bqq\s*\{
914
+ beginCaptures:
915
+ "0":
916
+ name: punctuation.definition.string.begin.perl
917
+ end: \}
918
+ patterns:
919
+ - include: "#escaped_char"
920
+ - include: "#nested_braces_interpolated"
921
+ - include: "#variable"
922
+ - name: string.quoted.other.qq-bracket.perl
923
+ endCaptures:
924
+ "0":
925
+ name: punctuation.definition.string.end.perl
926
+ begin: \bqq\s*\[
927
+ beginCaptures:
928
+ "0":
929
+ name: punctuation.definition.string.begin.perl
930
+ end: \]
931
+ patterns:
932
+ - include: "#escaped_char"
933
+ - include: "#nested_brackets_interpolated"
934
+ - include: "#variable"
935
+ - name: string.quoted.other.qq-ltgt.perl
936
+ endCaptures:
937
+ "0":
938
+ name: punctuation.definition.string.end.perl
939
+ begin: \bqq\s*\<
940
+ beginCaptures:
941
+ "0":
942
+ name: punctuation.definition.string.begin.perl
943
+ end: \>
944
+ patterns:
945
+ - include: "#escaped_char"
946
+ - include: "#nested_ltgt_interpolated"
947
+ - include: "#variable"
948
+ - name: string.interpolated.qx-paren.perl
949
+ endCaptures:
950
+ "0":
951
+ name: punctuation.definition.string.end.perl
952
+ begin: \bqx\s*\(
953
+ beginCaptures:
954
+ "0":
955
+ name: punctuation.definition.string.begin.perl
956
+ end: \)
957
+ patterns:
958
+ - include: "#escaped_char"
959
+ - include: "#nested_parens_interpolated"
960
+ - include: "#variable"
961
+ - name: string.interpolated.qx-brace.perl
962
+ endCaptures:
963
+ "0":
964
+ name: punctuation.definition.string.end.perl
965
+ begin: \bqx\s*\{
966
+ beginCaptures:
967
+ "0":
968
+ name: punctuation.definition.string.begin.perl
969
+ end: \}
970
+ patterns:
971
+ - include: "#escaped_char"
972
+ - include: "#nested_braces_interpolated"
973
+ - include: "#variable"
974
+ - name: string.interpolated.qx-bracket.perl
975
+ endCaptures:
976
+ "0":
977
+ name: punctuation.definition.string.end.perl
978
+ begin: \bqx\s*\[
979
+ beginCaptures:
980
+ "0":
981
+ name: punctuation.definition.string.begin.perl
982
+ end: \]
983
+ patterns:
984
+ - include: "#escaped_char"
985
+ - include: "#nested_brackets_interpolated"
986
+ - include: "#variable"
987
+ - name: string.interpolated.qx-ltgt.perl
988
+ endCaptures:
989
+ "0":
990
+ name: punctuation.definition.string.end.perl
991
+ begin: \bqx\s*\<
992
+ beginCaptures:
993
+ "0":
994
+ name: punctuation.definition.string.begin.perl
995
+ end: \>
996
+ patterns:
997
+ - include: "#escaped_char"
998
+ - include: "#nested_ltgt_interpolated"
999
+ - include: "#variable"
1000
+ - name: string.quoted.other.q-paren.perl
1001
+ endCaptures:
1002
+ "0":
1003
+ name: punctuation.definition.string.end.perl
1004
+ begin: \bqw?\s*\(
1005
+ beginCaptures:
1006
+ "0":
1007
+ name: punctuation.definition.string.begin.perl
1008
+ end: \)
1009
+ patterns:
1010
+ - include: "#escaped_char"
1011
+ - include: "#nested_parens"
1012
+ - name: string.quoted.other.q-brace.perl
1013
+ endCaptures:
1014
+ "0":
1015
+ name: punctuation.definition.string.end.perl
1016
+ begin: \bqw?\s*\{
1017
+ beginCaptures:
1018
+ "0":
1019
+ name: punctuation.definition.string.begin.perl
1020
+ end: \}
1021
+ patterns:
1022
+ - include: "#escaped_char"
1023
+ - include: "#nested_braces"
1024
+ - name: string.quoted.other.q-bracket.perl
1025
+ endCaptures:
1026
+ "0":
1027
+ name: punctuation.definition.string.end.perl
1028
+ begin: \bqw?\s*\[
1029
+ beginCaptures:
1030
+ "0":
1031
+ name: punctuation.definition.string.begin.perl
1032
+ end: \]
1033
+ patterns:
1034
+ - include: "#escaped_char"
1035
+ - include: "#nested_brackets"
1036
+ - name: string.quoted.other.q-ltgt.perl
1037
+ endCaptures:
1038
+ "0":
1039
+ name: punctuation.definition.string.end.perl
1040
+ begin: \bqw?\s*\<
1041
+ beginCaptures:
1042
+ "0":
1043
+ name: punctuation.definition.string.begin.perl
1044
+ end: \>
1045
+ patterns:
1046
+ - include: "#escaped_char"
1047
+ - include: "#nested_ltgt"
1048
+ - name: string.unquoted.program-block.perl
1049
+ endCaptures:
1050
+ "0":
1051
+ name: punctuation.definition.string.end.perl
1052
+ begin: ^__\w+__
1053
+ beginCaptures:
1054
+ "0":
1055
+ name: punctuation.definition.string.begin.perl
1056
+ end: $
1057
+ - name: meta.format.perl
1058
+ begin: \b(format)\s+([A-Za-z]+)\s*=
1059
+ beginCaptures:
1060
+ "1":
1061
+ name: support.function.perl
1062
+ "2":
1063
+ name: entity.name.function.format.perl
1064
+ end: ^\.\s*$
1065
+ patterns:
1066
+ - include: "#line_comment"
1067
+ - include: "#variable"
1068
+ - name: support.function.perl
1069
+ match: \b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|format|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|q|qq|quotemeta|qw|qx|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y|q|qw|qq|qx)\b
1070
+ foldingStopMarker: (\*/|^\s*(\}|\]|\)))
1071
+ keyEquivalent: ^~P
1072
+ comment: |
1073
+
1074
+ TODO: Include RegExp syntax
1075
+