textpow 0.10.1 → 1.3.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 (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,519 @@
1
+ ---
2
+ scopeName: text.html.markdown
3
+ name: Markdown
4
+ keyEquivalent: ^~M
5
+ repository:
6
+ link-email:
7
+ name: meta.link.email.lt-gt.markdown
8
+ captures:
9
+ "1":
10
+ name: punctuation.definition.link.markdown
11
+ "2":
12
+ name: markup.underline.link.markdown
13
+ "4":
14
+ name: punctuation.definition.link.markdown
15
+ match: (<)((?:mailto:)?[-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(>)
16
+ bracket:
17
+ name: meta.other.valid-bracket.markdown
18
+ comment: "\n\
19
+ \t\t\t\tMarkdown will convert this for us. We match it so that the\n\
20
+ \t\t\t\tHTML grammar will not mark it up as invalid.\n\
21
+ \t\t\t"
22
+ match: <(?![a-z/?\$!])
23
+ list-paragraph:
24
+ patterns:
25
+ - name: meta.paragraph.list.markdown
26
+ begin: \G\s+(?=\S)
27
+ end: ^\s*$
28
+ patterns:
29
+ - include: "#inline"
30
+ - comment: Match the list punctuation
31
+ captures:
32
+ "1":
33
+ name: punctuation.definition.list_item.markdown
34
+ match: ^\s*([*+-]|[0-9]+\.)
35
+ link-ref-literal:
36
+ name: meta.link.reference.literal.markdown
37
+ captures:
38
+ "6":
39
+ name: punctuation.definition.constant.end.markdown
40
+ "1":
41
+ name: punctuation.definition.string.begin.markdown
42
+ "2":
43
+ name: string.other.link.title.markdown
44
+ "4":
45
+ name: punctuation.definition.string.end.markdown
46
+ "5":
47
+ name: punctuation.definition.constant.begin.markdown
48
+ match: (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(\])
49
+ image-inline:
50
+ name: meta.image.inline.markdown
51
+ captures:
52
+ "6":
53
+ name: punctuation.definition.metadata.markdown
54
+ "11":
55
+ name: punctuation.definition.string.markdown
56
+ "7":
57
+ name: punctuation.definition.link.markdown
58
+ "12":
59
+ name: punctuation.definition.string.markdown
60
+ "8":
61
+ name: markup.underline.link.image.markdown
62
+ "13":
63
+ name: string.other.link.description.title.markdown
64
+ "9":
65
+ name: punctuation.definition.link.markdown
66
+ "14":
67
+ name: punctuation.definition.string.markdown
68
+ "15":
69
+ name: punctuation.definition.string.markdown
70
+ "16":
71
+ name: punctuation.definition.metadata.markdown
72
+ "1":
73
+ name: punctuation.definition.string.begin.markdown
74
+ "2":
75
+ name: string.other.link.description.markdown
76
+ "3":
77
+ name: punctuation.definition.string.end.markdown
78
+ "10":
79
+ name: string.other.link.description.title.markdown
80
+ "5":
81
+ name: invalid.illegal.whitespace.markdown
82
+ match: "(?x:\n\
83
+ \t\t\t\t\\!\t\t\t\t\t\t\t# Images start with !\n\
84
+ \t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\
85
+ \t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\
86
+ \t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\
87
+ \t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\
88
+ \t\t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\
89
+ \t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
90
+ \t\t\t\t\t(?:\n\
91
+ \t\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in parens\xE2\x80\xA6\n\
92
+ \t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\
93
+ \t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
94
+ \t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
95
+ \t\t\t\t(\\))\n\
96
+ \t\t\t )"
97
+ link-inline:
98
+ name: meta.link.inline.markdown
99
+ captures:
100
+ "6":
101
+ name: punctuation.definition.metadata.markdown
102
+ "11":
103
+ name: punctuation.definition.string.begin.markdown
104
+ "7":
105
+ name: punctuation.definition.link.markdown
106
+ "12":
107
+ name: punctuation.definition.string.end.markdown
108
+ "8":
109
+ name: markup.underline.link.markdown
110
+ "13":
111
+ name: string.other.link.description.title.markdown
112
+ "9":
113
+ name: punctuation.definition.link.markdown
114
+ "14":
115
+ name: punctuation.definition.string.begin.markdown
116
+ "15":
117
+ name: punctuation.definition.string.end.markdown
118
+ "16":
119
+ name: punctuation.definition.metadata.markdown
120
+ "1":
121
+ name: punctuation.definition.string.begin.markdown
122
+ "2":
123
+ name: string.other.link.title.markdown
124
+ "4":
125
+ name: punctuation.definition.string.end.markdown
126
+ "10":
127
+ name: string.other.link.description.title.markdown
128
+ "5":
129
+ name: invalid.illegal.whitespace.markdown
130
+ match: "(?x:\n\
131
+ \t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\
132
+ \t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\
133
+ \t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\
134
+ \t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\
135
+ \t\t\t\t\t(<?)(.*?)(>?)\t\t\t# The url\n\
136
+ \t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
137
+ \t\t\t\t\t(?:\n\
138
+ \t\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in parens\xE2\x80\xA6\n\
139
+ \t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\
140
+ \t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
141
+ \t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
142
+ \t\t\t\t(\\))\n\
143
+ \t\t\t )"
144
+ inline:
145
+ patterns:
146
+ - include: "#escape"
147
+ - include: "#ampersand"
148
+ - include: "#bracket"
149
+ - include: "#raw"
150
+ - include: "#bold"
151
+ - include: "#italic"
152
+ - include: "#line-break"
153
+ - include: "#image-inline"
154
+ - include: "#link-inline"
155
+ - include: "#link-inet"
156
+ - include: "#link-email"
157
+ - include: "#image-ref"
158
+ - include: "#link-ref-literal"
159
+ - include: "#link-ref"
160
+ image-ref:
161
+ name: meta.image.reference.markdown
162
+ captures:
163
+ "6":
164
+ name: constant.other.reference.link.markdown
165
+ "7":
166
+ name: punctuation.definition.constant.markdown
167
+ "1":
168
+ name: punctuation.definition.string.begin.markdown
169
+ "2":
170
+ name: string.other.link.description.markdown
171
+ "4":
172
+ name: punctuation.definition.string.begin.markdown
173
+ "5":
174
+ name: punctuation.definition.constant.markdown
175
+ match: \!(\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(.*?)(\])
176
+ escape:
177
+ name: constant.character.escape.markdown
178
+ match: \\[-`*_#+.!(){}\[\]\\>]
179
+ block_quote:
180
+ name: markup.quote.markdown
181
+ comment: "\n\
182
+ \t\t\t\tWe terminate the block quote when seeing an empty line, a\n\
183
+ \t\t\t\tseparator or a line with leading > characters. The latter is\n\
184
+ \t\t\t\tto \xE2\x80\x9Creset\xE2\x80\x9D the quote level for quoted lines.\n\
185
+ \t\t\t"
186
+ begin: \G[ ]{,3}(>)(?!$)[ ]?
187
+ beginCaptures:
188
+ "1":
189
+ name: punctuation.definition.blockquote.markdown
190
+ end: |-
191
+ (?x)^
192
+ (?= \s*$
193
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
194
+ | [ ]{,3}>.
195
+ )
196
+ patterns:
197
+ - begin: !binary |
198
+ KD94KVxHCgkJCQkJCSg/PQlbIF17LDN9Pi4KCQkJCQkJKQ==
199
+
200
+ end: ^
201
+ patterns:
202
+ - include: "#block_quote"
203
+ - begin: |-
204
+ (?x)\G
205
+ (?= ([ ]{4}|\t)
206
+ | [#]{1,6}\s*+
207
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
208
+ )
209
+ applyEndPatternLast: 1
210
+ end: ^
211
+ patterns:
212
+ - include: "#block_raw"
213
+ - include: "#heading"
214
+ - include: "#separator"
215
+ - begin: |-
216
+ (?x)\G
217
+ (?! $
218
+ | [ ]{,3}>.
219
+ | ([ ]{4}|\t)
220
+ | [#]{1,6}\s*+
221
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
222
+ )
223
+ end: $|(?<=\n)
224
+ patterns:
225
+ - include: "#inline"
226
+ link-ref:
227
+ name: meta.link.reference.markdown
228
+ captures:
229
+ "6":
230
+ name: constant.other.reference.link.markdown
231
+ "7":
232
+ name: punctuation.definition.constant.end.markdown
233
+ "1":
234
+ name: punctuation.definition.string.begin.markdown
235
+ "2":
236
+ name: string.other.link.title.markdown
237
+ "4":
238
+ name: punctuation.definition.string.end.markdown
239
+ "5":
240
+ name: punctuation.definition.constant.begin.markdown
241
+ match: (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)([^\]]*+)(\])
242
+ block_raw:
243
+ name: markup.raw.block.markdown
244
+ match: \G([ ]{4}|\t).*$\n?
245
+ bold:
246
+ name: markup.bold.markdown
247
+ begin: !binary |
248
+ KD94KQoJCQkJCQkoXCpcKnxfXykoPz1cUykJCQkJCQkJCSMgT3BlbgoJCQkJ
249
+ CQkoPz0KCQkJCQkJCSgKCQkJCQkJCSAgICA8W14+XSorPgkJCQkJCQkjIEhU
250
+ TUwgdGFncwoJCQkJCQkJICB8ICg/PHJhdz5gKykoW15gXXwoPyEoPzwhYClc
251
+ azxyYXc+KD8hYCkpYCkqK1xrPHJhdz4KCQkJCQkJCQkJCQkJCQkJCQkjIFJh
252
+ dwoJCQkJCQkJICB8IFxcW1xcYCpfe31cW1xdKCkjLiErXC0+XT8rCQkJIyBF
253
+ c2NhcGVzCgkJCQkJCQkgIHwgXFsKCQkJCQkJCQkoCQkJCQoJCQkJCQkJCSAg
254
+ ICAgICAgKD88c3F1YXJlPgkJCQkJIyBOYW1lZCBncm91cAoJCQkJCQkJCQkJ
255
+ CVteXFtcXVxcXQkJCQkjIE1hdGNoIG1vc3QgY2hhcnMKCQkJCQkJCQkgICAg
256
+ ICAgICAgfCBcXC4JCQkJCQkjIEVzY2FwZWQgY2hhcnMKCQkJCQkJCQkgICAg
257
+ ICAgICAgfCBcWyBcZzxzcXVhcmU+KisgXF0JCSMgTmVzdGVkIGJyYWNrZXRz
258
+ CgkJCQkJCQkJICAgICAgICApKisKCQkJCQkJCQkJXF0KCQkJCQkJCQkJKAoJ
259
+ CQkJCQkJCQkJKAkJCQkJCQkjIFJlZmVyZW5jZSBMaW5rCgkJCQkJCQkJCQkJ
260
+ WyBdPwkJCQkJIyBPcHRpb25hbCBzcGFjZQoJCQkJCQkJCQkJCVxbW15cXV0q
261
+ K1xdCQkJCSMgUmVmIG5hbWUKCQkJCQkJCQkJCSkKCQkJCQkJCQkJICB8ICgJ
262
+ CQkJCQkJIyBJbmxpbmUgTGluawoJCQkJCQkJCQkJCVwoCQkJCQkJIyBPcGVu
263
+ aW5nIHBhcmVuCgkJCQkJCQkJCQkJCVsgXHRdKisJCQkJIyBPcHRpb25hbCB3
264
+ aHRpZXNwYWNlCgkJCQkJCQkJCQkJCTw/KC4qPyk+PwkJCSMgVVJMCgkJCQkJ
265
+ CQkJCQkJCVsgXHRdKisJCQkJIyBPcHRpb25hbCB3aHRpZXNwYWNlCgkJCQkJ
266
+ CQkJCQkJCSgJCQkJCSMgT3B0aW9uYWwgVGl0bGUKCQkJCQkJCQkJCQkJCSg/
267
+ PHRpdGxlPlsnIl0pCgkJCQkJCQkJCQkJCQkoLio/KQoJCQkJCQkJCQkJCQkJ
268
+ XGs8dGl0bGU+CgkJCQkJCQkJCQkJCSk/CgkJCQkJCQkJCQkJXCkKCQkJCQkJ
269
+ CQkJCSkKCQkJCQkJCQkJKQoJCQkJCQkJCSkKCQkJCQkJCSAgfCAoPyEoPzw9
270
+ XFMpXDEpLgkJCQkJCSMgRXZlcnl0aGluZyBiZXNpZGVzCgkJCQkJCQkJCQkJ
271
+ CQkJCQkJIyBzdHlsZSBjbG9zZXIKCQkJCQkJCSkrKwoJCQkJCQkJKD88PVxT
272
+ KVwxCQkJCQkJCQkjIENsb3NlCgkJCQkJCSkKCQkJCQk=
273
+
274
+ captures:
275
+ "1":
276
+ name: punctuation.definition.bold.markdown
277
+ end: (?<=\S)(\1)
278
+ patterns:
279
+ - begin: (?=<[^>]*?>)
280
+ applyEndPatternLast: 1
281
+ end: (?<=>)
282
+ patterns:
283
+ - include: text.html.basic
284
+ - include: "#escape"
285
+ - include: "#ampersand"
286
+ - include: "#bracket"
287
+ - include: "#raw"
288
+ - include: "#italic"
289
+ - include: "#image-inline"
290
+ - include: "#link-inline"
291
+ - include: "#link-inet"
292
+ - include: "#link-email"
293
+ - include: "#image-ref"
294
+ - include: "#link-ref-literal"
295
+ - include: "#link-ref"
296
+ heading:
297
+ name: markup.heading.markdown
298
+ begin: \G(#{1,6})(?!#)\s*(?=\S)
299
+ captures:
300
+ "1":
301
+ name: punctuation.definition.heading.markdown
302
+ end: \s*(#*)$\n?
303
+ contentName: entity.name.section.markdown
304
+ patterns:
305
+ - include: "#inline"
306
+ separator:
307
+ name: meta.separator.markdown
308
+ match: \G[ ]{,3}([-*_])([ ]{,2}\1){2,}[ \t]*$\n?
309
+ italic:
310
+ name: markup.italic.markdown
311
+ begin: !binary |
312
+ KD94KQoJCQkJCQkoXCp8XykoPz1cUykJCQkJCQkJCSMgT3BlbgoJCQkJCQko
313
+ Pz0KCQkJCQkJCSgKCQkJCQkJCSAgICA8W14+XSorPgkJCQkJCQkjIEhUTUwg
314
+ dGFncwoJCQkJCQkJICB8ICg/PHJhdz5gKykoW15gXXwoPyEoPzwhYClcazxy
315
+ YXc+KD8hYCkpYCkqK1xrPHJhdz4KCQkJCQkJCQkJCQkJCQkJCQkjIFJhdwoJ
316
+ CQkJCQkJICB8IFxcW1xcYCpfe31cW1xdKCkjLiErXC0+XT8rCQkJIyBFc2Nh
317
+ cGVzCgkJCQkJCQkgIHwgXFsKCQkJCQkJCQkoCQkJCQoJCQkJCQkJCSAgICAg
318
+ ICAgKD88c3F1YXJlPgkJCQkJIyBOYW1lZCBncm91cAoJCQkJCQkJCQkJCVte
319
+ XFtcXVxcXQkJCQkjIE1hdGNoIG1vc3QgY2hhcnMKCQkJCQkJCQkgICAgICAg
320
+ ICAgfCBcXC4JCQkJCQkjIEVzY2FwZWQgY2hhcnMKCQkJCQkJCQkgICAgICAg
321
+ ICAgfCBcWyBcZzxzcXVhcmU+KisgXF0JCSMgTmVzdGVkIGJyYWNrZXRzCgkJ
322
+ CQkJCQkJICAgICAgICApKisKCQkJCQkJCQkJXF0KCQkJCQkJCQkJKAoJCQkJ
323
+ CQkJCQkJKAkJCQkJCQkjIFJlZmVyZW5jZSBMaW5rCgkJCQkJCQkJCQkJWyBd
324
+ PwkJCQkJIyBPcHRpb25hbCBzcGFjZQoJCQkJCQkJCQkJCVxbW15cXV0qK1xd
325
+ CQkJCSMgUmVmIG5hbWUKCQkJCQkJCQkJCSkKCQkJCQkJCQkJICB8ICgJCQkJ
326
+ CQkJIyBJbmxpbmUgTGluawoJCQkJCQkJCQkJCVwoCQkJCQkJIyBPcGVuaW5n
327
+ IHBhcmVuCgkJCQkJCQkJCQkJCVsgXHRdKisJCQkJIyBPcHRpb25hbCB3aHRp
328
+ ZXNwYWNlCgkJCQkJCQkJCQkJCTw/KC4qPyk+PwkJCSMgVVJMCgkJCQkJCQkJ
329
+ CQkJCVsgXHRdKisJCQkJIyBPcHRpb25hbCB3aHRpZXNwYWNlCgkJCQkJCQkJ
330
+ CQkJCSgJCQkJCSMgT3B0aW9uYWwgVGl0bGUKCQkJCQkJCQkJCQkJCSg/PHRp
331
+ dGxlPlsnIl0pCgkJCQkJCQkJCQkJCQkoLio/KQoJCQkJCQkJCQkJCQkJXGs8
332
+ dGl0bGU+CgkJCQkJCQkJCQkJCSk/CgkJCQkJCQkJCQkJXCkKCQkJCQkJCQkJ
333
+ CSkKCQkJCQkJCQkJKQoJCQkJCQkJCSkKCQkJCQkJCSAgfCBcMVwxCQkJCQkJ
334
+ CQkjIE11c3QgYmUgYm9sZCBjbG9zZXIKCQkJCQkJCSAgfCAoPyEoPzw9XFMp
335
+ XDEpLgkJCQkJCSMgRXZlcnl0aGluZyBiZXNpZGVzCgkJCQkJCQkJCQkJCQkJ
336
+ CQkJIyBzdHlsZSBjbG9zZXIKCQkJCQkJCSkrKwoJCQkJCQkJKD88PVxTKVwx
337
+ CQkJCQkJCQkjIENsb3NlCgkJCQkJCSkKCQkJCQk=
338
+
339
+ captures:
340
+ "1":
341
+ name: punctuation.definition.italic.markdown
342
+ end: (?<=\S)(\1)((?!\1)|(?=\1\1))
343
+ patterns:
344
+ - begin: (?=<[^>]*?>)
345
+ applyEndPatternLast: 1
346
+ end: (?<=>)
347
+ patterns:
348
+ - include: text.html.basic
349
+ - include: "#escape"
350
+ - include: "#ampersand"
351
+ - include: "#bracket"
352
+ - include: "#raw"
353
+ - include: "#bold"
354
+ - include: "#image-inline"
355
+ - include: "#link-inline"
356
+ - include: "#link-inet"
357
+ - include: "#link-email"
358
+ - include: "#image-ref"
359
+ - include: "#link-ref-literal"
360
+ - include: "#link-ref"
361
+ raw:
362
+ name: markup.raw.inline.markdown
363
+ captures:
364
+ "1":
365
+ name: punctuation.definition.raw.markdown
366
+ "3":
367
+ name: punctuation.definition.raw.markdown
368
+ match: (`+)([^`]|(?!(?<!`)\1(?!`))`)*+(\1)
369
+ link-inet:
370
+ name: meta.link.inet.markdown
371
+ captures:
372
+ "1":
373
+ name: punctuation.definition.link.markdown
374
+ "2":
375
+ name: markup.underline.link.markdown
376
+ "3":
377
+ name: punctuation.definition.link.markdown
378
+ match: (<)((?:https?|ftp)://.*?)(>)
379
+ line-break:
380
+ name: meta.dummy.line-break
381
+ match: " {2,}$"
382
+ ampersand:
383
+ name: meta.other.valid-ampersand.markdown
384
+ comment: "\n\
385
+ \t\t\t\tMarkdown will convert this for us. We match it so that the\n\
386
+ \t\t\t\tHTML grammar will not mark it up as invalid.\n\
387
+ \t\t\t"
388
+ match: "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)"
389
+ uuid: 0A1D9874-B448-11D9-BD50-000D93B6E43C
390
+ patterns:
391
+ - name: meta.block-level.markdown
392
+ comment: "\n\
393
+ \t\t\t\tWe could also use an empty end match and set\n\
394
+ \t\t\t\tapplyEndPatternLast, but then we must be sure that the begin\n\
395
+ \t\t\t\tpattern will only match stuff matched by the sub-patterns.\n\
396
+ \t\t\t"
397
+ begin: |-
398
+ (?x)^
399
+ (?= [ ]{,3}>.
400
+ | ([ ]{4}|\t)(?!$)
401
+ | [#]{1,6}\s*+
402
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
403
+ )
404
+ end: |-
405
+ (?x)^
406
+ (?! [ ]{,3}>.
407
+ | ([ ]{4}|\t)
408
+ | [#]{1,6}\s*+
409
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
410
+ )
411
+ patterns:
412
+ - include: "#block_quote"
413
+ - include: "#block_raw"
414
+ - include: "#heading"
415
+ - include: "#separator"
416
+ - name: markup.list.unnumbered.markdown
417
+ begin: ^[ ]{0,3}([*+-])(?=\s)
418
+ captures:
419
+ "1":
420
+ name: punctuation.definition.list_item.markdown
421
+ end: ^(?=\S)
422
+ patterns:
423
+ - include: "#list-paragraph"
424
+ - name: markup.list.numbered.markdown
425
+ begin: ^[ ]{0,3}([0-9]+\.)(?=\s)
426
+ captures:
427
+ "1":
428
+ name: punctuation.definition.list_item.markdown
429
+ end: ^(?=\S)
430
+ patterns:
431
+ - include: "#list-paragraph"
432
+ - name: meta.disable-markdown
433
+ comment: "\n\
434
+ \t\t\t\tMarkdown formatting is disabled inside block-level tags.\n\
435
+ \t\t\t"
436
+ begin: ^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b)(?!.*?</\1>)
437
+ end: (?<=^</\1>$\n)
438
+ patterns:
439
+ - include: text.html.basic
440
+ - name: meta.disable-markdown
441
+ comment: Same rule but for one line disables.
442
+ begin: ^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b)
443
+ end: $\n?
444
+ patterns:
445
+ - include: text.html.basic
446
+ - name: meta.link.reference.def.markdown
447
+ captures:
448
+ "6":
449
+ name: markup.underline.link.markdown
450
+ "11":
451
+ name: string.other.link.description.title.markdown
452
+ "7":
453
+ name: punctuation.definition.link.markdown
454
+ "12":
455
+ name: punctuation.definition.string.begin.markdown
456
+ "8":
457
+ name: string.other.link.description.title.markdown
458
+ "13":
459
+ name: punctuation.definition.string.end.markdown
460
+ "9":
461
+ name: punctuation.definition.string.begin.markdown
462
+ "1":
463
+ name: punctuation.definition.constant.markdown
464
+ "2":
465
+ name: constant.other.reference.link.markdown
466
+ "3":
467
+ name: punctuation.definition.constant.markdown
468
+ "4":
469
+ name: punctuation.separator.key-value.markdown
470
+ "10":
471
+ name: punctuation.definition.string.end.markdown
472
+ "5":
473
+ name: punctuation.definition.link.markdown
474
+ match: "(?x:\n\
475
+ \t\t\t\t\\s*\t\t\t\t\t\t# Leading whitespace\n\
476
+ \t\t\t\t(\\[)(.+?)(\\])(:)\t\t# Reference name\n\
477
+ \t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
478
+ \t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\
479
+ \t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
480
+ \t\t\t\t(?:\n\
481
+ \t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in quotes\xE2\x80\xA6\n\
482
+ \t\t\t\t\t| ((\").+?(\"))\t\t# or in parens.\n\
483
+ \t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
484
+ \t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
485
+ \t\t\t\t$\n\
486
+ \t\t\t)"
487
+ - name: meta.paragraph.markdown
488
+ begin: ^(?=\S)(?![=-]{3,}(?=$))
489
+ end: ^(?:\s*$|(?=[ ]{,3}>.))|(?=[ \t]*\n)(?<=^===|^====|=====|^---|^----|-----)[ \t]*\n|(?=^#)
490
+ patterns:
491
+ - include: "#inline"
492
+ - include: text.html.basic
493
+ - name: markup.heading.1.markdown
494
+ captures:
495
+ "1":
496
+ name: punctuation.definition.heading.markdown
497
+ match: ^(={3,})(?=[ \t]*$)
498
+ - name: markup.heading.2.markdown
499
+ captures:
500
+ "1":
501
+ name: punctuation.definition.heading.markdown
502
+ match: ^(-{3,})(?=[ \t]*$)
503
+ foldingStartMarker: |-
504
+ (?x)
505
+ (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?>
506
+ |<!--(?!.*-->)
507
+ |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
508
+ )
509
+ foldingStopMarker: |-
510
+ (?x)
511
+ (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>
512
+ |^\s*-->
513
+ |(^|\s)\}
514
+ )
515
+ fileTypes:
516
+ - mdown
517
+ - markdown
518
+ - markdn
519
+ - md