textpow 0.10.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (193) hide show
  1. data/.travis.yml +7 -0
  2. data/Gemfile +10 -0
  3. data/Gemfile.lock +30 -0
  4. data/{History.txt → History.rdoc} +10 -0
  5. data/{README.txt → MIT-LICENSE.txt} +0 -30
  6. data/README.rdoc +82 -0
  7. data/Rakefile +42 -49
  8. data/bin/plist2syntax +0 -0
  9. data/bin/plist2yaml +0 -0
  10. data/examples/benchmark_js.rb +13 -0
  11. data/examples/jquery.js +9046 -0
  12. data/lib/textpow.rb +43 -3
  13. data/lib/textpow/debug_processor.rb +35 -35
  14. data/lib/textpow/recording_processor.rb +13 -0
  15. data/lib/textpow/score_manager.rb +60 -60
  16. data/lib/textpow/syntax.rb +303 -262
  17. data/lib/textpow/syntax/broken/markdown.syntax +519 -0
  18. data/lib/textpow/syntax/broken/php.syntax +1253 -0
  19. data/lib/textpow/syntax/buggy/nemerle.syntax +74 -0
  20. data/lib/textpow/syntax/old/YAML.yaml +160 -0
  21. data/lib/textpow/syntax/old/txt2tags.yaml +139 -0
  22. data/lib/textpow/syntax/source.actionscript.syntax +97 -0
  23. data/lib/textpow/syntax/source.active4d.library.syntax +21 -0
  24. data/lib/textpow/syntax/source.active4d.syntax +276 -0
  25. data/lib/textpow/syntax/source.ada.syntax +33 -0
  26. data/lib/textpow/syntax/source.antlr.syntax +151 -0
  27. data/lib/textpow/syntax/source.apache-config.mod_perl.syntax +50 -0
  28. data/lib/textpow/syntax/source.apache-config.syntax +191 -0
  29. data/lib/textpow/syntax/source.applescript.syntax +384 -0
  30. data/lib/textpow/syntax/source.asp.syntax +70 -0
  31. data/lib/textpow/syntax/source.asp.vb.net.syntax +129 -0
  32. data/lib/textpow/syntax/source.c++.qt.syntax +26 -0
  33. data/lib/textpow/syntax/source.c++.syntax +186 -0
  34. data/lib/textpow/syntax/source.c-sharp.syntax +59 -0
  35. data/lib/textpow/syntax/source.c.ragel.syntax +201 -0
  36. data/lib/textpow/syntax/source.c.syntax +414 -0
  37. data/lib/textpow/syntax/source.camlp4.ocaml.syntax +36 -0
  38. data/lib/textpow/syntax/source.cm.syntax +32 -0
  39. data/lib/textpow/syntax/source.coffee.syntax +216 -0
  40. data/lib/textpow/syntax/source.context-free.syntax +176 -0
  41. data/lib/textpow/syntax/source.css.beta.syntax +1925 -0
  42. data/lib/textpow/syntax/source.css.syntax +195 -0
  43. data/lib/textpow/syntax/source.d.syntax +142 -0
  44. data/lib/textpow/syntax/source.diff.syntax +81 -0
  45. data/lib/textpow/syntax/source.dot.syntax +47 -0
  46. data/lib/textpow/syntax/source.dylan.syntax +62 -0
  47. data/lib/textpow/syntax/source.eiffel.syntax +78 -0
  48. data/lib/textpow/syntax/source.erlang.syntax +922 -0
  49. data/lib/textpow/syntax/source.fortran.syntax +141 -0
  50. data/lib/textpow/syntax/source.fscript.syntax +80 -0
  51. data/lib/textpow/syntax/source.fxscript.syntax +142 -0
  52. data/lib/textpow/syntax/source.gri.syntax +83 -0
  53. data/lib/textpow/syntax/source.groovy.groovy.syntax +191 -0
  54. data/lib/textpow/syntax/source.haskell.syntax +88 -0
  55. data/lib/textpow/syntax/source.icalendar.syntax +32 -0
  56. data/lib/textpow/syntax/source.inform.syntax +48 -0
  57. data/lib/textpow/syntax/source.ini.syntax +55 -0
  58. data/lib/textpow/syntax/source.io.syntax +81 -0
  59. data/lib/textpow/syntax/source.java-props.syntax +20 -0
  60. data/lib/textpow/syntax/source.java.syntax +211 -0
  61. data/lib/textpow/syntax/source.js.greasemonkey.syntax +34 -0
  62. data/lib/textpow/syntax/source.js.jquery.syntax +114 -0
  63. data/lib/textpow/syntax/source.js.mootools.syntax +572 -0
  64. data/lib/textpow/syntax/source.js.prototype.bracketed.syntax +140 -0
  65. data/lib/textpow/syntax/source.js.prototype.syntax +72 -0
  66. data/lib/textpow/syntax/source.js.syntax +256 -0
  67. data/lib/textpow/syntax/source.js.yui.syntax +176 -0
  68. data/lib/textpow/syntax/source.json.syntax +136 -0
  69. data/lib/textpow/syntax/source.lex.syntax +219 -0
  70. data/lib/textpow/syntax/source.lighttpd-config.syntax +54 -0
  71. data/lib/textpow/syntax/source.lilypond.syntax +492 -0
  72. data/lib/textpow/syntax/source.lisp.syntax +61 -0
  73. data/lib/textpow/syntax/source.logo.syntax +29 -0
  74. data/lib/textpow/syntax/source.logtalk.syntax +152 -0
  75. data/lib/textpow/syntax/source.lua.syntax +86 -0
  76. data/lib/textpow/syntax/source.makefile.syntax +36 -0
  77. data/lib/textpow/syntax/source.matlab.syntax +142 -0
  78. data/lib/textpow/syntax/source.mel.syntax +92 -0
  79. data/lib/textpow/syntax/source.mips.syntax +66 -0
  80. data/lib/textpow/syntax/source.ml.syntax +121 -0
  81. data/lib/textpow/syntax/source.modula-3.syntax +47 -0
  82. data/lib/textpow/syntax/source.nant-build.syntax +53 -0
  83. data/lib/textpow/syntax/source.objc++.syntax +18 -0
  84. data/lib/textpow/syntax/source.objc.syntax +233 -0
  85. data/lib/textpow/syntax/source.ocaml.syntax +764 -0
  86. data/lib/textpow/syntax/source.ocamllex.syntax +167 -0
  87. data/lib/textpow/syntax/source.ocamlyacc.syntax +184 -0
  88. data/lib/textpow/syntax/source.open-gl.syntax +14 -0
  89. data/lib/textpow/syntax/source.pascal.syntax +77 -0
  90. data/lib/textpow/syntax/source.pascal.vectorscript.syntax +57 -0
  91. data/lib/textpow/syntax/source.perl.syntax +1113 -0
  92. data/lib/textpow/syntax/source.php.cake.syntax +55 -0
  93. data/lib/textpow/syntax/source.plist.tm-grammar.syntax +708 -0
  94. data/lib/textpow/syntax/source.postscript.syntax +114 -0
  95. data/lib/textpow/syntax/source.processing.syntax +106 -0
  96. data/lib/textpow/syntax/source.prolog.syntax +40 -0
  97. data/lib/textpow/syntax/source.python.django.syntax +21 -0
  98. data/lib/textpow/syntax/source.python.syntax +868 -0
  99. data/lib/textpow/syntax/source.qmake.syntax +114 -0
  100. data/lib/textpow/syntax/source.quake-config.syntax +32 -0
  101. data/lib/textpow/syntax/source.r-console.syntax +16 -0
  102. data/lib/textpow/syntax/source.r.syntax +81 -0
  103. data/lib/textpow/syntax/source.regexp.oniguruma.syntax +107 -0
  104. data/lib/textpow/syntax/source.regexp.python.syntax +109 -0
  105. data/lib/textpow/syntax/source.regexp.syntax +50 -0
  106. data/lib/textpow/syntax/source.remind.syntax +253 -0
  107. data/lib/textpow/syntax/source.rez.syntax +80 -0
  108. data/lib/textpow/syntax/source.ruby.experimental.syntax +145 -0
  109. data/lib/textpow/syntax/source.ruby.rails.syntax +88 -0
  110. data/lib/textpow/syntax/source.ruby.syntax +1035 -0
  111. data/lib/textpow/syntax/source.s5.syntax +69 -0
  112. data/lib/textpow/syntax/source.sass.syntax +45 -0
  113. data/lib/textpow/syntax/source.scheme.syntax +347 -0
  114. data/lib/textpow/syntax/source.scilab.syntax +41 -0
  115. data/lib/textpow/syntax/source.scss.syntax +527 -0
  116. data/lib/textpow/syntax/source.shell.syntax +384 -0
  117. data/lib/textpow/syntax/source.slate.syntax +149 -0
  118. data/lib/textpow/syntax/source.smarty.syntax +63 -0
  119. data/lib/textpow/syntax/source.sql.ruby.syntax +18 -0
  120. data/lib/textpow/syntax/source.sql.syntax +237 -0
  121. data/lib/textpow/syntax/source.ssh-config.syntax +33 -0
  122. data/lib/textpow/syntax/source.strings.syntax +39 -0
  123. data/lib/textpow/syntax/source.swig.syntax +57 -0
  124. data/lib/textpow/syntax/source.tcl.macports.syntax +163 -0
  125. data/lib/textpow/syntax/source.tcl.syntax +152 -0
  126. data/lib/textpow/syntax/source.yaml.syntax +160 -0
  127. data/lib/textpow/syntax/text.active4d-ini.syntax +50 -0
  128. data/lib/textpow/syntax/text.bbcode.syntax +287 -0
  129. data/lib/textpow/syntax/text.bibtex.syntax +151 -0
  130. data/lib/textpow/syntax/text.blog.html.syntax +41 -0
  131. data/lib/textpow/syntax/text.blog.markdown.syntax +42 -0
  132. data/lib/textpow/syntax/text.blog.syntax +27 -0
  133. data/lib/textpow/syntax/text.blog.textile.syntax +27 -0
  134. data/lib/textpow/syntax/text.gtdalt.syntax +143 -0
  135. data/lib/textpow/syntax/text.haml.syntax +88 -0
  136. data/lib/textpow/syntax/text.html.asp.net.syntax +424 -0
  137. data/lib/textpow/syntax/text.html.asp.syntax +27 -0
  138. data/lib/textpow/syntax/text.html.basic.syntax +362 -0
  139. data/lib/textpow/syntax/text.html.cfm.syntax +119 -0
  140. data/lib/textpow/syntax/text.html.django.syntax +36 -0
  141. data/lib/textpow/syntax/text.html.dokuwiki.syntax +204 -0
  142. data/lib/textpow/syntax/text.html.doxygen.syntax +43 -0
  143. data/lib/textpow/syntax/text.html.markdown.multimarkdown.syntax +39 -0
  144. data/lib/textpow/syntax/text.html.mason.syntax +119 -0
  145. data/lib/textpow/syntax/text.html.mediawiki.syntax +567 -0
  146. data/lib/textpow/syntax/text.html.mt.syntax +162 -0
  147. data/lib/textpow/syntax/text.html.ruby.syntax +40 -0
  148. data/lib/textpow/syntax/text.html.strict.active4d.syntax +311 -0
  149. data/lib/textpow/syntax/text.html.tcl.syntax +26 -0
  150. data/lib/textpow/syntax/text.html.textile.syntax +215 -0
  151. data/lib/textpow/syntax/text.html.tt.syntax +121 -0
  152. data/lib/textpow/syntax/text.html.twiki.syntax +241 -0
  153. data/lib/textpow/syntax/text.html.xhtml.1-strict.syntax +4027 -0
  154. data/lib/textpow/syntax/text.log.latex.syntax +50 -0
  155. data/lib/textpow/syntax/text.mail.markdown.syntax +118 -0
  156. data/lib/textpow/syntax/text.man.syntax +17 -0
  157. data/lib/textpow/syntax/text.moinmoin.syntax +189 -0
  158. data/lib/textpow/syntax/text.plain.gtd.syntax +22 -0
  159. data/lib/textpow/syntax/text.plain.release-notes.syntax +46 -0
  160. data/lib/textpow/syntax/text.plain.syntax +32 -0
  161. data/lib/textpow/syntax/text.plist.syntax +635 -0
  162. data/lib/textpow/syntax/text.pmwiki.syntax +113 -0
  163. data/lib/textpow/syntax/text.restructuredtext.syntax +250 -0
  164. data/lib/textpow/syntax/text.setext.syntax +147 -0
  165. data/lib/textpow/syntax/text.subversion-commit.syntax +36 -0
  166. data/lib/textpow/syntax/text.tabular.csv.syntax +68 -0
  167. data/lib/textpow/syntax/text.tabular.tsv.syntax +50 -0
  168. data/lib/textpow/syntax/text.tex.latex.beamer.syntax +41 -0
  169. data/lib/textpow/syntax/text.tex.latex.haskell.syntax +24 -0
  170. data/lib/textpow/syntax/text.tex.latex.memoir.syntax +64 -0
  171. data/lib/textpow/syntax/text.tex.latex.rd.syntax +91 -0
  172. data/lib/textpow/syntax/text.tex.latex.sweave.syntax +84 -0
  173. data/lib/textpow/syntax/text.tex.latex.syntax +566 -0
  174. data/lib/textpow/syntax/text.tex.math.syntax +49 -0
  175. data/lib/textpow/syntax/text.tex.syntax +86 -0
  176. data/lib/textpow/syntax/text.txt2tags.syntax +79 -0
  177. data/lib/textpow/syntax/text.xml.apple-dist.syntax +77 -0
  178. data/lib/textpow/syntax/text.xml.strict.syntax +92 -0
  179. data/lib/textpow/syntax/text.xml.syntax +180 -0
  180. data/lib/textpow/syntax/text.xml.xsl.syntax +60 -0
  181. data/lib/textpow/version.rb +3 -0
  182. data/spec/fixtures/objeck.plist +107 -0
  183. data/spec/fixtures/utf8.txt +1 -0
  184. data/spec/spec_helper.rb +2 -0
  185. data/spec/textpow/score_manager_spec.rb +20 -0
  186. data/spec/textpow/syntax_files_spec.rb +26 -0
  187. data/spec/textpow/syntax_spec.rb +225 -0
  188. data/spec/textpow_spec.rb +57 -0
  189. data/textpow.gemspec +19 -0
  190. metadata +246 -68
  191. data/Manifest.txt +0 -13
  192. data/mm/manual.mm +0 -266
  193. data/test/test_textpow.rb +0 -25
