code_rippa 0.0.7 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile.lock +36 -0
  3. data/LICENSE +2 -2
  4. data/README.md +18 -1
  5. data/bin/code_rippa +15 -16
  6. data/code_rippa.gemspec +12 -10
  7. data/lib/code_rippa.rb +69 -51
  8. data/lib/code_rippa/syntax/actionscript.syntax +52 -52
  9. data/lib/code_rippa/syntax/active4d.syntax +226 -180
  10. data/lib/code_rippa/syntax/active4d_html.syntax +163 -173
  11. data/lib/code_rippa/syntax/active4d_ini.syntax +34 -27
  12. data/lib/code_rippa/syntax/active4d_library.syntax +8 -15
  13. data/lib/code_rippa/syntax/ada.syntax +19 -18
  14. data/lib/code_rippa/syntax/antlr.syntax +85 -85
  15. data/lib/code_rippa/syntax/apache.syntax +103 -109
  16. data/lib/code_rippa/syntax/applescript.syntax +244 -229
  17. data/lib/code_rippa/syntax/asp.syntax +41 -36
  18. data/lib/code_rippa/syntax/asp_vb.net.syntax +77 -72
  19. data/lib/code_rippa/syntax/bibtex.syntax +88 -90
  20. data/lib/code_rippa/syntax/blog_html.syntax +17 -29
  21. data/lib/code_rippa/syntax/blog_markdown.syntax +17 -27
  22. data/lib/code_rippa/syntax/blog_text.syntax +15 -15
  23. data/lib/code_rippa/syntax/blog_textile.syntax +15 -15
  24. data/lib/code_rippa/syntax/build.syntax +27 -27
  25. data/lib/code_rippa/syntax/bulletin_board.syntax +159 -172
  26. data/lib/code_rippa/syntax/c.syntax +31 -34
  27. data/lib/code_rippa/syntax/cake.syntax +27 -27
  28. data/lib/code_rippa/syntax/camlp4.syntax +23 -23
  29. data/lib/code_rippa/syntax/cm.syntax +19 -18
  30. data/lib/code_rippa/syntax/coffeescript.syntax +134 -181
  31. data/lib/code_rippa/syntax/coldfusion.syntax +51 -60
  32. data/lib/code_rippa/syntax/context_free.syntax +106 -106
  33. data/lib/code_rippa/syntax/cs.syntax +31 -34
  34. data/lib/code_rippa/syntax/css.syntax +112 -112
  35. data/lib/code_rippa/syntax/css_experimental.syntax +1006 -1004
  36. data/lib/code_rippa/syntax/csv.syntax +40 -44
  37. data/lib/code_rippa/syntax/d.syntax +80 -84
  38. data/lib/code_rippa/syntax/diff.syntax +46 -45
  39. data/lib/code_rippa/syntax/dokuwiki.syntax +118 -119
  40. data/lib/code_rippa/syntax/dot.syntax +26 -26
  41. data/lib/code_rippa/syntax/doxygen.syntax +26 -26
  42. data/lib/code_rippa/syntax/dylan.syntax +35 -35
  43. data/lib/code_rippa/syntax/eiffel.syntax +39 -42
  44. data/lib/code_rippa/syntax/erlang.syntax +514 -511
  45. data/lib/code_rippa/syntax/f-script.syntax +44 -44
  46. data/lib/code_rippa/syntax/fortran.syntax +80 -76
  47. data/lib/code_rippa/syntax/fxscript.syntax +78 -77
  48. data/lib/code_rippa/syntax/greasemonkey.syntax +20 -20
  49. data/lib/code_rippa/syntax/gri.syntax +47 -47
  50. data/lib/code_rippa/syntax/groovy.syntax +105 -114
  51. data/lib/code_rippa/syntax/gtd.syntax +10 -10
  52. data/lib/code_rippa/syntax/gtdalt.syntax +83 -83
  53. data/lib/code_rippa/syntax/haml.syntax +50 -50
  54. data/lib/code_rippa/syntax/haskell.syntax +47 -47
  55. data/lib/code_rippa/syntax/html-asp.syntax +15 -15
  56. data/lib/code_rippa/syntax/html_django.syntax +15 -14
  57. data/lib/code_rippa/syntax/html_for_asp.net.syntax +232 -245
  58. data/lib/code_rippa/syntax/html_mason.syntax +75 -74
  59. data/lib/code_rippa/syntax/html_rails.syntax +17 -27
  60. data/lib/code_rippa/syntax/html_tcl.syntax +13 -13
  61. data/lib/code_rippa/syntax/icalendar.syntax +15 -15
  62. data/lib/code_rippa/syntax/inform.syntax +26 -26
  63. data/lib/code_rippa/syntax/ini.syntax +30 -30
  64. data/lib/code_rippa/syntax/installer_distribution_script.syntax +49 -49
  65. data/lib/code_rippa/syntax/io.syntax +49 -46
  66. data/lib/code_rippa/syntax/java.syntax +117 -126
  67. data/lib/code_rippa/syntax/javaproperties.syntax +13 -12
  68. data/lib/code_rippa/syntax/javascript.syntax +141 -141
  69. data/lib/code_rippa/syntax/javascript_+_prototype.syntax +42 -41
  70. data/lib/code_rippa/syntax/javascript_+_prototype_bracketed.syntax +92 -91
  71. data/lib/code_rippa/syntax/jquery_javascript.syntax +64 -64
  72. data/lib/code_rippa/syntax/json.syntax +39 -39
  73. data/lib/code_rippa/syntax/languagedefinition.syntax +373 -453
  74. data/lib/code_rippa/syntax/lexflex.syntax +136 -136
  75. data/lib/code_rippa/syntax/lighttpd.syntax +31 -31
  76. data/lib/code_rippa/syntax/lilypond.syntax +246 -337
  77. data/lib/code_rippa/syntax/lisp.syntax +32 -32
  78. data/lib/code_rippa/syntax/literate_haskell.syntax +12 -12
  79. data/lib/code_rippa/syntax/logo.syntax +13 -14
  80. data/lib/code_rippa/syntax/logtalk.syntax +81 -81
  81. data/lib/code_rippa/syntax/lua.syntax +50 -48
  82. data/lib/code_rippa/syntax/m.syntax +78 -78
  83. data/lib/code_rippa/syntax/macports_portfile.syntax +98 -97
  84. data/lib/code_rippa/syntax/makefile.syntax +19 -19
  85. data/lib/code_rippa/syntax/man.syntax +9 -9
  86. data/lib/code_rippa/syntax/mediawiki.syntax +311 -401
  87. data/lib/code_rippa/syntax/mips.syntax +34 -34
  88. data/lib/code_rippa/syntax/mod_perl.syntax +25 -31
  89. data/lib/code_rippa/syntax/modula-3.syntax +24 -24
  90. data/lib/code_rippa/syntax/moinmoin.syntax +102 -102
  91. data/lib/code_rippa/syntax/mootools.syntax +283 -300
  92. data/lib/code_rippa/syntax/movable_type.syntax +91 -90
  93. data/lib/code_rippa/syntax/multimarkdown.syntax +19 -30
  94. data/lib/code_rippa/syntax/objective-c++.syntax +6 -10
  95. data/lib/code_rippa/syntax/objective-c.syntax +134 -138
  96. data/lib/code_rippa/syntax/ocaml.syntax +455 -453
  97. data/lib/code_rippa/syntax/ocamllex.syntax +94 -93
  98. data/lib/code_rippa/syntax/ocamlyacc.syntax +98 -98
  99. data/lib/code_rippa/syntax/opengl.syntax +6 -6
  100. data/lib/code_rippa/syntax/pascal.syntax +43 -42
  101. data/lib/code_rippa/syntax/perl.syntax +612 -615
  102. data/lib/code_rippa/syntax/plain_text.syntax +17 -20
  103. data/lib/code_rippa/syntax/postscript.syntax +71 -69
  104. data/lib/code_rippa/syntax/processing.syntax +60 -60
  105. data/lib/code_rippa/syntax/prolog.syntax +17 -20
  106. data/lib/code_rippa/syntax/property_list.syntax +338 -359
  107. data/lib/code_rippa/syntax/python.syntax +487 -509
  108. data/lib/code_rippa/syntax/python_django.syntax +9 -10
  109. data/lib/code_rippa/syntax/qmake_project.syntax +67 -67
  110. data/lib/code_rippa/syntax/qt_c++.syntax +12 -15
  111. data/lib/code_rippa/syntax/quake3_config.syntax +18 -17
  112. data/lib/code_rippa/syntax/r.syntax +42 -42
  113. data/lib/code_rippa/syntax/r_console.syntax +7 -8
  114. data/lib/code_rippa/syntax/ragel.syntax +109 -115
  115. data/lib/code_rippa/syntax/rd_r_documentation.syntax +53 -53
  116. data/lib/code_rippa/syntax/regexp.syntax +26 -26
  117. data/lib/code_rippa/syntax/release_notes.syntax +46 -26
  118. data/lib/code_rippa/syntax/remind.syntax +146 -146
  119. data/lib/code_rippa/syntax/restructuredtext.syntax +132 -131
  120. data/lib/code_rippa/syntax/rez.syntax +46 -45
  121. data/lib/code_rippa/syntax/ruby.syntax +533 -601
  122. data/lib/code_rippa/syntax/ruby_experimental.syntax +82 -100
  123. data/lib/code_rippa/syntax/ruby_on_rails.syntax +56 -68
  124. data/lib/code_rippa/syntax/s5.syntax +35 -51
  125. data/lib/code_rippa/syntax/scheme.syntax +162 -260
  126. data/lib/code_rippa/syntax/scilab.syntax +18 -18
  127. data/lib/code_rippa/syntax/setext.syntax +82 -82
  128. data/lib/code_rippa/syntax/shell-unix-generic.syntax +227 -226
  129. data/lib/code_rippa/syntax/slate.syntax +91 -91
  130. data/lib/code_rippa/syntax/sql.syntax +137 -139
  131. data/lib/code_rippa/syntax/sql_rails.syntax +8 -8
  132. data/lib/code_rippa/syntax/ssh-config.syntax +17 -17
  133. data/lib/code_rippa/syntax/standard_ml.syntax +67 -69
  134. data/lib/code_rippa/syntax/strings_file.syntax +20 -23
  135. data/lib/code_rippa/syntax/subversion_commit_message.syntax +20 -20
  136. data/lib/code_rippa/syntax/sweave.syntax +45 -45
  137. data/lib/code_rippa/syntax/swig.syntax +34 -33
  138. data/lib/code_rippa/syntax/tcl.syntax +87 -86
  139. data/lib/code_rippa/syntax/template_toolkit.syntax +67 -65
  140. data/lib/code_rippa/syntax/textile.syntax +111 -145
  141. data/lib/code_rippa/syntax/tsv.syntax +31 -33
  142. data/lib/code_rippa/syntax/twiki.syntax +141 -141
  143. data/lib/code_rippa/syntax/txt2tags.syntax +39 -38
  144. data/lib/code_rippa/syntax/vectorscript.syntax +31 -31
  145. data/lib/code_rippa/syntax/xhtml_1.0.syntax +2297 -2296
  146. data/lib/code_rippa/syntax/xml.syntax +95 -95
  147. data/lib/code_rippa/syntax/xml_strict.syntax +49 -50
  148. data/lib/code_rippa/syntax/xsl.syntax +31 -31
  149. data/lib/code_rippa/syntax/yaml.syntax +86 -86
  150. data/lib/code_rippa/syntax/yaml_converter.rb +37 -0
  151. data/lib/code_rippa/syntax/yui_javascript.syntax +88 -88
  152. data/lib/code_rippa/version.rb +2 -2
  153. data/test/fixtures/hello.rb +5 -3
  154. data/test/test_private_methods.rb +40 -40
  155. data/test/test_public_methods.rb +9 -18
  156. metadata +61 -63
