code_rippa 0.0.7 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
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"