ultraviolet1x 0.12.1

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 (246) hide show
  1. data/.gitignore +2 -0
  2. data/Gemfile +8 -0
  3. data/Gemfile.lock +16 -0
  4. data/History.txt +25 -0
  5. data/README.rdoc +29 -0
  6. data/README.txt +52 -0
  7. data/Rakefile +11 -0
  8. data/bin/theme2latexrender +122 -0
  9. data/bin/theme2xhtmlrender +156 -0
  10. data/bin/uv +140 -0
  11. data/broken_syntax/markdown.syntax +543 -0
  12. data/broken_syntax/php.syntax +1253 -0
  13. data/lib/uv/render_processor.rb +140 -0
  14. data/lib/uv/utility.rb +67 -0
  15. data/lib/uv/version.rb +3 -0
  16. data/lib/uv.rb +95 -0
  17. data/mm/manual.mm +840 -0
  18. data/render/latex/active4d.render +132 -0
  19. data/render/latex/all_hallows_eve.render +96 -0
  20. data/render/latex/amy.render +171 -0
  21. data/render/latex/blackboard.render +111 -0
  22. data/render/latex/brilliance_black.render +552 -0
  23. data/render/latex/brilliance_dull.render +561 -0
  24. data/render/latex/cobalt.render +162 -0
  25. data/render/latex/dawn.render +126 -0
  26. data/render/latex/eiffel.render +132 -0
  27. data/render/latex/espresso_libre.render +123 -0
  28. data/render/latex/idle.render +93 -0
  29. data/render/latex/iplastic.render +99 -0
  30. data/render/latex/lazy.render +96 -0
  31. data/render/latex/mac_classic.render +135 -0
  32. data/render/latex/magicwb_amiga.render +117 -0
  33. data/render/latex/pastels_on_dark.render +204 -0
  34. data/render/latex/slush_poppies.render +123 -0
  35. data/render/latex/spacecadet.render +81 -0
  36. data/render/latex/sunburst.render +186 -0
  37. data/render/latex/twilight.render +153 -0
  38. data/render/latex/zenburnesque.render +126 -0
  39. data/render/old/txt2tags.render +131 -0
  40. data/render/xhtml/active4d.render +140 -0
  41. data/render/xhtml/all_hallows_eve.render +104 -0
  42. data/render/xhtml/amy.render +179 -0
  43. data/render/xhtml/blackboard.render +119 -0
  44. data/render/xhtml/brilliance_black.render +560 -0
  45. data/render/xhtml/brilliance_dull.render +569 -0
  46. data/render/xhtml/cobalt.render +170 -0
  47. data/render/xhtml/dawn.render +134 -0
  48. data/render/xhtml/eiffel.render +140 -0
  49. data/render/xhtml/espresso_libre.render +131 -0
  50. data/render/xhtml/files/css/active4d.css +114 -0
  51. data/render/xhtml/files/css/all_hallows_eve.css +72 -0
  52. data/render/xhtml/files/css/amy.css +147 -0
  53. data/render/xhtml/files/css/blackboard.css +88 -0
  54. data/render/xhtml/files/css/brilliance_black.css +605 -0
  55. data/render/xhtml/files/css/brilliance_dull.css +599 -0
  56. data/render/xhtml/files/css/cobalt.css +149 -0
  57. data/render/xhtml/files/css/dawn.css +121 -0
  58. data/render/xhtml/files/css/eiffel.css +121 -0
  59. data/render/xhtml/files/css/espresso_libre.css +109 -0
  60. data/render/xhtml/files/css/idle.css +62 -0
  61. data/render/xhtml/files/css/iplastic.css +80 -0
  62. data/render/xhtml/files/css/lazy.css +73 -0
  63. data/render/xhtml/files/css/mac_classic.css +123 -0
  64. data/render/xhtml/files/css/magicwb_amiga.css +104 -0
  65. data/render/xhtml/files/css/pastels_on_dark.css +188 -0
  66. data/render/xhtml/files/css/slush_poppies.css +85 -0
  67. data/render/xhtml/files/css/spacecadet.css +51 -0
  68. data/render/xhtml/files/css/sunburst.css +180 -0
  69. data/render/xhtml/files/css/twilight.css +137 -0
  70. data/render/xhtml/files/css/zenburnesque.css +91 -0
  71. data/render/xhtml/idle.render +101 -0
  72. data/render/xhtml/iplastic.render +107 -0
  73. data/render/xhtml/lazy.render +104 -0
  74. data/render/xhtml/mac_classic.render +143 -0
  75. data/render/xhtml/magicwb_amiga.render +125 -0
  76. data/render/xhtml/pastels_on_dark.render +212 -0
  77. data/render/xhtml/slush_poppies.render +131 -0
  78. data/render/xhtml/spacecadet.render +89 -0
  79. data/render/xhtml/sunburst.render +194 -0
  80. data/render/xhtml/twilight.render +161 -0
  81. data/render/xhtml/zenburnesque.render +134 -0
  82. data/syntax/actionscript.syntax +97 -0
  83. data/syntax/active4d.syntax +276 -0
  84. data/syntax/active4d_html.syntax +311 -0
  85. data/syntax/active4d_ini.syntax +50 -0
  86. data/syntax/active4d_library.syntax +21 -0
  87. data/syntax/ada.syntax +33 -0
  88. data/syntax/antlr.syntax +151 -0
  89. data/syntax/apache.syntax +191 -0
  90. data/syntax/applescript.syntax +384 -0
  91. data/syntax/asp.syntax +70 -0
  92. data/syntax/asp_vb.net.syntax +129 -0
  93. data/syntax/bibtex.syntax +151 -0
  94. data/syntax/blog_html.syntax +41 -0
  95. data/syntax/blog_markdown.syntax +42 -0
  96. data/syntax/blog_text.syntax +27 -0
  97. data/syntax/blog_textile.syntax +27 -0
  98. data/syntax/buggy/nemerle.syntax +74 -0
  99. data/syntax/build.syntax +53 -0
  100. data/syntax/bulletin_board.syntax +287 -0
  101. data/syntax/c++.syntax +186 -0
  102. data/syntax/c.syntax +414 -0
  103. data/syntax/cake.syntax +55 -0
  104. data/syntax/camlp4.syntax +36 -0
  105. data/syntax/cm.syntax +32 -0
  106. data/syntax/coffeescript.syntax +216 -0
  107. data/syntax/coldfusion.syntax +119 -0
  108. data/syntax/context_free.syntax +176 -0
  109. data/syntax/cs.syntax +59 -0
  110. data/syntax/css.syntax +195 -0
  111. data/syntax/css_experimental.syntax +1925 -0
  112. data/syntax/csv.syntax +68 -0
  113. data/syntax/d.syntax +142 -0
  114. data/syntax/diff.syntax +81 -0
  115. data/syntax/dokuwiki.syntax +204 -0
  116. data/syntax/dot.syntax +47 -0
  117. data/syntax/doxygen.syntax +43 -0
  118. data/syntax/dylan.syntax +62 -0
  119. data/syntax/eiffel.syntax +78 -0
  120. data/syntax/erlang.syntax +922 -0
  121. data/syntax/f-script.syntax +80 -0
  122. data/syntax/fortran.syntax +141 -0
  123. data/syntax/fxscript.syntax +142 -0
  124. data/syntax/greasemonkey.syntax +34 -0
  125. data/syntax/gri.syntax +83 -0
  126. data/syntax/groovy.syntax +191 -0
  127. data/syntax/gtd.syntax +22 -0
  128. data/syntax/gtdalt.syntax +143 -0
  129. data/syntax/haml.syntax +88 -0
  130. data/syntax/haskell.syntax +88 -0
  131. data/syntax/html-asp.syntax +27 -0
  132. data/syntax/html.syntax +362 -0
  133. data/syntax/html_django.syntax +36 -0
  134. data/syntax/html_for_asp.net.syntax +424 -0
  135. data/syntax/html_mason.syntax +119 -0
  136. data/syntax/html_rails.syntax +40 -0
  137. data/syntax/html_tcl.syntax +26 -0
  138. data/syntax/icalendar.syntax +32 -0
  139. data/syntax/inform.syntax +48 -0
  140. data/syntax/ini.syntax +55 -0
  141. data/syntax/installer_distribution_script.syntax +77 -0
  142. data/syntax/io.syntax +81 -0
  143. data/syntax/java.syntax +211 -0
  144. data/syntax/javaproperties.syntax +20 -0
  145. data/syntax/javascript.syntax +256 -0
  146. data/syntax/javascript_+_prototype.syntax +72 -0
  147. data/syntax/javascript_+_prototype_bracketed.syntax +140 -0
  148. data/syntax/jquery_javascript.syntax +114 -0
  149. data/syntax/json.syntax +136 -0
  150. data/syntax/languagedefinition.syntax +708 -0
  151. data/syntax/latex.syntax +566 -0
  152. data/syntax/latex_beamer.syntax +41 -0
  153. data/syntax/latex_log.syntax +50 -0
  154. data/syntax/latex_memoir.syntax +64 -0
  155. data/syntax/lexflex.syntax +219 -0
  156. data/syntax/lighttpd.syntax +54 -0
  157. data/syntax/lilypond.syntax +492 -0
  158. data/syntax/lisp.syntax +61 -0
  159. data/syntax/literate_haskell.syntax +24 -0
  160. data/syntax/logo.syntax +29 -0
  161. data/syntax/logtalk.syntax +152 -0
  162. data/syntax/lua.syntax +86 -0
  163. data/syntax/m.syntax +142 -0
  164. data/syntax/macports_portfile.syntax +163 -0
  165. data/syntax/mail.syntax +118 -0
  166. data/syntax/makefile.syntax +36 -0
  167. data/syntax/man.syntax +17 -0
  168. data/syntax/mediawiki.syntax +567 -0
  169. data/syntax/mel.syntax +92 -0
  170. data/syntax/mips.syntax +66 -0
  171. data/syntax/mod_perl.syntax +50 -0
  172. data/syntax/modula-3.syntax +47 -0
  173. data/syntax/moinmoin.syntax +189 -0
  174. data/syntax/mootools.syntax +572 -0
  175. data/syntax/movable_type.syntax +162 -0
  176. data/syntax/multimarkdown.syntax +39 -0
  177. data/syntax/objective-c++.syntax +18 -0
  178. data/syntax/objective-c.syntax +233 -0
  179. data/syntax/ocaml.syntax +764 -0
  180. data/syntax/ocamllex.syntax +167 -0
  181. data/syntax/ocamlyacc.syntax +184 -0
  182. data/syntax/old/YAML.yaml +160 -0
  183. data/syntax/old/txt2tags.yaml +139 -0
  184. data/syntax/opengl.syntax +14 -0
  185. data/syntax/pascal.syntax +77 -0
  186. data/syntax/perl.syntax +1115 -0
  187. data/syntax/plain_text.syntax +32 -0
  188. data/syntax/pmwiki.syntax +113 -0
  189. data/syntax/postscript.syntax +114 -0
  190. data/syntax/processing.syntax +106 -0
  191. data/syntax/prolog.syntax +40 -0
  192. data/syntax/property_list.syntax +635 -0
  193. data/syntax/python.syntax +868 -0
  194. data/syntax/python_django.syntax +21 -0
  195. data/syntax/qmake_project.syntax +114 -0
  196. data/syntax/qt_c++.syntax +26 -0
  197. data/syntax/quake3_config.syntax +32 -0
  198. data/syntax/r.syntax +81 -0
  199. data/syntax/r_console.syntax +16 -0
  200. data/syntax/ragel.syntax +201 -0
  201. data/syntax/rd_r_documentation.syntax +91 -0
  202. data/syntax/regexp.syntax +50 -0
  203. data/syntax/regular_expressions_oniguruma.syntax +107 -0
  204. data/syntax/regular_expressions_python.syntax +109 -0
  205. data/syntax/release_notes.syntax +46 -0
  206. data/syntax/remind.syntax +253 -0
  207. data/syntax/restructuredtext.syntax +250 -0
  208. data/syntax/rez.syntax +80 -0
  209. data/syntax/ruby.syntax +1035 -0
  210. data/syntax/ruby_experimental.syntax +145 -0
  211. data/syntax/ruby_on_rails.syntax +88 -0
  212. data/syntax/s5.syntax +69 -0
  213. data/syntax/sass.syntax +45 -0
  214. data/syntax/scheme.syntax +347 -0
  215. data/syntax/scilab.syntax +41 -0
  216. data/syntax/setext.syntax +147 -0
  217. data/syntax/shell-unix-generic.syntax +384 -0
  218. data/syntax/slate.syntax +149 -0
  219. data/syntax/smarty.syntax +63 -0
  220. data/syntax/sql.syntax +237 -0
  221. data/syntax/sql_rails.syntax +18 -0
  222. data/syntax/ssh-config.syntax +33 -0
  223. data/syntax/standard_ml.syntax +121 -0
  224. data/syntax/strings_file.syntax +39 -0
  225. data/syntax/subversion_commit_message.syntax +36 -0
  226. data/syntax/sweave.syntax +84 -0
  227. data/syntax/swig.syntax +57 -0
  228. data/syntax/tcl.syntax +152 -0
  229. data/syntax/template_toolkit.syntax +121 -0
  230. data/syntax/tex.syntax +86 -0
  231. data/syntax/tex_math.syntax +49 -0
  232. data/syntax/textile.syntax +215 -0
  233. data/syntax/tsv.syntax +50 -0
  234. data/syntax/twiki.syntax +241 -0
  235. data/syntax/txt2tags.syntax +79 -0
  236. data/syntax/vectorscript.syntax +57 -0
  237. data/syntax/xhtml_1.0.syntax +4027 -0
  238. data/syntax/xml.syntax +180 -0
  239. data/syntax/xml_strict.syntax +92 -0
  240. data/syntax/xsl.syntax +60 -0
  241. data/syntax/yaml.syntax +160 -0
  242. data/syntax/yui_javascript.syntax +176 -0
  243. data/test/ultraviolet_test.rb +17 -0
  244. data/test/uv_test.rb +0 -0
  245. data/ultraviolet1x.gemspec +22 -0
  246. metadata +333 -0