@@ -1,6 +1,6 @@
1
- ---
1
+ ---
2
2
  name: Property List
3
- fileTypes:
3
+ fileTypes:
4
4
  - plist
5
5
  - dict
6
6
  - tmCommand
@@ -14,309 +14,310 @@ fileTypes:
14
14
  - scriptSuite
15
15
  - scriptTerminology
16
16
  - savedSearch
17
- scopeName: ""
18
- repository:
19
- openstep_comment:
20
- patterns:
17
+ scopeName: ''
18
+ repository:
19
+ openstep_comment:
20
+ patterns:
21
21
  - name: comment.block.plist
22
- captures:
23
- "0":
22
+ captures:
23
+ '0':
24
24
  name: punctuation.definition.comment.plist
25
- begin: /\*
26
- end: \*/
25
+ begin: "/\\*"
26
+ end: "\\*/"
27
27
  - name: comment.line.double-slash.plist
28
- captures:
29
- "1":
28
+ captures:
29
+ '1':
30
30
  name: punctuation.definition.comment.plist
31
- match: (//).*$\n?
32
- openstep:
33
- patterns:
31
+ match: "(//).*$\\n?"
32
+ openstep:
33
+ patterns:
34
34
  - include: "#openstep_comment"
35
35
  - include: "#openstep_dictionary"
36
36
  - include: "#openstep_array"
37
37
  - include: "#openstep_stray-char"
38
- xml_tags:
39
- patterns:
40
- - captures:
41
- "6":
38
+ xml_tags:
39
+ patterns:
40
+ - captures:
41
+ '6':
42
42
  name: meta.tag.dict.xml.plist
43
- "11":
43
+ '11':
44
44
  name: punctuation.definition.tag.xml.plist
45
- "7":
45
+ '7':
46
46
  name: punctuation.definition.tag.xml.plist
47
- "8":
47
+ '8':
48
48
  name: meta.scope.between-tag-pair.xml.plist
49
- "9":
49
+ '9':
50
50
  name: entity.name.tag.xml.plist
51
- "1":
51
+ '1':
52
52
  name: meta.tag.dict.xml.plist
53
- "2":
53
+ '2':
54
54
  name: punctuation.definition.tag.xml.plist
55
- "3":
55
+ '3':
56
56
  name: entity.name.tag.xml.plist
57
- "4":
57
+ '4':
58
58
  name: entity.name.tag.localname.xml.plist
59
- "10":
59
+ '10':
60
60
  name: entity.name.tag.localname.xml.plist
61
- "5":
61
+ '5':
62
62
  name: punctuation.definition.tag.xml.plist
63
- match: ((<)((dict))(>))(((<)/)((dict))(>))
64
- comment: "Empty tag: Dictionary"
65
- - captures:
66
- "6":
63
+ match: "((<)((dict))(>))(((<)/)((dict))(>))"
64
+ comment: 'Empty tag: Dictionary'
65
+ - captures:
66
+ '6':
67
67
  name: meta.tag.array.xml.plist
68
- "11":
68
+ '11':
69
69
  name: punctuation.definition.tag.xml.plist
70
- "7":
70
+ '7':
71
71
  name: punctuation.definition.tag.xml.plist
72
- "8":
72
+ '8':
73
73
  name: meta.scope.between-tag-pair.xml.plist
74
- "9":
74
+ '9':
75
75
  name: entity.name.tag.xml.plist
76
- "1":
76
+ '1':
77
77
  name: meta.tag.array.xml.plist
78
- "2":
78
+ '2':
79
79
  name: punctuation.definition.tag.xml.plist
80
- "3":
80
+ '3':
81
81
  name: entity.name.tag.xml.plist
82
- "4":
82
+ '4':
83
83
  name: entity.name.tag.localname.xml.plist
84
- "10":
84
+ '10':
85
85
  name: entity.name.tag.localname.xml.plist
86
- "5":
86
+ '5':
87
87
  name: punctuation.definition.tag.xml.plist
88
- match: ((<)((array))(>))(((<)/)((array))(>))
89
- comment: "Empty tag: Array"
90
- - captures:
91
- "6":
88
+ match: "((<)((array))(>))(((<)/)((array))(>))"
89
+ comment: 'Empty tag: Array'
90
+ - captures:
91
+ '6':
92
92
  name: meta.tag.string.xml.plist
93
- "11":
93
+ '11':
94
94
  name: punctuation.definition.tag.xml.plist
95
- "7":
95
+ '7':
96
96
  name: punctuation.definition.tag.xml.plist
97
- "8":
97
+ '8':
98
98
  name: meta.scope.between-tag-pair.xml.plist
99
- "9":
99
+ '9':
100
100
  name: entity.name.tag.xml.plist
101
- "1":
101
+ '1':
102
102
  name: meta.tag.string.xml.plist
103
- "2":
103
+ '2':
104
104
  name: punctuation.definition.tag.xml.plist
105
- "3":
105
+ '3':
106
106
  name: entity.name.tag.xml.plist
107
- "4":
107
+ '4':
108
108
  name: entity.name.tag.localname.xml.plist
109
- "10":
109
+ '10':
110
110
  name: entity.name.tag.localname.xml.plist
111
- "5":
111
+ '5':
112
112
  name: punctuation.definition.tag.xml.plist
113
- match: ((<)((string))(>))(((<)/)((string))(>))
114
- comment: "Empty tag: String"
115
- - captures:
116
- "1":
113
+ match: "((<)((string))(>))(((<)/)((string))(>))"
114
+ comment: 'Empty tag: String'
115
+ - captures:
116
+ '1':
117
117
  name: meta.tag.key.xml.plist
118
- "2":
118
+ '2':
119
119
  name: punctuation.definition.tag.xml.plist
120
- "3":
120
+ '3':
121
121
  name: entity.name.tag.xml.plist
122
- "4":
122
+ '4':
123
123
  name: entity.name.tag.localname.xml.plist
124
- "5":
124
+ '5':
125
125
  name: punctuation.definition.tag.xml.plist
126
- begin: ((<)((key))(>))
126
+ begin: "((<)((key))(>))"
127
127
  contentName: constant.other.name.xml.plist
128
- end: ((</)((key))(>))
129
- patterns:
130
- - captures:
131
- "0":
128
+ end: "((</)((key))(>))"
129
+ patterns:
130
+ - captures:
131
+ '0':
132
132
  name: punctuation.definition.constant.xml
133
- begin: <!\[CDATA\[
133
+ begin: "<!\\[CDATA\\["
134
134
  end: "]]>"
135
- comment: the extra captures are required to duplicate the effect of the namespace parsing in the XML syntax
136
- - captures:
137
- "1":
135
+ comment: the extra captures are required to duplicate the effect of the namespace
136
+ parsing in the XML syntax
137
+ - captures:
138
+ '1':
138
139
  name: meta.tag.dict.xml.plist
139
- "2":
140
+ '2':
140
141
  name: punctuation.definition.tag.xml.plist
141
- "3":
142
+ '3':
142
143
  name: entity.name.tag.xml.plist
143
- "4":
144
+ '4':
144
145
  name: entity.name.tag.localname.xml.plist
145
- "5":
146
+ '5':
146
147
  name: punctuation.definition.tag.xml.plist
147
- match: ((<)((dict))\s*?/(>))
148
+ match: "((<)((dict))\\s*?/(>))"
148
149
  comment: Self-closing Dictionary
149
- - captures:
150
- "1":
150
+ - captures:
151
+ '1':
151
152
  name: meta.tag.array.xml.plist
152
- "2":
153
+ '2':
153
154
  name: punctuation.definition.tag.xml.plist
154
- "3":
155
+ '3':
155
156
  name: entity.name.tag.xml.plist
156
- "4":
157
+ '4':
157
158
  name: entity.name.tag.localname.xml.plist
158
- "5":
159
+ '5':
159
160
  name: punctuation.definition.tag.xml.plist
160
- match: ((<)((array))\s*?/(>))
161
+ match: "((<)((array))\\s*?/(>))"
161
162
  comment: Self-closing Array
162
- - captures:
163
- "1":
163
+ - captures:
164
+ '1':
164
165
  name: meta.tag.string.xml.plist
165
- "2":
166
+ '2':
166
167
  name: punctuation.definition.tag.xml.plist
167
- "3":
168
+ '3':
168
169
  name: entity.name.tag.xml.plist
169
- "4":
170
+ '4':
170
171
  name: entity.name.tag.localname.xml.plist
171
- "5":
172
+ '5':
172
173
  name: punctuation.definition.tag.xml.plist
173
- match: ((<)((string))\s*?/(>))
174
+ match: "((<)((string))\\s*?/(>))"
174
175
  comment: Self-closing String
175
- - captures:
176
- "1":
176
+ - captures:
177
+ '1':
177
178
  name: meta.tag.key.xml.plist
178
- "2":
179
+ '2':
179
180
  name: punctuation.definition.tag.xml.plist
180
- "3":
181
+ '3':
181
182
  name: entity.name.tag.xml.plist
182
- "4":
183
+ '4':
183
184
  name: entity.name.tag.localname.xml.plist
184
- "5":
185
+ '5':
185
186
  name: punctuation.definition.tag.xml.plist
186
- match: ((<)((key))\s*?/(>))
187
+ match: "((<)((key))\\s*?/(>))"
187
188
  comment: Self-closing Key
188
- - captures:
189
- "1":
189
+ - captures:
190
+ '1':
190
191
  name: meta.tag.dict.xml.plist
191
- "2":
192
+ '2':
192
193
  name: punctuation.definition.tag.xml.plist
193
- "3":
194
+ '3':
194
195
  name: entity.name.tag.xml.plist
195
- "4":
196
+ '4':
196
197
  name: entity.name.tag.localname.xml.plist
197
- "5":
198
+ '5':
198
199
  name: punctuation.definition.tag.xml.plist
199
- begin: ((<)((dict))(>))
200
- end: ((</)((dict))(>))
201
- patterns:
200
+ begin: "((<)((dict))(>))"
201
+ end: "((</)((dict))(>))"
202
+ patterns:
202
203
  - include: "#xml_tags"
203
204
  comment: Dictionary
204
- - captures:
205
- "1":
205
+ - captures:
206
+ '1':
206
207
  name: meta.tag.array.xml.plist
207
- "2":
208
+ '2':
208
209
  name: punctuation.definition.tag.xml.plist
209
- "3":
210
+ '3':
210
211
  name: entity.name.tag.xml.plist
211
- "4":
212
+ '4':
212
213
  name: entity.name.tag.localname.xml.plist
213
- "5":
214
+ '5':
214
215
  name: punctuation.definition.tag.xml.plist
215
- begin: ((<)((array))(>))
216
- end: ((</)((array))(>))
217
- patterns:
216
+ begin: "((<)((array))(>))"
217
+ end: "((</)((array))(>))"
218
+ patterns:
218
219
  - include: "#xml_tags"
219
220
  comment: Array
220
- - captures:
221
- "1":
221
+ - captures:
222
+ '1':
222
223
  name: meta.tag.string.xml.plist
223
- "2":
224
+ '2':
224
225
  name: punctuation.definition.tag.xml.plist
225
- "3":
226
+ '3':
226
227
  name: entity.name.tag.xml.plist
227
- "4":
228
+ '4':
228
229
  name: entity.name.tag.localname.xml.plist
229
- "5":
230
+ '5':
230
231
  name: punctuation.definition.tag.xml.plist
231
- begin: ((<)((string))(>))
232
+ begin: "((<)((string))(>))"
232
233
  contentName: string.quoted.other.xml.plist
233
- end: ((</)((string))(>))
234
- patterns:
234
+ end: "((</)((string))(>))"
235
+ patterns:
235
236
  - include: "#xml_innertag"
236
237
  - name: string.unquoted.cdata.xml
237
- captures:
238
- "0":
238
+ captures:
239
+ '0':
239
240
  name: punctuation.definition.string.xml
240
- begin: <!\[CDATA\[
241
+ begin: "<!\\[CDATA\\["
241
242
  end: "]]>"
242
243
  comment: Strings
243
- - captures:
244
- "1":
244
+ - captures:
245
+ '1':
245
246
  name: meta.tag.real.xml.plist
246
- "2":
247
+ '2':
247
248
  name: punctuation.definition.tag.xml.plist
248
- "3":
249
+ '3':
249
250
  name: entity.name.tag.xml.plist
250
- "4":
251
+ '4':
251
252
  name: entity.name.tag.localname.xml.plist
252
- "5":
253
+ '5':
253
254
  name: punctuation.definition.tag.xml.plist
254
- begin: ((<)((real))(>))
255
- end: ((</)((real))(>))
256
- patterns:
257
- - captures:
258
- "0":
255
+ begin: "((<)((real))(>))"
256
+ end: "((</)((real))(>))"
257
+ patterns:
258
+ - captures:
259
+ '0':
259
260
  name: punctuation.definition.constant.xml
260
- "1":
261
+ '1':
261
262
  name: constant.numeric.real.xml.plist
262
- begin: (<!\[CDATA\[)
263
- end: (]]>)
264
- patterns:
263
+ begin: "(<!\\[CDATA\\[)"
264
+ end: "(]]>)"
265
+ patterns:
265
266
  - name: constant.numeric.real.xml.plist
266
267
  match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?"
267
268
  - name: invalid.illegal.not-a-number.xml.plist
268
- match: .
269
+ match: "."
269
270
  - name: constant.numeric.real.xml.plist
270
271
  match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?"
271
272
  - name: invalid.illegal.not-a-number.xml.plist
272
- match: .
273
+ match: "."
273
274
  comment: Numeric
274
- - captures:
275
- "1":
275
+ - captures:
276
+ '1':
276
277
  name: meta.tag.integer.xml.plist
277
- "2":
278
+ '2':
278
279
  name: punctuation.definition.tag.xml.plist
279
- "3":
280
+ '3':
280
281
  name: entity.name.tag.xml.plist
281
- "4":
282
+ '4':
282
283
  name: entity.name.tag.localname.xml.plist
283
- "5":
284
+ '5':
284
285
  name: punctuation.definition.tag.xml.plist
285
- begin: ((<)((integer))(>))
286
- end: ((</)((integer))(>))
287
- patterns:
286
+ begin: "((<)((integer))(>))"
287
+ end: "((</)((integer))(>))"
288
+ patterns:
288
289
  - name: constant.numeric.integer.xml.plist
289
290
  match: "[-+]?\\d+"
290
291
  - name: invalid.illegal.not-a-number.xml.plist
291
- match: .
292
+ match: "."
292
293
  comment: Integer
293
- - captures:
294
- "1":
294
+ - captures:
295
+ '1':
295
296
  name: meta.tag.boolean.xml.plist
296
- "2":
297
+ '2':
297
298
  name: punctuation.definition.tag.xml.plist
298
- "3":
299
+ '3':
299
300
  name: entity.name.tag.xml.plist
300
- "4":
301
+ '4':
301
302
  name: entity.name.tag.localname.xml.plist
302
- "5":
303
+ '5':
303
304
  name: punctuation.definition.tag.xml.plist
304
- match: ((<)((true|false))\s*?(/>))
305
+ match: "((<)((true|false))\\s*?(/>))"
305
306
  comment: Boolean
306
- - captures:
307
- "1":
307
+ - captures:
308
+ '1':
308
309
  name: meta.tag.data.xml.plist
309
- "2":
310
+ '2':
310
311
  name: punctuation.definition.tag.xml.plist
311
- "3":
312
+ '3':
312
313
  name: entity.name.tag.xml.plist
313
- "4":
314
+ '4':
314
315
  name: entity.name.tag.localname.xml.plist
315
- "5":
316
+ '5':
316
317
  name: punctuation.definition.tag.xml.plist
317
- begin: ((<)((data))(>))
318
- end: ((</)((data))(>))
319
- patterns:
318
+ begin: "((<)((data))(>))"
319
+ end: "((</)((data))(>))"
320
+ patterns:
320
321
  - name: constant.numeric.base64.xml.plist
321
322
  match: "[A-Za-z0-9+/]"
322
323
  - name: constant.numeric.base64.xml.plist
@@ -324,312 +325,290 @@ repository:
324
325
  - name: invalid.illegal.invalid-character.xml.plist
325
326
  match: "[^ \\n\\t]"
326
327
  comment: Data
327
- - captures:
328
- "1":
328
+ - captures:
329
+ '1':
329
330
  name: meta.tag.date.xml.plist
330
- "2":
331
+ '2':
331
332
  name: punctuation.definition.tag.xml.plist
332
- "3":
333
+ '3':
333
334
  name: entity.name.tag.xml.plist
334
- "4":
335
+ '4':
335
336
  name: entity.name.tag.localname.xml.plist
336
- "5":
337
+ '5':
337
338
  name: punctuation.definition.tag.xml.plist
338
- begin: ((<)((date))(>))
339
- end: ((</)((date))(>))
340
- patterns:
339
+ begin: "((<)((date))(>))"
340
+ end: "((</)((date))(>))"
341
+ patterns:
341
342
  - name: constant.other.date.xml.plist
342
- match: "(?x)\n\
343
- \t\t\t\t\t\t\t\t\t\t[0-9]{4}\t\t\t\t\t\t# Year\n\
344
- \t\t\t\t\t\t\t\t\t\t-\t\t\t\t\t\t\t\t# Divider\n\
345
- \t\t\t\t\t\t\t\t\t\t(0[1-9]|1[012])\t\t\t\t\t# Month\n\
346
- \t\t\t\t\t\t\t\t\t\t-\t\t\t\t\t\t\t\t# Divider\n\
347
- \t\t\t\t\t\t\t\t\t\t(?!00|3[2-9])[0-3][0-9]\t\t\t# Day\n\
348
- \t\t\t\t\t\t\t\t\t\tT\t\t\t\t\t\t\t\t# Separator\n\
349
- \t\t\t\t\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\t\t\t# Hour\n\
350
- \t\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t# Divider\n\
351
- \t\t\t\t\t\t\t\t\t\t[0-5][0-9]\t\t\t\t\t\t# Minute\n\
352
- \t\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t# Divider\n\
353
- \t\t\t\t\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\t\t\t# Second\n\
354
- \t\t\t\t\t\t\t\t\t\tZ\t\t\t\t\t\t\t\t# Zulu\n\
355
- \t\t\t\t\t\t\t\t\t"
343
+ match: "(?x)\n\t\t\t\t\t\t\t\t\t\t[0-9]{4}\t\t\t\t\t\t# Year\n\t\t\t\t\t\t\t\t\t\t-\t\t\t\t\t\t\t\t#
344
+ Divider\n\t\t\t\t\t\t\t\t\t\t(0[1-9]|1[012])\t\t\t\t\t# Month\n\t\t\t\t\t\t\t\t\t\t-\t\t\t\t\t\t\t\t#
345
+ Divider\n\t\t\t\t\t\t\t\t\t\t(?!00|3[2-9])[0-3][0-9]\t\t\t# Day\n\t\t\t\t\t\t\t\t\t\tT\t\t\t\t\t\t\t\t#
346
+ Separator\n\t\t\t\t\t\t\t\t\t\t(?!2[5-9])[0-2][0-9]\t\t\t# Hour\n\t\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t#
347
+ Divider\n\t\t\t\t\t\t\t\t\t\t[0-5][0-9]\t\t\t\t\t\t# Minute\n\t\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t#
348
+ Divider\n\t\t\t\t\t\t\t\t\t\t(?!6[1-9])[0-6][0-9]\t\t\t# Second\n\t\t\t\t\t\t\t\t\t\tZ\t\t\t\t\t\t\t\t#
349
+ Zulu\n\t\t\t\t\t\t\t\t\t"
356
350
  comment: Date
357
351
  - include: "#xml_invalid"
358
352
  - include: "#xml_comment"
359
353
  - include: "#xml_stray-char"
360
- xml_innertag:
361
- patterns:
354
+ xml_innertag:
355
+ patterns:
362
356
  - name: constant.character.entity.xml.plist
363
357
  match: "&([a-zA-Z0-9_-]+|#[0-9]+|#x[0-9a-fA-F]+);"
364
358
  - name: invalid.illegal.bad-ampersand.xml.plist
365
359
  match: "&"
366
- xml:
367
- patterns:
368
- - captures:
369
- "1":
360
+ xml:
361
+ patterns:
362
+ - captures:
363
+ '1':
370
364
  name: meta.tag.plist.xml.plist
371
- "2":
365
+ '2':
372
366
  name: punctuation.definition.tag.xml.plist
373
- "3":
367
+ '3':
374
368
  name: entity.name.tag.xml.plist
375
- "4":
369
+ '4':
376
370
  name: entity.name.tag.localname.xml.plist
377
- "5":
371
+ '5':
378
372
  name: punctuation.definition.tag.xml.plist
379
- begin: ((<)((plist\b)))
380
- end: ((/)((plist))(>))
381
- patterns:
373
+ begin: "((<)((plist\\b)))"
374
+ end: "((/)((plist))(>))"
375
+ patterns:
382
376
  - name: meta.tag.plist.xml.plist
383
- begin: (?<=<plist)(?!>)\s*(?:(version)(=)(?:((").*?("))|((').*?('))))?
384
- beginCaptures:
385
- "6":
377
+ begin: "(?<=<plist)(?!>)\\s*(?:(version)(=)(?:((\").*?(\"))|((').*?('))))?"
378
+ beginCaptures:
379
+ '6':
386
380
  name: string.quoted.single.xml.plist
387
- "7":
381
+ '7':
388
382
  name: punctuation.definition.string.begin.xml.plist
389
- "8":
383
+ '8':
390
384
  name: punctuation.definition.string.end.xml.plist
391
- "1":
385
+ '1':
392
386
  name: entity.other.attribute-name.version.xml.plist
393
- "2":
387
+ '2':
394
388
  name: punctuation.separator.key-value.xml.plist
395
- "3":
389
+ '3':
396
390
  name: string.quoted.double.xml.plist
397
- "4":
391
+ '4':
398
392
  name: punctuation.definition.string.begin.xml.plist
399
- "5":
393
+ '5':
400
394
  name: punctuation.definition.string.end.xml.plist
401
- end: (?=>)
402
- - captures:
403
- "1":
395
+ end: "(?=>)"
396
+ - captures:
397
+ '1':
404
398
  name: meta.tag.plist.xml.plist
405
- "2":
399
+ '2':
406
400
  name: punctuation.definition.tag.xml.plist
407
- "3":
401
+ '3':
408
402
  name: meta.scope.between-tag-pair.xml.plist
409
- match: ((>(<)))(?=/plist)
403
+ match: "((>(<)))(?=/plist)"
410
404
  comment: Tag with no content
411
- - endCaptures:
412
- "0":
405
+ - endCaptures:
406
+ '0':
413
407
  name: meta.tag.plist.xml.plist
414
- "1":
408
+ '1':
415
409
  name: punctuation.definition.tag.xml.plist
416
- begin: ((>))(?!</plist)
417
- beginCaptures:
418
- "1":
410
+ begin: "((>))(?!</plist)"
411
+ beginCaptures:
412
+ '1':
419
413
  name: meta.tag.plist.xml.plist
420
- "2":
414
+ '2':
421
415
  name: punctuation.definition.tag.xml.plist
422
- end: (<)(?=/plist)
423
- patterns:
416
+ end: "(<)(?=/plist)"
417
+ patterns:
424
418
  - include: "#xml_tags"
425
419
  - include: "#xml_invalid"
426
420
  - include: "#xml_comment"
427
421
  - include: text.xml
428
422
  - include: "#xml_stray-char"
429
- openstep_data:
423
+ openstep_data:
430
424
  name: meta.binary-data.plist
431
- endCaptures:
432
- "1":
425
+ endCaptures:
426
+ '1':
433
427
  name: punctuation.terminator.data.plist
434
- "2":
428
+ '2':
435
429
  name: punctuation.definition.data.plist
436
- begin: (<)
437
- beginCaptures:
438
- "1":
430
+ begin: "(<)"
431
+ beginCaptures:
432
+ '1':
439
433
  name: punctuation.definition.data.plist
440
- end: (=?)\s*?(>)
441
- patterns:
434
+ end: "(=?)\\s*?(>)"
435
+ patterns:
442
436
  - name: constant.numeric.base64.plist
443
437
  match: "[A-Za-z0-9+/]"
444
438
  - name: invalid.illegal.invalid-character.plist
445
439
  match: "[^ \\n]"
446
- xml_stray-char:
440
+ xml_stray-char:
447
441
  name: invalid.illegal.character-data-not-allowed-here.xml.plist
448
- match: \S
449
- openstep_post-value:
450
- begin: (?<='|"|\}|\)|>|[-a-zA-Z0-9_.])(?!;)
451
- end: (?=;)
452
- patterns:
442
+ match: "\\S"
443
+ openstep_post-value:
444
+ begin: "(?<='|\"|\\}|\\)|>|[-a-zA-Z0-9_.])(?!;)"
445
+ end: "(?=;)"
446
+ patterns:
453
447
  - include: "#openstep_stray-char"
454
- openstep_dictionary:
448
+ openstep_dictionary:
455
449
  name: meta.group.dictionary.plist
456
- captures:
457
- "1":
450
+ captures:
451
+ '1':
458
452
  name: punctuation.section.dictionary.plist
459
- begin: (\{)
460
- end: (\})
461
- patterns:
453
+ begin: "(\\{)"
454
+ end: "(\\})"
455
+ patterns:
462
456
  - include: "#openstep_name"
463
457
  - include: "#openstep_comment"
464
458
  - include: "#openstep_stray-char"
465
- xml_comment:
459
+ xml_comment:
466
460
  name: comment.block.xml.plist
467
- captures:
468
- "0":
461
+ captures:
462
+ '0':
469
463
  name: punctuation.definition.comment.xml.plist
470
- begin: <!--
471
- end: (?<!-)-->
472
- patterns:
464
+ begin: "<!--"
465
+ end: "(?<!-)-->"
466
+ patterns:
473
467
  - name: invalid.illegal.double-dash-not-allowed.xml.plist
474
- match: -(?=-->)|--
475
- openstep_string-contents:
468
+ match: "-(?=-->)|--"
469
+ openstep_string-contents:
476
470
  name: constant.character.escape.plist
477
- match: \\([uU](\h{4}|\h{2})|\d{1,3}|.)
478
- openstep_stray-char:
471
+ match: "\\\\([uU](\\h{4}|\\h{2})|\\d{1,3}|.)"
472
+ openstep_stray-char:
479
473
  name: invalid.illegal.character-not-allowed-here.plist
480
474
  match: "[^\\s\\n]"
481
- xml_invalid:
482
- captures:
483
- "1":
475
+ xml_invalid:
476
+ captures:
477
+ '1':
484
478
  name: meta.tag.boolean.xml.plist
485
- "2":
479
+ '2':
486
480
  name: punctuation.definition.tag.xml.plist
487
- "3":
481
+ '3':
488
482
  name: invalid.illegal.tag-not-recognized.xml.plist
489
- "4":
483
+ '4':
490
484
  name: punctuation.definition.tag.xml.plist
491
- match: ((<)/?(\w+).*?(>))
485
+ match: "((<)/?(\\w+).*?(>))"
492
486
  comment: Invalid tag
493
- openstep_string:
494
- patterns:
487
+ openstep_string:
488
+ patterns:
495
489
  - name: string.quoted.single.plist
496
- endCaptures:
497
- "0":
490
+ endCaptures:
491
+ '0':
498
492
  name: punctuation.definition.string.end.plist
499
493
  begin: "'"
500
- beginCaptures:
501
- "0":
494
+ beginCaptures:
495
+ '0':
502
496
  name: punctuation.definition.string.begin.plist
503
497
  end: "'"
504
- patterns:
498
+ patterns:
505
499
  - include: "#openstep_string-contents"
506
500
  - name: string.quoted.double.plist
507
- endCaptures:
508
- "0":
501
+ endCaptures:
502
+ '0':
509
503
  name: punctuation.definition.string.end.plist
510
504
  begin: "\""
511
- beginCaptures:
512
- "0":
505
+ beginCaptures:
506
+ '0':
513
507
  name: punctuation.definition.string.begin.plist
514
508
  end: "\""
515
- patterns:
509
+ patterns:
516
510
  - include: "#openstep_string-contents"
517
511
  - name: constant.numeric.plist
518
512
  match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?(?!\\w)"
519
513
  - name: string.unquoted.plist
520
514
  match: "[-a-zA-Z0-9_.]+"
521
- openstep_name:
522
- patterns:
515
+ openstep_name:
516
+ patterns:
523
517
  - name: meta.rule.named.plist
524
- endCaptures:
525
- "1":
518
+ endCaptures:
519
+ '1':
526
520
  name: punctuation.terminator.array.plist
527
- "2":
521
+ '2':
528
522
  name: punctuation.terminator.dictionary.plist
529
- "3":
523
+ '3':
530
524
  name: punctuation.terminator.rule.plist
531
- begin: (?=([-a-zA-Z0-9_.]+)|("|'))
532
- end: ((?<=\));)|((?<=\});)|(;)
533
- patterns:
525
+ begin: "(?=([-a-zA-Z0-9_.]+)|(\"|'))"
526
+ end: "((?<=\\));)|((?<=\\});)|(;)"
527
+ patterns:
534
528
  - name: constant.other.key.plist
535
529
  match: "[-a-zA-Z0-9_.]+"
536
- - begin: (?<=('|"|[-a-zA-Z0-9_.]))(?!=)|\s
537
- end: (?==)
538
- patterns:
530
+ - begin: "(?<=('|\"|[-a-zA-Z0-9_.]))(?!=)|\\s"
531
+ end: "(?==)"
532
+ patterns:
539
533
  - include: "#openstep_stray-char"
540
- comment: |-
541
- Mark anything between the name and the =
542
- as invalid.
534
+ comment: "Mark anything between the name and the =\n\t\t\t\t\t\t\t\t\t\tas
535
+ invalid."
543
536
  - name: constant.other.key.plist
544
- endCaptures:
545
- "0":
537
+ endCaptures:
538
+ '0':
546
539
  name: punctuation.definition.string.end.plist
547
- begin: ("|')
548
- beginCaptures:
549
- "0":
540
+ begin: "(\"|')"
541
+ beginCaptures:
542
+ '0':
550
543
  name: punctuation.definition.string.begin.plist
551
- end: (\1)
552
- patterns:
544
+ end: "(\\1)"
545
+ patterns:
553
546
  - include: "#openstep_string-contents"
554
- - begin: (=)(?!;)
555
- beginCaptures:
556
- "1":
547
+ - begin: "(=)(?!;)"
548
+ beginCaptures:
549
+ '1':
557
550
  name: punctuation.separator.key-value.plist
558
- end: (?=;)
559
- patterns:
551
+ end: "(?=;)"
552
+ patterns:
560
553
  - include: "#openstep_post-value"
561
554
  - include: "#openstep_string"
562
555
  - include: "#openstep_data"
563
556
  - include: "#openstep_array"
564
557
  - include: "#openstep_dictionary"
565
- openstep_array-item:
566
- endCaptures:
567
- "1":
558
+ openstep_array-item:
559
+ endCaptures:
560
+ '1':
568
561
  name: punctuation.separator.array.plist
569
- begin: (?={|\(|"|'|[-a-zA-Z0-9_.]|<)
570
- end: (,)|(?=\))
571
- patterns:
562
+ begin: "(?={|\\(|\"|'|[-a-zA-Z0-9_.]|<)"
563
+ end: "(,)|(?=\\))"
564
+ patterns:
572
565
  - include: "#openstep_string"
573
566
  - include: "#openstep_data"
574
567
  - include: "#openstep_dictionary"
575
568
  - include: "#openstep_array"
576
- - begin: (?<="|'|\}|\))
577
- end: (?=,|\))
578
- patterns:
569
+ - begin: "(?<=\"|'|\\}|\\))"
570
+ end: "(?=,|\\))"
571
+ patterns:
579
572
  - include: "#openstep_comment"
580
573
  - include: "#openstep_stray-char"
581
574
  comment: Catch stray chars
582
- openstep_array:
575
+ openstep_array:
583
576
  name: meta.group.array.plist
584
- captures:
585
- "1":
577
+ captures:
578
+ '1':
586
579
  name: punctuation.section.array.plist
587
- begin: (\()
588
- end: (\))
589
- patterns:
580
+ begin: "(\\()"
581
+ end: "(\\))"
582
+ patterns:
590
583
  - include: "#openstep_array-item"
591
584
  - include: "#openstep_comment"
592
585
  - include: "#openstep_stray-char"
593
586
  uuid: E62B2729-6B1C-11D9-AE35-000D93589AF6
594
- foldingStartMarker: "(?x)\n\
595
- \t\t\t\t\t\t\t(\n\
596
- \t\t\t\t\t\t\t\t(^|=|=[ ]|\\s\\s|\\t)\t\t\t\t# Openstep foldings\n\
597
- \t\t\t\t\t\t\t\t(\\{|\\()(?!.*(\\)|\\}))\t\t\t# spaces before them to \n\
598
- \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# limit false positives\n\
599
- \t\t\t\t\t\t\t | (\n\
600
- \t\t\t\t\t\t\t\t\t^\\s*\n\
601
- \t\t\t\t\t\t\t\t\t(\n\
602
- \t\t\t\t\t\t\t\t\t\t<[^!?%/](?!.+?(/>\n\
603
- \t\t\t\t\t\t\t\t\t | </.+?>))\n\
604
- \t\t\t\t\t\t\t\t\t | <[!%]--(?!.+?--%?>)\n\
605
- \t\t\t\t\t\t\t\t\t)\n\
606
- \t\t\t\t\t\t\t\t)\n\
607
- \t\t\t\t\t\t\t)\n\
608
- \t\t\t\t\t\t "
609
- patterns:
587
+ foldingStartMarker: "(?x)\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(^|=|=[ ]|\\s\\s|\\t)\t\t\t\t#
588
+ Openstep foldings\n\t\t\t\t\t\t\t\t(\\{|\\()(?!.*(\\)|\\}))\t\t\t# spaces before
589
+ them to \n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# limit false positives\n\t\t\t\t\t\t\t
590
+ \ | (\n\t\t\t\t\t\t\t\t\t^\\s*\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t<[^!?%/](?!.+?(/>\n\t\t\t\t\t\t\t\t\t
591
+ \ | </.+?>))\n\t\t\t\t\t\t\t\t\t | <[!%]--(?!.+?--%?>)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t "
592
+ patterns:
610
593
  - name: text.xml.plist
611
594
  begin: xml|plist
612
- end: \Z(?!\n)
595
+ end: "\\Z(?!\\n)"
613
596
  comment: This gives us the proper scope for the xml or plist snippet.
614
597
  - name: source.plist.binary
615
- begin: ^bplist00
616
- end: \Z(?!\n)
598
+ begin: "^bplist00"
599
+ end: "\\Z(?!\\n)"
617
600
  comment: This gives us the proper scope for the convert plist command.
618
601
  - name: text.xml.plist
619
- begin: (?=\s*(<\?xml|<!DOCTYPE\s*plist))
620
- end: \Z(?!\n)
621
- patterns:
602
+ begin: "(?=\\s*(<\\?xml|<!DOCTYPE\\s*plist))"
603
+ end: "\\Z(?!\\n)"
604
+ patterns:
622
605
  - include: "#xml"
623
606
  - name: source.plist
624
- begin: (?=\s*({|\(|//|/\*))
625
- end: \Z(?!\n)
626
- patterns:
607
+ begin: "(?=\\s*({|\\(|//|/\\*))"
608
+ end: "\\Z(?!\\n)"
609
+ patterns:
627
610
  - include: "#openstep"
628
- foldingStopMarker: "(?x)\n\
629
- \t\t\t\t\t\t\t(\n\
630
- \t\t\t\t\t\t\t\t(\\}|\\))(,|;)?\t\t\t\t\t# Openstep foldings\n\
631
- \t\t\t\t\t\t\t\t.*$\t\t\t\t\t\t\t\t# limit false positives\n\
632
- \t\t\t\t\t\t\t | (^\\s*(</[^>]+>|/>|-->)\\s*$)\t\t# XML\t\t\t\t\t\t\n\
633
- \t\t\t\t\t\t\t)\n\
634
- \t\t\t\t\t\t"
635
- keyEquivalent: ^~P
611
+ foldingStopMarker: "(?x)\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(\\}|\\))(,|;)?\t\t\t\t\t#
612
+ Openstep foldings\n\t\t\t\t\t\t\t\t.*$\t\t\t\t\t\t\t\t# limit false positives\n\t\t\t\t\t\t\t
613
+ \ | (^\\s*(</[^>]+>|/>|-->)\\s*$)\t\t# XML\t\t\t\t\t\t\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t"
614
+ keyEquivalent: "^~P"