@@ -0,0 +1,1113 @@
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: ((<<) *"POSTSCRIPT").*\n?
671
+ contentName: text.postscript.embedded.perl
672
+ end: (^POSTSCRIPT$)
673
+ patterns:
674
+ - include: "#escaped_char"
675
+ - include: "#variable"
676
+ - include: source.postscript
677
+ - captures:
678
+ "0":
679
+ name: punctuation.definition.string.perl
680
+ "1":
681
+ name: string.unquoted.heredoc.doublequote.perl
682
+ "2":
683
+ name: punctuation.definition.heredoc.perl
684
+ begin: ((<<) *"([^"]*)").*\n?
685
+ contentName: string.unquoted.heredoc.doublequote.perl
686
+ end: (^\3$)
687
+ patterns:
688
+ - include: "#escaped_char"
689
+ - include: "#variable"
690
+ - captures:
691
+ "0":
692
+ name: punctuation.definition.string.perl
693
+ "1":
694
+ name: string.unquoted.heredoc.quote.perl
695
+ "2":
696
+ name: punctuation.definition.heredoc.perl
697
+ begin: ((<<) *'HTML').*\n?
698
+ contentName: text.html.embedded.perl
699
+ end: (^HTML$)
700
+ patterns:
701
+ - include: text.html.basic
702
+ - captures:
703
+ "0":
704
+ name: punctuation.definition.string.perl
705
+ "1":
706
+ name: string.unquoted.heredoc.quote.perl
707
+ "2":
708
+ name: punctuation.definition.heredoc.perl
709
+ begin: ((<<) *'XML').*\n?
710
+ contentName: text.xml.embedded.perl
711
+ end: (^XML$)
712
+ patterns:
713
+ - include: text.xml
714
+ - captures:
715
+ "0":
716
+ name: punctuation.definition.string.perl
717
+ "1":
718
+ name: string.unquoted.heredoc.quote.perl
719
+ "2":
720
+ name: punctuation.definition.heredoc.perl
721
+ begin: ((<<) *'CSS').*\n?
722
+ contentName: text.css.embedded.perl
723
+ end: (^CSS$)
724
+ patterns:
725
+ - include: source.css
726
+ - captures:
727
+ "0":
728
+ name: punctuation.definition.string.perl
729
+ "1":
730
+ name: string.unquoted.heredoc.quote.perl
731
+ "2":
732
+ name: punctuation.definition.heredoc.perl
733
+ begin: ((<<) *'JAVASCRIPT').*\n?
734
+ contentName: text.js.embedded.perl
735
+ end: (^JAVASCRIPT$)
736
+ patterns:
737
+ - include: source.js
738
+ - captures:
739
+ "0":
740
+ name: punctuation.definition.string.perl
741
+ "1":
742
+ name: string.unquoted.heredoc.quote.perl
743
+ "2":
744
+ name: punctuation.definition.heredoc.perl
745
+ begin: ((<<) *'SQL').*\n?
746
+ contentName: source.sql.embedded.perl
747
+ end: (^SQL$)
748
+ patterns:
749
+ - include: source.sql
750
+ - captures:
751
+ "0":
752
+ name: punctuation.definition.string.perl
753
+ "1":
754
+ name: string.unquoted.heredoc.quote.perl
755
+ "2":
756
+ name: punctuation.definition.heredoc.perl
757
+ begin: ((<<) *'POSTSCRIPT').*\n?
758
+ contentName: source.postscript.embedded.perl
759
+ end: (^POSTSCRIPT)
760
+ patterns:
761
+ - include: source.postscript
762
+ - captures:
763
+ "0":
764
+ name: punctuation.definition.string.perl
765
+ "1":
766
+ name: string.unquoted.heredoc.quote.perl
767
+ "2":
768
+ name: punctuation.definition.heredoc.perl
769
+ begin: ((<<) *'([^']*)').*\n?
770
+ contentName: string.unquoted.heredoc.quote.perl
771
+ end: (^\3$)
772
+ - captures:
773
+ "0":
774
+ name: punctuation.definition.string.perl
775
+ "1":
776
+ name: string.unquoted.heredoc.backtick.perl
777
+ "2":
778
+ name: punctuation.definition.heredoc.perl
779
+ begin: ((<<) *`([^`]*)`).*\n?
780
+ contentName: string.unquoted.heredoc.backtick.perl
781
+ end: (^\3$)
782
+ patterns:
783
+ - include: "#escaped_char"
784
+ - include: "#variable"
785
+ - captures:
786
+ "0":
787
+ name: punctuation.definition.string.perl
788
+ "1":
789
+ name: string.unquoted.heredoc.perl
790
+ "2":
791
+ name: punctuation.definition.heredoc.perl
792
+ begin: ((<<) *HTML\b).*\n?
793
+ contentName: text.html.embedded.perl
794
+ end: (^HTML$)
795
+ patterns:
796
+ - include: "#escaped_char"
797
+ - include: "#variable"
798
+ - include: text.html.basic
799
+ - captures:
800
+ "0":
801
+ name: punctuation.definition.string.perl
802
+ "1":
803
+ name: string.unquoted.heredoc.perl
804
+ "2":
805
+ name: punctuation.definition.heredoc.perl
806
+ begin: ((<<) *XML\b).*\n?
807
+ contentName: text.xml.embedded.perl
808
+ end: (^XML$)
809
+ patterns:
810
+ - include: "#escaped_char"
811
+ - include: "#variable"
812
+ - include: text.xml
813
+ - captures:
814
+ "0":
815
+ name: punctuation.definition.string.perl
816
+ "1":
817
+ name: string.unquoted.heredoc.perl
818
+ "2":
819
+ name: punctuation.definition.heredoc.perl
820
+ begin: ((<<) *SQL\b).*\n?
821
+ contentName: source.sql.embedded.perl
822
+ end: (^SQL$)
823
+ patterns:
824
+ - include: "#escaped_char"
825
+ - include: "#variable"
826
+ - include: source.sql
827
+ - captures:
828
+ "0":
829
+ name: punctuation.definition.string.perl
830
+ "1":
831
+ name: string.unquoted.heredoc.perl
832
+ "2":
833
+ name: punctuation.definition.heredoc.perl
834
+ begin: ((<<) *POSTSCRIPT\b).*\n?
835
+ contentName: source.postscript.embedded.perl
836
+ end: (^POSTSCRIPT)
837
+ patterns:
838
+ - include: "#escaped_char"
839
+ - include: "#variable"
840
+ - include: source.postscript
841
+ - captures:
842
+ "0":
843
+ name: punctuation.definition.string.perl
844
+ "1":
845
+ name: string.unquoted.heredoc.perl
846
+ "2":
847
+ name: punctuation.definition.heredoc.perl
848
+ begin: ((<<) *((?![=\d\$ ])[^;,'"`\s)]*)).*\n?
849
+ contentName: string.unquoted.heredoc.perl
850
+ end: (^\3$)
851
+ patterns:
852
+ - include: "#escaped_char"
853
+ - include: "#variable"
854
+ - name: string.quoted.other.qq.perl
855
+ endCaptures:
856
+ "0":
857
+ name: punctuation.definition.string.end.perl
858
+ begin: \bqq\s*([^\(\{\[\<\w\s])
859
+ beginCaptures:
860
+ "0":
861
+ name: punctuation.definition.string.begin.perl
862
+ end: \1
863
+ patterns:
864
+ - include: "#escaped_char"
865
+ - include: "#variable"
866
+ - name: string.interpolated.qx.perl
867
+ endCaptures:
868
+ "0":
869
+ name: punctuation.definition.string.end.perl
870
+ begin: \bqx\s*([^'\(\{\[\<\w\s])
871
+ beginCaptures:
872
+ "0":
873
+ name: punctuation.definition.string.begin.perl
874
+ end: \1
875
+ patterns:
876
+ - include: "#escaped_char"
877
+ - include: "#variable"
878
+ - name: string.interpolated.qx.single-quote.perl
879
+ endCaptures:
880
+ "0":
881
+ name: punctuation.definition.string.end.perl
882
+ begin: \bqx\s*'
883
+ beginCaptures:
884
+ "0":
885
+ name: punctuation.definition.string.begin.perl
886
+ end: "'"
887
+ patterns:
888
+ - include: "#escaped_char"
889
+ - name: string.quoted.double.perl
890
+ endCaptures:
891
+ "0":
892
+ name: punctuation.definition.string.end.perl
893
+ begin: "\""
894
+ beginCaptures:
895
+ "0":
896
+ name: punctuation.definition.string.begin.perl
897
+ end: "\""
898
+ patterns:
899
+ - include: "#escaped_char"
900
+ - include: "#variable"
901
+ - name: string.quoted.other.q.perl
902
+ endCaptures:
903
+ "0":
904
+ name: punctuation.definition.string.end.perl
905
+ begin: \bqw?\s*([^\(\{\[\<\w\s])
906
+ beginCaptures:
907
+ "0":
908
+ name: punctuation.definition.string.begin.perl
909
+ end: \1
910
+ patterns:
911
+ - include: "#escaped_char"
912
+ - name: string.quoted.single.perl
913
+ endCaptures:
914
+ "0":
915
+ name: punctuation.definition.string.end.perl
916
+ begin: "'"
917
+ beginCaptures:
918
+ "0":
919
+ name: punctuation.definition.string.begin.perl
920
+ end: "'"
921
+ patterns:
922
+ - name: constant.character.escape.perl
923
+ match: \\['\\]
924
+ - name: string.interpolated.perl
925
+ endCaptures:
926
+ "0":
927
+ name: punctuation.definition.string.end.perl
928
+ begin: "`"
929
+ beginCaptures:
930
+ "0":
931
+ name: punctuation.definition.string.begin.perl
932
+ end: "`"
933
+ patterns:
934
+ - include: "#escaped_char"
935
+ - include: "#variable"
936
+ - name: string.quoted.other.qq-paren.perl
937
+ endCaptures:
938
+ "0":
939
+ name: punctuation.definition.string.end.perl
940
+ begin: \bqq\s*\(
941
+ beginCaptures:
942
+ "0":
943
+ name: punctuation.definition.string.begin.perl
944
+ end: \)
945
+ patterns:
946
+ - include: "#escaped_char"
947
+ - include: "#nested_parens_interpolated"
948
+ - include: "#variable"
949
+ - name: string.quoted.other.qq-brace.perl
950
+ endCaptures:
951
+ "0":
952
+ name: punctuation.definition.string.end.perl
953
+ begin: \bqq\s*\{
954
+ beginCaptures:
955
+ "0":
956
+ name: punctuation.definition.string.begin.perl
957
+ end: \}
958
+ patterns:
959
+ - include: "#escaped_char"
960
+ - include: "#nested_braces_interpolated"
961
+ - include: "#variable"
962
+ - name: string.quoted.other.qq-bracket.perl
963
+ endCaptures:
964
+ "0":
965
+ name: punctuation.definition.string.end.perl
966
+ begin: \bqq\s*\[
967
+ beginCaptures:
968
+ "0":
969
+ name: punctuation.definition.string.begin.perl
970
+ end: \]
971
+ patterns:
972
+ - include: "#escaped_char"
973
+ - include: "#nested_brackets_interpolated"
974
+ - include: "#variable"
975
+ - name: string.quoted.other.qq-ltgt.perl
976
+ endCaptures:
977
+ "0":
978
+ name: punctuation.definition.string.end.perl
979
+ begin: \bqq\s*\<
980
+ beginCaptures:
981
+ "0":
982
+ name: punctuation.definition.string.begin.perl
983
+ end: \>
984
+ patterns:
985
+ - include: "#escaped_char"
986
+ - include: "#nested_ltgt_interpolated"
987
+ - include: "#variable"
988
+ - name: string.interpolated.qx-paren.perl
989
+ endCaptures:
990
+ "0":
991
+ name: punctuation.definition.string.end.perl
992
+ begin: \bqx\s*\(
993
+ beginCaptures:
994
+ "0":
995
+ name: punctuation.definition.string.begin.perl
996
+ end: \)
997
+ patterns:
998
+ - include: "#escaped_char"
999
+ - include: "#nested_parens_interpolated"
1000
+ - include: "#variable"
1001
+ - name: string.interpolated.qx-brace.perl
1002
+ endCaptures:
1003
+ "0":
1004
+ name: punctuation.definition.string.end.perl
1005
+ begin: \bqx\s*\{
1006
+ beginCaptures:
1007
+ "0":
1008
+ name: punctuation.definition.string.begin.perl
1009
+ end: \}
1010
+ patterns:
1011
+ - include: "#escaped_char"
1012
+ - include: "#nested_braces_interpolated"
1013
+ - include: "#variable"
1014
+ - name: string.interpolated.qx-bracket.perl
1015
+ endCaptures:
1016
+ "0":
1017
+ name: punctuation.definition.string.end.perl
1018
+ begin: \bqx\s*\[
1019
+ beginCaptures:
1020
+ "0":
1021
+ name: punctuation.definition.string.begin.perl
1022
+ end: \]
1023
+ patterns:
1024
+ - include: "#escaped_char"
1025
+ - include: "#nested_brackets_interpolated"
1026
+ - include: "#variable"
1027
+ - name: string.interpolated.qx-ltgt.perl
1028
+ endCaptures:
1029
+ "0":
1030
+ name: punctuation.definition.string.end.perl
1031
+ begin: \bqx\s*\<
1032
+ beginCaptures:
1033
+ "0":
1034
+ name: punctuation.definition.string.begin.perl
1035
+ end: \>
1036
+ patterns:
1037
+ - include: "#escaped_char"
1038
+ - include: "#nested_ltgt_interpolated"
1039
+ - include: "#variable"
1040
+ - name: string.quoted.other.q-paren.perl
1041
+ endCaptures:
1042
+ "0":
1043
+ name: punctuation.definition.string.end.perl
1044
+ begin: \bqw?\s*\(
1045
+ beginCaptures:
1046
+ "0":
1047
+ name: punctuation.definition.string.begin.perl
1048
+ end: \)
1049
+ patterns:
1050
+ - include: "#escaped_char"
1051
+ - include: "#nested_parens"
1052
+ - name: string.quoted.other.q-brace.perl
1053
+ endCaptures:
1054
+ "0":
1055
+ name: punctuation.definition.string.end.perl
1056
+ begin: \bqw?\s*\{
1057
+ beginCaptures:
1058
+ "0":
1059
+ name: punctuation.definition.string.begin.perl
1060
+ end: \}
1061
+ patterns:
1062
+ - include: "#escaped_char"
1063
+ - include: "#nested_braces"
1064
+ - name: string.quoted.other.q-bracket.perl
1065
+ endCaptures:
1066
+ "0":
1067
+ name: punctuation.definition.string.end.perl
1068
+ begin: \bqw?\s*\[
1069
+ beginCaptures:
1070
+ "0":
1071
+ name: punctuation.definition.string.begin.perl
1072
+ end: \]
1073
+ patterns:
1074
+ - include: "#escaped_char"
1075
+ - include: "#nested_brackets"
1076
+ - name: string.quoted.other.q-ltgt.perl
1077
+ endCaptures:
1078
+ "0":
1079
+ name: punctuation.definition.string.end.perl
1080
+ begin: \bqw?\s*\<
1081
+ beginCaptures:
1082
+ "0":
1083
+ name: punctuation.definition.string.begin.perl
1084
+ end: \>
1085
+ patterns:
1086
+ - include: "#escaped_char"
1087
+ - include: "#nested_ltgt"
1088
+ - name: string.unquoted.program-block.perl
1089
+ endCaptures:
1090
+ "0":
1091
+ name: punctuation.definition.string.end.perl
1092
+ begin: ^__\w+__
1093
+ beginCaptures:
1094
+ "0":
1095
+ name: punctuation.definition.string.begin.perl
1096
+ end: $
1097
+ - name: meta.format.perl
1098
+ begin: \b(format)\s+([A-Za-z]+)\s*=
1099
+ beginCaptures:
1100
+ "1":
1101
+ name: support.function.perl
1102
+ "2":
1103
+ name: entity.name.function.format.perl
1104
+ end: ^\.\s*$
1105
+ patterns:
1106
+ - include: "#line_comment"
1107
+ - include: "#variable"
1108
+ - name: support.function.perl
1109
+ 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
1110
+ foldingStopMarker: (\*/|^\s*(\}|\]|\)))
1111
+ keyEquivalent: ^~P
1112
+ comment: |
1113
+ # TODO: Include RegExp syntax