@@ -0,0 +1,543 @@
1
+ ---
2
+ name: Markdown
3
+ fileTypes:
4
+ - markdown
5
+ - mdown
6
+ - markdn
7
+ - md
8
+ scopeName: text.html.markdown
9
+ repository:
10
+ image-inline:
11
+ name: meta.image.inline.markdown
12
+ captures:
13
+ "6":
14
+ name: punctuation.definition.metadata.markdown
15
+ "11":
16
+ name: punctuation.definition.string.markdown
17
+ "7":
18
+ name: punctuation.definition.link.markdown
19
+ "12":
20
+ name: punctuation.definition.string.markdown
21
+ "8":
22
+ name: markup.underline.link.image.markdown
23
+ "13":
24
+ name: string.other.link.description.title.markdown
25
+ "9":
26
+ name: punctuation.definition.link.markdown
27
+ "14":
28
+ name: punctuation.definition.string.markdown
29
+ "15":
30
+ name: punctuation.definition.string.markdown
31
+ "16":
32
+ name: punctuation.definition.metadata.markdown
33
+ "1":
34
+ name: punctuation.definition.string.begin.markdown
35
+ "2":
36
+ name: string.other.link.description.markdown
37
+ "3":
38
+ name: punctuation.definition.string.end.markdown
39
+ "10":
40
+ name: string.other.link.description.title.markdown
41
+ "5":
42
+ name: invalid.illegal.whitespace.markdown
43
+ match: "(?x:\n\
44
+ \t\t\t\t\\!\t\t\t\t\t\t\t# Images start with !\n\
45
+ \t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\
46
+ \t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\
47
+ \t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\
48
+ \t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\
49
+ \t\t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\
50
+ \t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
51
+ \t\t\t\t\t(?:\n\
52
+ \t\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in parens\xE2\x80\xA6\n\
53
+ \t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\
54
+ \t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
55
+ \t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
56
+ \t\t\t\t(\\))\n\
57
+ \t\t\t )"
58
+ image-ref:
59
+ name: meta.image.reference.markdown
60
+ captures:
61
+ "6":
62
+ name: constant.other.reference.link.markdown
63
+ "7":
64
+ name: punctuation.definition.constant.markdown
65
+ "1":
66
+ name: punctuation.definition.string.begin.markdown
67
+ "2":
68
+ name: string.other.link.description.markdown
69
+ "4":
70
+ name: punctuation.definition.string.begin.markdown
71
+ "5":
72
+ name: punctuation.definition.constant.markdown
73
+ match: \!(\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(.*?)(\])
74
+ escape:
75
+ name: constant.character.escape.markdown
76
+ match: \\[-`*_#+.!(){}\[\]\\>]
77
+ bracket:
78
+ name: meta.other.valid-bracket.markdown
79
+ match: <(?![a-z/?\$!])
80
+ comment: "\n\
81
+ \t\t\t\tMarkdown will convert this for us. We match it so that the\n\
82
+ \t\t\t\tHTML grammar will not mark it up as invalid.\n\
83
+ \t\t\t"
84
+ list-paragraph:
85
+ patterns:
86
+ - name: meta.paragraph.list.markdown
87
+ begin: \G\s+(?=\S)
88
+ end: ^\s*$
89
+ patterns:
90
+ - include: "#inline"
91
+ link-ref-literal:
92
+ name: meta.link.reference.literal.markdown
93
+ captures:
94
+ "6":
95
+ name: punctuation.definition.constant.end.markdown
96
+ "1":
97
+ name: punctuation.definition.string.begin.markdown
98
+ "2":
99
+ name: string.other.link.title.markdown
100
+ "4":
101
+ name: punctuation.definition.string.end.markdown
102
+ "5":
103
+ name: punctuation.definition.constant.begin.markdown
104
+ match: (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(\])
105
+ link-email:
106
+ name: meta.link.email.lt-gt.markdown
107
+ captures:
108
+ "1":
109
+ name: punctuation.definition.link.markdown
110
+ "2":
111
+ name: markup.underline.link.markdown
112
+ "4":
113
+ name: punctuation.definition.link.markdown
114
+ match: (<)((?:mailto:)?[-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(>)
115
+ inline:
116
+ patterns:
117
+ - include: "#escape"
118
+ - include: "#ampersand"
119
+ - include: "#bracket"
120
+ - include: "#raw"
121
+ - include: "#bold"
122
+ - include: "#italic"
123
+ - include: "#line-break"
124
+ - include: "#image-inline"
125
+ - include: "#link-inline"
126
+ - include: "#link-inet"
127
+ - include: "#link-email"
128
+ - include: "#image-ref"
129
+ - include: "#link-ref-literal"
130
+ - include: "#link-ref"
131
+ block_quote:
132
+ name: markup.quote.markdown
133
+ begin: \G[ ]{,3}(>)(?!$)[ ]?
134
+ beginCaptures:
135
+ "1":
136
+ name: punctuation.definition.blockquote.markdown
137
+ end: |-
138
+ (?x)^
139
+ (?= \s*$
140
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\g<marker>){2,}[ \t]*+$
141
+ | [ ]{,3}>.
142
+ )
143
+ patterns:
144
+ - begin: |-
145
+ (?x)\G
146
+ (?= [ ]{,3}>.
147
+ )
148
+ end: ^
149
+ patterns:
150
+ - include: "#block_quote"
151
+ - begin: |-
152
+ (?x)\G
153
+ (?= ([ ]{4}|\t)
154
+ | [#]{1,6}\s*+
155
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\g<marker>){2,}[ \t]*+$
156
+ )
157
+ applyEndPatternLast: 1
158
+ end: ^
159
+ patterns:
160
+ - include: "#block_raw"
161
+ - include: "#heading"
162
+ - include: "#separator"
163
+ - begin: |-
164
+ (?x)\G
165
+ (?! $
166
+ | [ ]{,3}>.
167
+ | ([ ]{4}|\t)
168
+ | [#]{1,6}\s*+
169
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\g<marker>){2,}[ \t]*+$
170
+ )
171
+ end: $|(?<=\n)
172
+ patterns:
173
+ - include: "#inline"
174
+ comment: "\n\
175
+ \t\t\t\tWe terminate the block quote when seeing an empty line, a\n\
176
+ \t\t\t\tseparator or a line with leading > characters. The latter is\n\
177
+ \t\t\t\tto \xE2\x80\x9Creset\xE2\x80\x9D the quote level for quoted lines.\n\
178
+ \t\t\t"
179
+ link-ref:
180
+ name: meta.link.reference.markdown
181
+ captures:
182
+ "6":
183
+ name: constant.other.reference.link.markdown
184
+ "7":
185
+ name: punctuation.definition.constant.end.markdown
186
+ "1":
187
+ name: punctuation.definition.string.begin.markdown
188
+ "2":
189
+ name: string.other.link.title.markdown
190
+ "4":
191
+ name: punctuation.definition.string.end.markdown
192
+ "5":
193
+ name: punctuation.definition.constant.begin.markdown
194
+ match: (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)([^\]]*+)(\])
195
+ block_raw:
196
+ name: markup.raw.block.markdown
197
+ match: \G([ ]{4}|\t).*$\n?
198
+ separator:
199
+ name: meta.separator.markdown
200
+ match: \G[ ]{,3}([-*_])([ ]{,2}\1){2,}[ \t]*$\n?
201
+ link-inline:
202
+ name: meta.link.inline.markdown
203
+ captures:
204
+ "6":
205
+ name: punctuation.definition.metadata.markdown
206
+ "11":
207
+ name: punctuation.definition.string.begin.markdown
208
+ "7":
209
+ name: punctuation.definition.link.markdown
210
+ "12":
211
+ name: punctuation.definition.string.end.markdown
212
+ "8":
213
+ name: markup.underline.link.markdown
214
+ "13":
215
+ name: string.other.link.description.title.markdown
216
+ "9":
217
+ name: punctuation.definition.link.markdown
218
+ "14":
219
+ name: punctuation.definition.string.begin.markdown
220
+ "15":
221
+ name: punctuation.definition.string.end.markdown
222
+ "16":
223
+ name: punctuation.definition.metadata.markdown
224
+ "1":
225
+ name: punctuation.definition.string.begin.markdown
226
+ "2":
227
+ name: string.other.link.title.markdown
228
+ "4":
229
+ name: punctuation.definition.string.end.markdown
230
+ "10":
231
+ name: string.other.link.description.title.markdown
232
+ "5":
233
+ name: invalid.illegal.whitespace.markdown
234
+ match: "(?x:\n\
235
+ \t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\
236
+ \t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\
237
+ \t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\
238
+ \t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\
239
+ \t\t\t\t\t(<?)(.*?)(>?)\t\t\t# The url\n\
240
+ \t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
241
+ \t\t\t\t\t(?:\n\
242
+ \t\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in parens\xE2\x80\xA6\n\
243
+ \t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\
244
+ \t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
245
+ \t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
246
+ \t\t\t\t(\\))\n\
247
+ \t\t\t )"
248
+ bold:
249
+ name: markup.bold.markdown
250
+ captures:
251
+ "1":
252
+ name: punctuation.definition.bold.markdown
253
+ begin: "(?x)\n\
254
+ \t\t\t\t\t\t(\\*\\*|__)(?=\\S)\t\t\t\t\t\t\t\t# Open\n\
255
+ \t\t\t\t\t\t(?=\n\
256
+ \t\t\t\t\t\t\t(\n\
257
+ \t\t\t\t\t\t\t <[^>]*+>\t\t\t\t\t\t\t# HTML tags\n\
258
+ \t\t\t\t\t\t\t | (?<raw>`+)([^`]|(?!(?<!`)\\g<raw>(?!`))`)*+\\g<raw>\n\
259
+ \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# Raw\n\
260
+ \t\t\t\t\t\t\t | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\t\t\t# Escapes\n\
261
+ \t\t\t\t\t\t\t | \\[\n\
262
+ \t\t\t\t\t\t\t\t(\t\t\t\t\n\
263
+ \t\t\t\t\t\t\t\t (?<square>\t\t\t\t\t# Named group\n\
264
+ \t\t\t\t\t\t\t\t\t\t\t[^\\[\\]\\\\]\t\t\t\t# Match most chars\n\
265
+ \t\t\t\t\t\t\t\t | \\\\.\t\t\t\t\t\t# Escaped chars\n\
266
+ \t\t\t\t\t\t\t\t | \\[ \\g<square>*+ \\]\t\t# Nested brackets\n\
267
+ \t\t\t\t\t\t\t\t )*+\n\
268
+ \t\t\t\t\t\t\t\t\t\\]\n\
269
+ \t\t\t\t\t\t\t\t\t(\n\
270
+ \t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t# Reference Link\n\
271
+ \t\t\t\t\t\t\t\t\t\t\t[ ]?\t\t\t\t\t# Optional space\n\
272
+ \t\t\t\t\t\t\t\t\t\t\t\\[[^\\]]*+\\]\t\t\t\t# Ref name\n\
273
+ \t\t\t\t\t\t\t\t\t\t)\n\
274
+ \t\t\t\t\t\t\t\t\t | (\t\t\t\t\t\t\t# Inline Link\n\
275
+ \t\t\t\t\t\t\t\t\t\t\t\\(\t\t\t\t\t\t# Opening paren\n\
276
+ \t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\
277
+ \t\t\t\t\t\t\t\t\t\t\t\t<?(.*?)>?\t\t\t# URL\n\
278
+ \t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\
279
+ \t\t\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t# Optional Title\n\
280
+ \t\t\t\t\t\t\t\t\t\t\t\t\t(?<title>['\"])\n\
281
+ \t\t\t\t\t\t\t\t\t\t\t\t\t(.*?)\n\
282
+ \t\t\t\t\t\t\t\t\t\t\t\t\t\\g<title>\n\
283
+ \t\t\t\t\t\t\t\t\t\t\t\t)?\n\
284
+ \t\t\t\t\t\t\t\t\t\t\t\\)\n\
285
+ \t\t\t\t\t\t\t\t\t\t)\n\
286
+ \t\t\t\t\t\t\t\t\t)\n\
287
+ \t\t\t\t\t\t\t\t)\n\
288
+ \t\t\t\t\t\t\t | (?!(?<=\\S)\\1).\t\t\t\t\t\t# Everything besides\n\
289
+ \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# style closer\n\
290
+ \t\t\t\t\t\t\t)++\n\
291
+ \t\t\t\t\t\t\t(?<=\\S)\\1\t\t\t\t\t\t\t\t# Close\n\
292
+ \t\t\t\t\t\t)\n\
293
+ \t\t\t\t\t"
294
+ end: (?<=\S)(\1)
295
+ patterns:
296
+ - begin: (?=<[^>]*?>)
297
+ applyEndPatternLast: 1
298
+ end: (?<=>)
299
+ patterns:
300
+ - include: text.html.basic
301
+ - include: "#escape"
302
+ - include: "#ampersand"
303
+ - include: "#bracket"
304
+ - include: "#raw"
305
+ - include: "#italic"
306
+ - include: "#image-inline"
307
+ - include: "#link-inline"
308
+ - include: "#link-inet"
309
+ - include: "#link-email"
310
+ - include: "#image-ref"
311
+ - include: "#link-ref-literal"
312
+ - include: "#link-ref"
313
+ heading:
314
+ name: markup.heading.markdown
315
+ captures:
316
+ "1":
317
+ name: punctuation.definition.heading.markdown
318
+ begin: \G(#{1,6})(?!#)\s*(?=\S)
319
+ contentName: entity.name.section.markdown
320
+ end: \s*(#*)$\n?
321
+ patterns:
322
+ - include: "#inline"
323
+ link-inet:
324
+ name: meta.link.inet.markdown
325
+ captures:
326
+ "1":
327
+ name: punctuation.definition.link.markdown
328
+ "2":
329
+ name: markup.underline.link.markdown
330
+ "3":
331
+ name: punctuation.definition.link.markdown
332
+ match: (<)((?:https?|ftp)://.*?)(>)
333
+ raw:
334
+ name: markup.raw.inline.markdown
335
+ captures:
336
+ "1":
337
+ name: punctuation.definition.raw.markdown
338
+ "3":
339
+ name: punctuation.definition.raw.markdown
340
+ match: (`+)([^`]|(?!(?<!`)\1(?!`))`)*+(\1)
341
+ italic:
342
+ name: markup.italic.markdown
343
+ captures:
344
+ "1":
345
+ name: punctuation.definition.italic.markdown
346
+ begin: "(?x)\n\
347
+ \t\t\t\t\t\t(\\*|_)(?=\\S)\t\t\t\t\t\t\t\t# Open\n\
348
+ \t\t\t\t\t\t(?=\n\
349
+ \t\t\t\t\t\t\t(\n\
350
+ \t\t\t\t\t\t\t <[^>]*+>\t\t\t\t\t\t\t# HTML tags\n\
351
+ \t\t\t\t\t\t\t | (?<raw>`+)([^`]|(?!(?<!`)\\g<raw>(?!`))`)*+\\g<raw>\n\
352
+ \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# Raw\n\
353
+ \t\t\t\t\t\t\t | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\t\t\t# Escapes\n\
354
+ \t\t\t\t\t\t\t | \\[\n\
355
+ \t\t\t\t\t\t\t\t(\t\t\t\t\n\
356
+ \t\t\t\t\t\t\t\t (?<square>\t\t\t\t\t# Named group\n\
357
+ \t\t\t\t\t\t\t\t\t\t\t[^\\[\\]\\\\]\t\t\t\t# Match most chars\n\
358
+ \t\t\t\t\t\t\t\t | \\\\.\t\t\t\t\t\t# Escaped chars\n\
359
+ \t\t\t\t\t\t\t\t | \\[ \\g<square>*+ \\]\t\t# Nested brackets\n\
360
+ \t\t\t\t\t\t\t\t )*+\n\
361
+ \t\t\t\t\t\t\t\t\t\\]\n\
362
+ \t\t\t\t\t\t\t\t\t(\n\
363
+ \t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t# Reference Link\n\
364
+ \t\t\t\t\t\t\t\t\t\t\t[ ]?\t\t\t\t\t# Optional space\n\
365
+ \t\t\t\t\t\t\t\t\t\t\t\\[[^\\]]*+\\]\t\t\t\t# Ref name\n\
366
+ \t\t\t\t\t\t\t\t\t\t)\n\
367
+ \t\t\t\t\t\t\t\t\t | (\t\t\t\t\t\t\t# Inline Link\n\
368
+ \t\t\t\t\t\t\t\t\t\t\t\\(\t\t\t\t\t\t# Opening paren\n\
369
+ \t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\
370
+ \t\t\t\t\t\t\t\t\t\t\t\t<?(.*?)>?\t\t\t# URL\n\
371
+ \t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\
372
+ \t\t\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t# Optional Title\n\
373
+ \t\t\t\t\t\t\t\t\t\t\t\t\t(?<title>['\"])\n\
374
+ \t\t\t\t\t\t\t\t\t\t\t\t\t(.*?)\n\
375
+ \t\t\t\t\t\t\t\t\t\t\t\t\t\\g<title>\n\
376
+ \t\t\t\t\t\t\t\t\t\t\t\t)?\n\
377
+ \t\t\t\t\t\t\t\t\t\t\t\\)\n\
378
+ \t\t\t\t\t\t\t\t\t\t)\n\
379
+ \t\t\t\t\t\t\t\t\t)\n\
380
+ \t\t\t\t\t\t\t\t)\n\
381
+ \t\t\t\t\t\t\t | \\1\\1\t\t\t\t\t\t\t\t# Must be bold closer\n\
382
+ \t\t\t\t\t\t\t | (?!(?<=\\S)\\1).\t\t\t\t\t\t# Everything besides\n\
383
+ \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# style closer\n\
384
+ \t\t\t\t\t\t\t)++\n\
385
+ \t\t\t\t\t\t\t(?<=\\S)\\1\t\t\t\t\t\t\t\t# Close\n\
386
+ \t\t\t\t\t\t)\n\
387
+ \t\t\t\t\t"
388
+ end: (?<=\S)(\1)((?!\1)|(?=\1\1))
389
+ patterns:
390
+ - begin: (?=<[^>]*?>)
391
+ applyEndPatternLast: 1
392
+ end: (?<=>)
393
+ patterns:
394
+ - include: text.html.basic
395
+ - include: "#escape"
396
+ - include: "#ampersand"
397
+ - include: "#bracket"
398
+ - include: "#raw"
399
+ - include: "#bold"
400
+ - include: "#image-inline"
401
+ - include: "#link-inline"
402
+ - include: "#link-inet"
403
+ - include: "#link-email"
404
+ - include: "#image-ref"
405
+ - include: "#link-ref-literal"
406
+ - include: "#link-ref"
407
+ line-break:
408
+ name: meta.dummy.line-break
409
+ match: " {2,}$"
410
+ ampersand:
411
+ name: meta.other.valid-ampersand.markdown
412
+ match: "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)"
413
+ comment: "\n\
414
+ \t\t\t\tMarkdown will convert this for us. We match it so that the\n\
415
+ \t\t\t\tHTML grammar will not mark it up as invalid.\n\
416
+ \t\t\t"
417
+ uuid: 0A1D9874-B448-11D9-BD50-000D93B6E43C
418
+ foldingStartMarker: |-
419
+ (?x)
420
+ (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?>
421
+ |<!--(?!.*-->)
422
+ |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
423
+ )
424
+ patterns:
425
+ - name: meta.block-level.markdown
426
+ begin: |-
427
+ (?x)^
428
+ (?= [ ]{,3}>.
429
+ | ([ ]{4}|\t)
430
+ | [#]{1,6}\s*+
431
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\g<marker>){2,}[ \t]*+$
432
+ )
433
+ end: |-
434
+ (?x)^
435
+ (?! [ ]{,3}>.
436
+ | ([ ]{4}|\t)
437
+ | [#]{1,6}\s*+
438
+ | [ ]{,3}(?<marker>[-*_])([ ]{,2}\g<marker>){2,}[ \t]*+$
439
+ )
440
+ patterns:
441
+ - include: "#block_quote"
442
+ - include: "#block_raw"
443
+ - include: "#heading"
444
+ - include: "#separator"
445
+ comment: "\n\
446
+ \t\t\t\tWe could also use an empty end match and set\n\
447
+ \t\t\t\tapplyEndPatternLast, but then we must be sure that the begin\n\
448
+ \t\t\t\tpattern will only match stuff matched by the sub-patterns.\n\
449
+ \t\t\t"
450
+ - name: markup.list.unnumbered
451
+ captures:
452
+ "1":
453
+ name: punctuation.definition.list_item.markdown
454
+ begin: ^[ ]{0,3}([*+-])(?=\s)
455
+ end: ^(?=\S)
456
+ patterns:
457
+ - include: "#list-paragraph"
458
+ - name: markup.list.numbered
459
+ captures:
460
+ "1":
461
+ name: punctuation.definition.list_item.markdown
462
+ begin: ^[ ]{0,3}[0-9]+(\.)(?=\s)
463
+ end: ^(?=\S)
464
+ patterns:
465
+ - include: "#list-paragraph"
466
+ - name: meta.disable-markdown
467
+ begin: ^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b)(?!.*?</\1>)
468
+ end: (?<=^</\1>$\n)
469
+ patterns:
470
+ - include: text.html.basic
471
+ comment: "\n\
472
+ \t\t\t\tMarkdown formatting is disabled inside block-level tags.\n\
473
+ \t\t\t"
474
+ - name: meta.disable-markdown
475
+ begin: ^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b)
476
+ end: $\n?
477
+ patterns:
478
+ - include: text.html.basic
479
+ comment: Same rule but for one line disables.
480
+ - name: meta.link.reference.def.markdown
481
+ captures:
482
+ "6":
483
+ name: markup.underline.link.markdown
484
+ "11":
485
+ name: string.other.link.description.title.markdown
486
+ "7":
487
+ name: punctuation.definition.link.markdown
488
+ "12":
489
+ name: punctuation.definition.string.begin.markdown
490
+ "8":
491
+ name: string.other.link.description.title.markdown
492
+ "13":
493
+ name: punctuation.definition.string.end.markdown
494
+ "9":
495
+ name: punctuation.definition.string.begin.markdown
496
+ "1":
497
+ name: punctuation.definition.constant.markdown
498
+ "2":
499
+ name: constant.other.reference.link.markdown
500
+ "3":
501
+ name: punctuation.definition.constant.markdown
502
+ "4":
503
+ name: punctuation.separator.key-value.markdown
504
+ "10":
505
+ name: punctuation.definition.string.end.markdown
506
+ "5":
507
+ name: punctuation.definition.link.markdown
508
+ match: "(?x:\n\
509
+ \t\t\t\t\\s*\t\t\t\t\t\t# Leading whitespace\n\
510
+ \t\t\t\t(\\[)(.+?)(\\])(:)\t\t# Reference name\n\
511
+ \t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
512
+ \t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\
513
+ \t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
514
+ \t\t\t\t(?:\n\
515
+ \t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in quotes\xE2\x80\xA6\n\
516
+ \t\t\t\t\t| ((\").+?(\"))\t\t# or in parens.\n\
517
+ \t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
518
+ \t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
519
+ \t\t\t\t$\n\
520
+ \t\t\t)"
521
+ - name: meta.paragraph.markdown
522
+ begin: ^(?=\S)(?![=-]{3,}(?=$))
523
+ end: ^(?:\s*$|(?=[ ]{,3}>.))|(?=[ \t]*\n)(?<=^===|^====|=====|^---|^----|-----)[ \t]*\n
524
+ patterns:
525
+ - include: "#inline"
526
+ - include: text.html.basic
527
+ - name: markup.heading.1.markdown
528
+ captures:
529
+ "1":
530
+ name: punctuation.definition.heading.markdown
531
+ match: ^(={3,})(?=[ \t]*$)
532
+ - name: markup.heading.2.markdown
533
+ captures:
534
+ "1":
535
+ name: punctuation.definition.heading.markdown
536
+ match: ^(-{3,})(?=[ \t]*$)
537
+ foldingStopMarker: |-
538
+ (?x)
539
+ (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>
540
+ |^\s*-->
541
+ |(^|\s)\}
542
+ )
543
+ keyEquivalent: ^~M