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,32 @@
1
+ ---
2
+ name: Plain Text
3
+ fileTypes:
4
+ - txt
5
+ scopeName: text.plain
6
+ uuid: 3130E4FA-B10E-11D9-9F75-000D93589AF6
7
+ patterns:
8
+ - name: meta.bullet-point.strong
9
+ captures:
10
+ "1":
11
+ name: punctuation.definition.item.text
12
+ match: "^\\s*(\xE2\x80\xA2).*$\\n?"
13
+ - name: meta.bullet-point.light
14
+ captures:
15
+ "1":
16
+ name: punctuation.definition.item.text
17
+ match: "^\\s*(\xC2\xB7).*$\\n?"
18
+ - name: meta.bullet-point.star
19
+ captures:
20
+ "1":
21
+ name: punctuation.definition.item.text
22
+ match: ^\s*(\*).*$\n?
23
+ - begin: ^([ \t]*)(?=\S)
24
+ contentName: meta.paragraph.text
25
+ end: ^(?!\1(?=\S))
26
+ patterns:
27
+ - name: markup.underline.link
28
+ match: "(?x)\n\
29
+ \t\t\t\t\t\t( (https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt)://|mailto:)\n\
30
+ \t\t\t\t\t\t[-:@a-zA-Z0-9_.,~%+/?=&#]+(?<![.,?:])\n\
31
+ \t\t\t\t\t"
32
+ keyEquivalent: ^~P
@@ -0,0 +1,635 @@
1
+ ---
2
+ name: Property List
3
+ fileTypes:
4
+ - plist
5
+ - dict
6
+ - tmCommand
7
+ - tmDelta
8
+ - tmDragCommand
9
+ - tmLanguage
10
+ - tmMacro
11
+ - tmPreferences
12
+ - tmSnippet
13
+ - tmTheme
14
+ - scriptSuite
15
+ - scriptTerminology
16
+ - savedSearch
17
+ scopeName: "text.plist"
18
+ repository:
19
+ openstep_comment:
20
+ patterns:
21
+ - name: comment.block.plist
22
+ captures:
23
+ "0":
24
+ name: punctuation.definition.comment.plist
25
+ begin: /\*
26
+ end: \*/
27
+ - name: comment.line.double-slash.plist
28
+ captures:
29
+ "1":
30
+ name: punctuation.definition.comment.plist
31
+ match: (//).*$\n?
32
+ openstep:
33
+ patterns:
34
+ - include: "#openstep_comment"
35
+ - include: "#openstep_dictionary"
36
+ - include: "#openstep_array"
37
+ - include: "#openstep_stray-char"
38
+ xml_tags:
39
+ patterns:
40
+ - captures:
41
+ "6":
42
+ name: meta.tag.dict.xml.plist
43
+ "11":
44
+ name: punctuation.definition.tag.xml.plist
45
+ "7":
46
+ name: punctuation.definition.tag.xml.plist
47
+ "8":
48
+ name: meta.scope.between-tag-pair.xml.plist
49
+ "9":
50
+ name: entity.name.tag.xml.plist
51
+ "1":
52
+ name: meta.tag.dict.xml.plist
53
+ "2":
54
+ name: punctuation.definition.tag.xml.plist
55
+ "3":
56
+ name: entity.name.tag.xml.plist
57
+ "4":
58
+ name: entity.name.tag.localname.xml.plist
59
+ "10":
60
+ name: entity.name.tag.localname.xml.plist
61
+ "5":
62
+ name: punctuation.definition.tag.xml.plist
63
+ match: ((<)((dict))(>))(((<)/)((dict))(>))
64
+ comment: "Empty tag: Dictionary"
65
+ - captures:
66
+ "6":
67
+ name: meta.tag.array.xml.plist
68
+ "11":
69
+ name: punctuation.definition.tag.xml.plist
70
+ "7":
71
+ name: punctuation.definition.tag.xml.plist
72
+ "8":
73
+ name: meta.scope.between-tag-pair.xml.plist
74
+ "9":
75
+ name: entity.name.tag.xml.plist
76
+ "1":
77
+ name: meta.tag.array.xml.plist
78
+ "2":
79
+ name: punctuation.definition.tag.xml.plist
80
+ "3":
81
+ name: entity.name.tag.xml.plist
82
+ "4":
83
+ name: entity.name.tag.localname.xml.plist
84
+ "10":
85
+ name: entity.name.tag.localname.xml.plist
86
+ "5":
87
+ name: punctuation.definition.tag.xml.plist
88
+ match: ((<)((array))(>))(((<)/)((array))(>))
89
+ comment: "Empty tag: Array"
90
+ - captures:
91
+ "6":
92
+ name: meta.tag.string.xml.plist
93
+ "11":
94
+ name: punctuation.definition.tag.xml.plist
95
+ "7":
96
+ name: punctuation.definition.tag.xml.plist
97
+ "8":
98
+ name: meta.scope.between-tag-pair.xml.plist
99
+ "9":
100
+ name: entity.name.tag.xml.plist
101
+ "1":
102
+ name: meta.tag.string.xml.plist
103
+ "2":
104
+ name: punctuation.definition.tag.xml.plist
105
+ "3":
106
+ name: entity.name.tag.xml.plist
107
+ "4":
108
+ name: entity.name.tag.localname.xml.plist
109
+ "10":
110
+ name: entity.name.tag.localname.xml.plist
111
+ "5":
112
+ name: punctuation.definition.tag.xml.plist
113
+ match: ((<)((string))(>))(((<)/)((string))(>))
114
+ comment: "Empty tag: String"
115
+ - captures:
116
+ "1":
117
+ name: meta.tag.key.xml.plist
118
+ "2":
119
+ name: punctuation.definition.tag.xml.plist
120
+ "3":
121
+ name: entity.name.tag.xml.plist
122
+ "4":
123
+ name: entity.name.tag.localname.xml.plist
124
+ "5":
125
+ name: punctuation.definition.tag.xml.plist
126
+ begin: ((<)((key))(>))
127
+ contentName: constant.other.name.xml.plist
128
+ end: ((</)((key))(>))
129
+ patterns:
130
+ - captures:
131
+ "0":
132
+ name: punctuation.definition.constant.xml
133
+ begin: <!\[CDATA\[
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":
138
+ name: meta.tag.dict.xml.plist
139
+ "2":
140
+ name: punctuation.definition.tag.xml.plist
141
+ "3":
142
+ name: entity.name.tag.xml.plist
143
+ "4":
144
+ name: entity.name.tag.localname.xml.plist
145
+ "5":
146
+ name: punctuation.definition.tag.xml.plist
147
+ match: ((<)((dict))\s*?/(>))
148
+ comment: Self-closing Dictionary
149
+ - captures:
150
+ "1":
151
+ name: meta.tag.array.xml.plist
152
+ "2":
153
+ name: punctuation.definition.tag.xml.plist
154
+ "3":
155
+ name: entity.name.tag.xml.plist
156
+ "4":
157
+ name: entity.name.tag.localname.xml.plist
158
+ "5":
159
+ name: punctuation.definition.tag.xml.plist
160
+ match: ((<)((array))\s*?/(>))
161
+ comment: Self-closing Array
162
+ - captures:
163
+ "1":
164
+ name: meta.tag.string.xml.plist
165
+ "2":
166
+ name: punctuation.definition.tag.xml.plist
167
+ "3":
168
+ name: entity.name.tag.xml.plist
169
+ "4":
170
+ name: entity.name.tag.localname.xml.plist
171
+ "5":
172
+ name: punctuation.definition.tag.xml.plist
173
+ match: ((<)((string))\s*?/(>))
174
+ comment: Self-closing String
175
+ - captures:
176
+ "1":
177
+ name: meta.tag.key.xml.plist
178
+ "2":
179
+ name: punctuation.definition.tag.xml.plist
180
+ "3":
181
+ name: entity.name.tag.xml.plist
182
+ "4":
183
+ name: entity.name.tag.localname.xml.plist
184
+ "5":
185
+ name: punctuation.definition.tag.xml.plist
186
+ match: ((<)((key))\s*?/(>))
187
+ comment: Self-closing Key
188
+ - captures:
189
+ "1":
190
+ name: meta.tag.dict.xml.plist
191
+ "2":
192
+ name: punctuation.definition.tag.xml.plist
193
+ "3":
194
+ name: entity.name.tag.xml.plist
195
+ "4":
196
+ name: entity.name.tag.localname.xml.plist
197
+ "5":
198
+ name: punctuation.definition.tag.xml.plist
199
+ begin: ((<)((dict))(>))
200
+ end: ((</)((dict))(>))
201
+ patterns:
202
+ - include: "#xml_tags"
203
+ comment: Dictionary
204
+ - captures:
205
+ "1":
206
+ name: meta.tag.array.xml.plist
207
+ "2":
208
+ name: punctuation.definition.tag.xml.plist
209
+ "3":
210
+ name: entity.name.tag.xml.plist
211
+ "4":
212
+ name: entity.name.tag.localname.xml.plist
213
+ "5":
214
+ name: punctuation.definition.tag.xml.plist
215
+ begin: ((<)((array))(>))
216
+ end: ((</)((array))(>))
217
+ patterns:
218
+ - include: "#xml_tags"
219
+ comment: Array
220
+ - captures:
221
+ "1":
222
+ name: meta.tag.string.xml.plist
223
+ "2":
224
+ name: punctuation.definition.tag.xml.plist
225
+ "3":
226
+ name: entity.name.tag.xml.plist
227
+ "4":
228
+ name: entity.name.tag.localname.xml.plist
229
+ "5":
230
+ name: punctuation.definition.tag.xml.plist
231
+ begin: ((<)((string))(>))
232
+ contentName: string.quoted.other.xml.plist
233
+ end: ((</)((string))(>))
234
+ patterns:
235
+ - include: "#xml_innertag"
236
+ - name: string.unquoted.cdata.xml
237
+ captures:
238
+ "0":
239
+ name: punctuation.definition.string.xml
240
+ begin: <!\[CDATA\[
241
+ end: "]]>"
242
+ comment: Strings
243
+ - captures:
244
+ "1":
245
+ name: meta.tag.real.xml.plist
246
+ "2":
247
+ name: punctuation.definition.tag.xml.plist
248
+ "3":
249
+ name: entity.name.tag.xml.plist
250
+ "4":
251
+ name: entity.name.tag.localname.xml.plist
252
+ "5":
253
+ name: punctuation.definition.tag.xml.plist
254
+ begin: ((<)((real))(>))
255
+ end: ((</)((real))(>))
256
+ patterns:
257
+ - captures:
258
+ "0":
259
+ name: punctuation.definition.constant.xml
260
+ "1":
261
+ name: constant.numeric.real.xml.plist
262
+ begin: (<!\[CDATA\[)
263
+ end: (]]>)
264
+ patterns:
265
+ - name: constant.numeric.real.xml.plist
266
+ match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?"
267
+ - name: invalid.illegal.not-a-number.xml.plist
268
+ match: .
269
+ - name: constant.numeric.real.xml.plist
270
+ match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?"
271
+ - name: invalid.illegal.not-a-number.xml.plist
272
+ match: .
273
+ comment: Numeric
274
+ - captures:
275
+ "1":
276
+ name: meta.tag.integer.xml.plist
277
+ "2":
278
+ name: punctuation.definition.tag.xml.plist
279
+ "3":
280
+ name: entity.name.tag.xml.plist
281
+ "4":
282
+ name: entity.name.tag.localname.xml.plist
283
+ "5":
284
+ name: punctuation.definition.tag.xml.plist
285
+ begin: ((<)((integer))(>))
286
+ end: ((</)((integer))(>))
287
+ patterns:
288
+ - name: constant.numeric.integer.xml.plist
289
+ match: "[-+]?\\d+"
290
+ - name: invalid.illegal.not-a-number.xml.plist
291
+ match: .
292
+ comment: Integer
293
+ - captures:
294
+ "1":
295
+ name: meta.tag.boolean.xml.plist
296
+ "2":
297
+ name: punctuation.definition.tag.xml.plist
298
+ "3":
299
+ name: entity.name.tag.xml.plist
300
+ "4":
301
+ name: entity.name.tag.localname.xml.plist
302
+ "5":
303
+ name: punctuation.definition.tag.xml.plist
304
+ match: ((<)((true|false))\s*?(/>))
305
+ comment: Boolean
306
+ - captures:
307
+ "1":
308
+ name: meta.tag.data.xml.plist
309
+ "2":
310
+ name: punctuation.definition.tag.xml.plist
311
+ "3":
312
+ name: entity.name.tag.xml.plist
313
+ "4":
314
+ name: entity.name.tag.localname.xml.plist
315
+ "5":
316
+ name: punctuation.definition.tag.xml.plist
317
+ begin: ((<)((data))(>))
318
+ end: ((</)((data))(>))
319
+ patterns:
320
+ - name: constant.numeric.base64.xml.plist
321
+ match: "[A-Za-z0-9+/]"
322
+ - name: constant.numeric.base64.xml.plist
323
+ match: "="
324
+ - name: invalid.illegal.invalid-character.xml.plist
325
+ match: "[^ \\n\\t]"
326
+ comment: Data
327
+ - captures:
328
+ "1":
329
+ name: meta.tag.date.xml.plist
330
+ "2":
331
+ name: punctuation.definition.tag.xml.plist
332
+ "3":
333
+ name: entity.name.tag.xml.plist
334
+ "4":
335
+ name: entity.name.tag.localname.xml.plist
336
+ "5":
337
+ name: punctuation.definition.tag.xml.plist
338
+ begin: ((<)((date))(>))
339
+ end: ((</)((date))(>))
340
+ patterns:
341
+ - 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"
356
+ comment: Date
357
+ - include: "#xml_invalid"
358
+ - include: "#xml_comment"
359
+ - include: "#xml_stray-char"
360
+ xml_innertag:
361
+ patterns:
362
+ - name: constant.character.entity.xml.plist
363
+ match: "&([a-zA-Z0-9_-]+|#[0-9]+|#x[0-9a-fA-F]+);"
364
+ - name: invalid.illegal.bad-ampersand.xml.plist
365
+ match: "&"
366
+ xml:
367
+ patterns:
368
+ - captures:
369
+ "1":
370
+ name: meta.tag.plist.xml.plist
371
+ "2":
372
+ name: punctuation.definition.tag.xml.plist
373
+ "3":
374
+ name: entity.name.tag.xml.plist
375
+ "4":
376
+ name: entity.name.tag.localname.xml.plist
377
+ "5":
378
+ name: punctuation.definition.tag.xml.plist
379
+ begin: ((<)((plist\b)))
380
+ end: ((/)((plist))(>))
381
+ patterns:
382
+ - name: meta.tag.plist.xml.plist
383
+ begin: (?<=<plist)(?!>)\s*(?:(version)(=)(?:((").*?("))|((').*?('))))?
384
+ beginCaptures:
385
+ "6":
386
+ name: string.quoted.single.xml.plist
387
+ "7":
388
+ name: punctuation.definition.string.begin.xml.plist
389
+ "8":
390
+ name: punctuation.definition.string.end.xml.plist
391
+ "1":
392
+ name: entity.other.attribute-name.version.xml.plist
393
+ "2":
394
+ name: punctuation.separator.key-value.xml.plist
395
+ "3":
396
+ name: string.quoted.double.xml.plist
397
+ "4":
398
+ name: punctuation.definition.string.begin.xml.plist
399
+ "5":
400
+ name: punctuation.definition.string.end.xml.plist
401
+ end: (?=>)
402
+ - captures:
403
+ "1":
404
+ name: meta.tag.plist.xml.plist
405
+ "2":
406
+ name: punctuation.definition.tag.xml.plist
407
+ "3":
408
+ name: meta.scope.between-tag-pair.xml.plist
409
+ match: ((>(<)))(?=/plist)
410
+ comment: Tag with no content
411
+ - endCaptures:
412
+ "0":
413
+ name: meta.tag.plist.xml.plist
414
+ "1":
415
+ name: punctuation.definition.tag.xml.plist
416
+ begin: ((>))(?!</plist)
417
+ beginCaptures:
418
+ "1":
419
+ name: meta.tag.plist.xml.plist
420
+ "2":
421
+ name: punctuation.definition.tag.xml.plist
422
+ end: (<)(?=/plist)
423
+ patterns:
424
+ - include: "#xml_tags"
425
+ - include: "#xml_invalid"
426
+ - include: "#xml_comment"
427
+ - include: text.xml
428
+ - include: "#xml_stray-char"
429
+ openstep_data:
430
+ name: meta.binary-data.plist
431
+ endCaptures:
432
+ "1":
433
+ name: punctuation.terminator.data.plist
434
+ "2":
435
+ name: punctuation.definition.data.plist
436
+ begin: (<)
437
+ beginCaptures:
438
+ "1":
439
+ name: punctuation.definition.data.plist
440
+ end: (=?)\s*?(>)
441
+ patterns:
442
+ - name: constant.numeric.base64.plist
443
+ match: "[A-Za-z0-9+/]"
444
+ - name: invalid.illegal.invalid-character.plist
445
+ match: "[^ \\n]"
446
+ xml_stray-char:
447
+ 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:
453
+ - include: "#openstep_stray-char"
454
+ openstep_dictionary:
455
+ name: meta.group.dictionary.plist
456
+ captures:
457
+ "1":
458
+ name: punctuation.section.dictionary.plist
459
+ begin: (\{)
460
+ end: (\})
461
+ patterns:
462
+ - include: "#openstep_name"
463
+ - include: "#openstep_comment"
464
+ - include: "#openstep_stray-char"
465
+ xml_comment:
466
+ name: comment.block.xml.plist
467
+ captures:
468
+ "0":
469
+ name: punctuation.definition.comment.xml.plist
470
+ begin: <!--
471
+ end: (?<!-)-->
472
+ patterns:
473
+ - name: invalid.illegal.double-dash-not-allowed.xml.plist
474
+ match: -(?=-->)|--
475
+ openstep_string-contents:
476
+ name: constant.character.escape.plist
477
+ match: \\([uU](\h{4}|\h{2})|\d{1,3}|.)
478
+ openstep_stray-char:
479
+ name: invalid.illegal.character-not-allowed-here.plist
480
+ match: "[^\\s\\n]"
481
+ xml_invalid:
482
+ captures:
483
+ "1":
484
+ name: meta.tag.boolean.xml.plist
485
+ "2":
486
+ name: punctuation.definition.tag.xml.plist
487
+ "3":
488
+ name: invalid.illegal.tag-not-recognized.xml.plist
489
+ "4":
490
+ name: punctuation.definition.tag.xml.plist
491
+ match: ((<)/?(\w+).*?(>))
492
+ comment: Invalid tag
493
+ openstep_string:
494
+ patterns:
495
+ - name: string.quoted.single.plist
496
+ endCaptures:
497
+ "0":
498
+ name: punctuation.definition.string.end.plist
499
+ begin: "'"
500
+ beginCaptures:
501
+ "0":
502
+ name: punctuation.definition.string.begin.plist
503
+ end: "'"
504
+ patterns:
505
+ - include: "#openstep_string-contents"
506
+ - name: string.quoted.double.plist
507
+ endCaptures:
508
+ "0":
509
+ name: punctuation.definition.string.end.plist
510
+ begin: "\""
511
+ beginCaptures:
512
+ "0":
513
+ name: punctuation.definition.string.begin.plist
514
+ end: "\""
515
+ patterns:
516
+ - include: "#openstep_string-contents"
517
+ - name: constant.numeric.plist
518
+ match: "[-+]?\\d+(\\.\\d*)?(E[-+]\\d+)?(?!\\w)"
519
+ - name: string.unquoted.plist
520
+ match: "[-a-zA-Z0-9_.]+"
521
+ openstep_name:
522
+ patterns:
523
+ - name: meta.rule.named.plist
524
+ endCaptures:
525
+ "1":
526
+ name: punctuation.terminator.array.plist
527
+ "2":
528
+ name: punctuation.terminator.dictionary.plist
529
+ "3":
530
+ name: punctuation.terminator.rule.plist
531
+ begin: (?=([-a-zA-Z0-9_.]+)|("|'))
532
+ end: ((?<=\));)|((?<=\});)|(;)
533
+ patterns:
534
+ - name: constant.other.key.plist
535
+ match: "[-a-zA-Z0-9_.]+"
536
+ - begin: (?<=('|"|[-a-zA-Z0-9_.]))(?!=)|\s
537
+ end: (?==)
538
+ patterns:
539
+ - include: "#openstep_stray-char"
540
+ comment: |-
541
+ Mark anything between the name and the =
542
+ as invalid.
543
+ - name: constant.other.key.plist
544
+ endCaptures:
545
+ "0":
546
+ name: punctuation.definition.string.end.plist
547
+ begin: ("|')
548
+ beginCaptures:
549
+ "0":
550
+ name: punctuation.definition.string.begin.plist
551
+ end: (\1)
552
+ patterns:
553
+ - include: "#openstep_string-contents"
554
+ - begin: (=)(?!;)
555
+ beginCaptures:
556
+ "1":
557
+ name: punctuation.separator.key-value.plist
558
+ end: (?=;)
559
+ patterns:
560
+ - include: "#openstep_post-value"
561
+ - include: "#openstep_string"
562
+ - include: "#openstep_data"
563
+ - include: "#openstep_array"
564
+ - include: "#openstep_dictionary"
565
+ openstep_array-item:
566
+ endCaptures:
567
+ "1":
568
+ name: punctuation.separator.array.plist
569
+ begin: (?={|\(|"|'|[-a-zA-Z0-9_.]|<)
570
+ end: (,)|(?=\))
571
+ patterns:
572
+ - include: "#openstep_string"
573
+ - include: "#openstep_data"
574
+ - include: "#openstep_dictionary"
575
+ - include: "#openstep_array"
576
+ - begin: (?<="|'|\}|\))
577
+ end: (?=,|\))
578
+ patterns:
579
+ - include: "#openstep_comment"
580
+ - include: "#openstep_stray-char"
581
+ comment: Catch stray chars
582
+ openstep_array:
583
+ name: meta.group.array.plist
584
+ captures:
585
+ "1":
586
+ name: punctuation.section.array.plist
587
+ begin: (\()
588
+ end: (\))
589
+ patterns:
590
+ - include: "#openstep_array-item"
591
+ - include: "#openstep_comment"
592
+ - include: "#openstep_stray-char"
593
+ 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:
610
+ - name: text.xml.plist
611
+ begin: xml|plist
612
+ end: \Z(?!\n)
613
+ comment: This gives us the proper scope for the xml or plist snippet.
614
+ - name: source.plist.binary
615
+ begin: ^bplist00
616
+ end: \Z(?!\n)
617
+ comment: This gives us the proper scope for the convert plist command.
618
+ - name: text.xml.plist
619
+ begin: (?=\s*(<\?xml|<!DOCTYPE\s*plist))
620
+ end: \Z(?!\n)
621
+ patterns:
622
+ - include: "#xml"
623
+ - name: source.plist
624
+ begin: (?=\s*({|\(|//|/\*))
625
+ end: \Z(?!\n)
626
+ patterns:
627
+ - 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