ver 2009.10.14

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 (188) hide show
  1. data/CHANGELOG +1404 -0
  2. data/MANIFEST +187 -0
  3. data/Rakefile +30 -0
  4. data/TODO +169 -0
  5. data/bin/ver +19 -0
  6. data/config/detect.rb +109 -0
  7. data/config/keymap/vim.rb +239 -0
  8. data/config/rc.rb +0 -0
  9. data/config/scratch +3 -0
  10. data/config/syntax/ANTLR.json +275 -0
  11. data/config/syntax/ASP VB.net.json +228 -0
  12. data/config/syntax/ASP.json +135 -0
  13. data/config/syntax/ActionScript.json +168 -0
  14. data/config/syntax/Ada.json +108 -0
  15. data/config/syntax/Apache.json +342 -0
  16. data/config/syntax/AppleScript.json +721 -0
  17. data/config/syntax/Bibtex.json +253 -0
  18. data/config/syntax/Blog (HTML).json +47 -0
  19. data/config/syntax/Blog (Markdown).json +50 -0
  20. data/config/syntax/Blog (Text).json +45 -0
  21. data/config/syntax/Blog (Textile).json +45 -0
  22. data/config/syntax/Bulletin Board.json +428 -0
  23. data/config/syntax/C++.json +323 -0
  24. data/config/syntax/C.json +694 -0
  25. data/config/syntax/CSS.json +346 -0
  26. data/config/syntax/DOT.json +79 -0
  27. data/config/syntax/Diff.json +136 -0
  28. data/config/syntax/Dylan.json +104 -0
  29. data/config/syntax/Eiffel.json +128 -0
  30. data/config/syntax/Erlang.json +1636 -0
  31. data/config/syntax/F-Script.json +137 -0
  32. data/config/syntax/FXScript.json +260 -0
  33. data/config/syntax/Gri.json +141 -0
  34. data/config/syntax/HTML (Mason).json +207 -0
  35. data/config/syntax/HTML (Rails).json +52 -0
  36. data/config/syntax/HTML (Tcl).json +42 -0
  37. data/config/syntax/HTML for ASP.net.json +736 -0
  38. data/config/syntax/HTML-ASP.json +45 -0
  39. data/config/syntax/HTML.json +614 -0
  40. data/config/syntax/Haskell.json +407 -0
  41. data/config/syntax/Inform.json +80 -0
  42. data/config/syntax/Ini.json +91 -0
  43. data/config/syntax/Io.json +142 -0
  44. data/config/syntax/Java.json +745 -0
  45. data/config/syntax/JavaProperties.json +42 -0
  46. data/config/syntax/JavaScript.json +446 -0
  47. data/config/syntax/LaTeX Beamer.json +65 -0
  48. data/config/syntax/LaTeX Log.json +88 -0
  49. data/config/syntax/LaTeX.json +962 -0
  50. data/config/syntax/Lighttpd.json +93 -0
  51. data/config/syntax/Lisp.json +101 -0
  52. data/config/syntax/Literate Haskell.json +55 -0
  53. data/config/syntax/Logtalk.json +289 -0
  54. data/config/syntax/Lua.json +146 -0
  55. data/config/syntax/M.json +744 -0
  56. data/config/syntax/MEL.json +161 -0
  57. data/config/syntax/MIPS.json +114 -0
  58. data/config/syntax/Mail.json +224 -0
  59. data/config/syntax/Makefile.json +66 -0
  60. data/config/syntax/Markdown.json +644 -0
  61. data/config/syntax/Modula-3.json +80 -0
  62. data/config/syntax/Movable Type.json +348 -0
  63. data/config/syntax/OCaml.json +1391 -0
  64. data/config/syntax/Objective-C++.json +21 -0
  65. data/config/syntax/OpenGL.json +24 -0
  66. data/config/syntax/PHP.json +2184 -0
  67. data/config/syntax/Pascal.json +128 -0
  68. data/config/syntax/Perl.json +2091 -0
  69. data/config/syntax/Plain text.json +49 -0
  70. data/config/syntax/Processing.json +188 -0
  71. data/config/syntax/Quake3 Config.json +54 -0
  72. data/config/syntax/R.json +157 -0
  73. data/config/syntax/Rez.json +137 -0
  74. data/config/syntax/Ruby on Rails.json +170 -0
  75. data/config/syntax/Ruby.json +1753 -0
  76. data/config/syntax/SQL (Rails).json +31 -0
  77. data/config/syntax/SQL.json +435 -0
  78. data/config/syntax/SWIG.json +96 -0
  79. data/config/syntax/Scheme.json +359 -0
  80. data/config/syntax/Shell-Unix-Generic.json +1198 -0
  81. data/config/syntax/Slate.json +265 -0
  82. data/config/syntax/Smarty.json +110 -0
  83. data/config/syntax/Standard ML.json +322 -0
  84. data/config/syntax/Subversion commit message.json +62 -0
  85. data/config/syntax/Tcl.json +278 -0
  86. data/config/syntax/TeX Math.json +83 -0
  87. data/config/syntax/TeX.json +157 -0
  88. data/config/syntax/Textile.json +273 -0
  89. data/config/syntax/Twiki.json +436 -0
  90. data/config/syntax/Vectorscript.json +97 -0
  91. data/config/syntax/XML strict.json +148 -0
  92. data/config/syntax/XML.json +301 -0
  93. data/config/syntax/XSL.json +96 -0
  94. data/config/syntax/YAML.json +293 -0
  95. data/config/syntax/iCalendar.json +51 -0
  96. data/config/syntax/reStructuredText.json +403 -0
  97. data/config/theme/Active4D.json +260 -0
  98. data/config/theme/All Hallow's Eve.json +171 -0
  99. data/config/theme/Amy.json +359 -0
  100. data/config/theme/BBEdit.json +269 -0
  101. data/config/theme/Bespin.json +322 -0
  102. data/config/theme/Blackboard.json +215 -0
  103. data/config/theme/BoysAndGirls01.json +156 -0
  104. data/config/theme/Brilliance Black.json +1695 -0
  105. data/config/theme/Brilliance Dull.json +1451 -0
  106. data/config/theme/Classic Modified.json +288 -0
  107. data/config/theme/Cobalt.json +345 -0
  108. data/config/theme/Cool Glow.json +215 -0
  109. data/config/theme/Dawn.json +258 -0
  110. data/config/theme/Eiffel.json +270 -0
  111. data/config/theme/Espresso Libre.json +247 -0
  112. data/config/theme/Fluidvision.json +272 -0
  113. data/config/theme/IDLE.json +159 -0
  114. data/config/theme/LAZY.json +178 -0
  115. data/config/theme/Mac Classic.json +277 -0
  116. data/config/theme/MagicWB (Amiga).json +231 -0
  117. data/config/theme/Merbivore Soft.json +181 -0
  118. data/config/theme/Merbivore.json +181 -0
  119. data/config/theme/Monokai.json +177 -0
  120. data/config/theme/Notepad2.json +166 -0
  121. data/config/theme/Pastels on Dark.json +437 -0
  122. data/config/theme/RubyBlue.json +226 -0
  123. data/config/theme/Sin City 2.json +361 -0
  124. data/config/theme/Slate.json +270 -0
  125. data/config/theme/Slush & Poppies.json +232 -0
  126. data/config/theme/SpaceCadet.json +143 -0
  127. data/config/theme/Sunburst.json +415 -0
  128. data/config/theme/Twilight BG FG.json +633 -0
  129. data/config/theme/Twilight.json +321 -0
  130. data/config/theme/Whys Poignant.json +119 -0
  131. data/config/theme/Zenburnesque.json +237 -0
  132. data/config/theme/barf.json +155 -0
  133. data/config/theme/fake.json +418 -0
  134. data/config/theme/happydeluxe.json +114 -0
  135. data/config/theme/iLife 05.json +393 -0
  136. data/config/theme/iPlastic.json +177 -0
  137. data/config/theme/mintBlue Dark.json +414 -0
  138. data/config/theme/mintBlue.json +415 -0
  139. data/config/theme/monoindustrial.json +276 -0
  140. data/config/theme/starlight.json +67 -0
  141. data/config/tutorial +74 -0
  142. data/config/welcome +115 -0
  143. data/help/index.verh +14 -0
  144. data/lib/ver.rb +156 -0
  145. data/lib/ver/entry.rb +97 -0
  146. data/lib/ver/keymap.rb +96 -0
  147. data/lib/ver/layout.rb +107 -0
  148. data/lib/ver/methods.rb +19 -0
  149. data/lib/ver/methods/completion.rb +116 -0
  150. data/lib/ver/methods/control.rb +340 -0
  151. data/lib/ver/methods/insert.rb +6 -0
  152. data/lib/ver/methods/move.rb +65 -0
  153. data/lib/ver/methods/search.rb +33 -0
  154. data/lib/ver/methods/select.rb +145 -0
  155. data/lib/ver/methods/views.rb +21 -0
  156. data/lib/ver/mode.rb +160 -0
  157. data/lib/ver/options.rb +207 -0
  158. data/lib/ver/plist.rb +106 -0
  159. data/lib/ver/status.rb +67 -0
  160. data/lib/ver/syntax.rb +68 -0
  161. data/lib/ver/syntax/detector.rb +53 -0
  162. data/lib/ver/syntax/processor.rb +48 -0
  163. data/lib/ver/text.rb +374 -0
  164. data/lib/ver/textpow.rb +357 -0
  165. data/lib/ver/theme.rb +162 -0
  166. data/lib/ver/vendor/fuzzy_file_finder.rb +340 -0
  167. data/lib/ver/view.rb +163 -0
  168. data/lib/ver/view/entry.rb +28 -0
  169. data/lib/ver/view/list.rb +137 -0
  170. data/lib/ver/view/list/buffer.rb +27 -0
  171. data/lib/ver/view/list/fuzzy_file_finder.rb +44 -0
  172. data/lib/ver/view/list/syntax.rb +13 -0
  173. data/lib/ver/view/list/theme.rb +13 -0
  174. data/spec/keymap.rb +224 -0
  175. data/tasks/bacon.rake +49 -0
  176. data/tasks/changelog.rake +18 -0
  177. data/tasks/gem.rake +22 -0
  178. data/tasks/gem_installer.rake +76 -0
  179. data/tasks/grancher.rake +12 -0
  180. data/tasks/install_dependencies.rake +6 -0
  181. data/tasks/manifest.rake +4 -0
  182. data/tasks/plist2json.rake +35 -0
  183. data/tasks/rcov.rake +18 -0
  184. data/tasks/release.rake +12 -0
  185. data/tasks/reversion.rake +8 -0
  186. data/tasks/syntax_list.rake +31 -0
  187. data/ver.gemspec +29 -0
  188. metadata +241 -0
@@ -0,0 +1,66 @@
1
+ {
2
+ "fileTypes": [
3
+ "GNUmakefile",
4
+ "makefile",
5
+ "Makefile",
6
+ "OCamlMakefile"
7
+ ],
8
+ "name": "Makefile",
9
+ "patterns": [
10
+ {
11
+ "begin": "^(\\w|[-_])+\\s*\\??=",
12
+ "end": "$",
13
+ "name": "variable.other.makefile",
14
+ "patterns": [
15
+ {
16
+ "match": "\\\\\\n"
17
+ }
18
+ ]
19
+ },
20
+ {
21
+ "begin": "`",
22
+ "end": "`",
23
+ "name": "string.interpolated.backtick.makefile",
24
+ "patterns": [
25
+ {
26
+ "include": "source.shell"
27
+ }
28
+ ]
29
+ },
30
+ {
31
+ "begin": "#",
32
+ "beginCaptures": {
33
+ "0": {
34
+ "name": "punctuation.definition.comment.makefile"
35
+ }
36
+ },
37
+ "end": "$\\n?",
38
+ "name": "comment.line.number-sign.makefile",
39
+ "patterns": [
40
+ {
41
+ "match": "(?<!\\\\)\\\\$\\n",
42
+ "name": "punctuation.separator.continuation.makefile"
43
+ }
44
+ ]
45
+ },
46
+ {
47
+ "match": "^\\t\\s*$",
48
+ "name": "invalid.deprecated.opaque-rule-continuation.makefile"
49
+ },
50
+ {
51
+ "match": "^(\\s*)\\b(\\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)\\b",
52
+ "name": "keyword.control.makefile"
53
+ },
54
+ {
55
+ "captures": {
56
+ "1": {
57
+ "name": "entity.name.function.makefile"
58
+ }
59
+ },
60
+ "match": "^([^\\t ]+:(?!\\=))\\s*.*",
61
+ "name": "meta.function.makefile"
62
+ }
63
+ ],
64
+ "scopeName": "source.makefile",
65
+ "uuid": "FF1825E8-6B1C-11D9-B883-000D93589AF6"
66
+ }
@@ -0,0 +1,644 @@
1
+ {
2
+ "fileTypes": [
3
+ "mdown",
4
+ "markdown",
5
+ "markdn",
6
+ "md"
7
+ ],
8
+ "foldingStartMarker": "(?x)\n\t\t(<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\\b.*?>\n\t\t|<!--(?!.*-->)\n\t\t|\\{\\s*($|\\?>\\s*$|\/\/|\/\\*(.*\\*\/\\s*$|(?!.*?\\*\/)))\n\t\t)",
9
+ "foldingStopMarker": "(?x)\n\t\t(<\/(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>\n\t\t|^\\s*-->\n\t\t|(^|\\s)\\}\n\t\t)",
10
+ "keyEquivalent": "^~M",
11
+ "name": "Markdown",
12
+ "patterns": [
13
+ {
14
+ "begin": "(?x)^\n\t\t\t\t(?=\t[ ]{,3}>.\n\t\t\t\t|\t([ ]{4}|\\t)(?!$)\n\t\t\t\t|\t[#]{1,6}\\s*+\n\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t)",
15
+ "comment": "\n\t\t\t\tWe could also use an empty end match and set\n\t\t\t\tapplyEndPatternLast, but then we must be sure that the begin\n\t\t\t\tpattern will only match stuff matched by the sub-patterns.\n\t\t\t",
16
+ "end": "(?x)^\n\t\t\t\t(?!\t[ ]{,3}>.\n\t\t\t\t|\t([ ]{4}|\\t)\n\t\t\t\t|\t[#]{1,6}\\s*+\n\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t)",
17
+ "name": "meta.block-level.markdown",
18
+ "patterns": [
19
+ {
20
+ "include": "#block_quote"
21
+ },
22
+ {
23
+ "include": "#block_raw"
24
+ },
25
+ {
26
+ "include": "#heading"
27
+ },
28
+ {
29
+ "include": "#separator"
30
+ }
31
+ ]
32
+ },
33
+ {
34
+ "begin": "^[ ]{0,3}([*+-])(?=\\s)",
35
+ "captures": {
36
+ "1": {
37
+ "name": "punctuation.definition.list_item.markdown"
38
+ }
39
+ },
40
+ "end": "^(?=\\S)",
41
+ "name": "markup.list.unnumbered.markdown",
42
+ "patterns": [
43
+ {
44
+ "include": "#list-paragraph"
45
+ }
46
+ ]
47
+ },
48
+ {
49
+ "begin": "^[ ]{0,3}[0-9]+(\\.)(?=\\s)",
50
+ "captures": {
51
+ "1": {
52
+ "name": "punctuation.definition.list_item.markdown"
53
+ }
54
+ },
55
+ "end": "^(?=\\S)",
56
+ "name": "markup.list.numbered.markdown",
57
+ "patterns": [
58
+ {
59
+ "include": "#list-paragraph"
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ "begin": "^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)(?!.*?<\/\\1>)",
65
+ "comment": "\n\t\t\t\tMarkdown formatting is disabled inside block-level tags.\n\t\t\t",
66
+ "end": "(?<=^<\/\\1>$\\n)",
67
+ "name": "meta.disable-markdown",
68
+ "patterns": [
69
+ {
70
+ "include": "text.html.basic"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "begin": "^(?=<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\\b)",
76
+ "comment": "Same rule but for one line disables.",
77
+ "end": "$\\n?",
78
+ "name": "meta.disable-markdown",
79
+ "patterns": [
80
+ {
81
+ "include": "text.html.basic"
82
+ }
83
+ ]
84
+ },
85
+ {
86
+ "captures": {
87
+ "1": {
88
+ "name": "punctuation.definition.constant.markdown"
89
+ },
90
+ "10": {
91
+ "name": "punctuation.definition.string.end.markdown"
92
+ },
93
+ "11": {
94
+ "name": "string.other.link.description.title.markdown"
95
+ },
96
+ "12": {
97
+ "name": "punctuation.definition.string.begin.markdown"
98
+ },
99
+ "13": {
100
+ "name": "punctuation.definition.string.end.markdown"
101
+ },
102
+ "2": {
103
+ "name": "constant.other.reference.link.markdown"
104
+ },
105
+ "3": {
106
+ "name": "punctuation.definition.constant.markdown"
107
+ },
108
+ "4": {
109
+ "name": "punctuation.separator.key-value.markdown"
110
+ },
111
+ "5": {
112
+ "name": "punctuation.definition.link.markdown"
113
+ },
114
+ "6": {
115
+ "name": "markup.underline.link.markdown"
116
+ },
117
+ "7": {
118
+ "name": "punctuation.definition.link.markdown"
119
+ },
120
+ "8": {
121
+ "name": "string.other.link.description.title.markdown"
122
+ },
123
+ "9": {
124
+ "name": "punctuation.definition.string.begin.markdown"
125
+ }
126
+ },
127
+ "match": "(?x:\n\t\t\t\t\\s*\t\t\t\t\t\t# Leading whitespace\n\t\t\t\t(\\[)(.+?)(\\])(:)\t\t# Reference name\n\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\t\t\t\t(?:\n\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in quotes\u2026\n\t\t\t\t\t| ((\").+?(\"))\t\t# or in parens.\n\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t$\n\t\t\t)",
128
+ "name": "meta.link.reference.def.markdown"
129
+ },
130
+ {
131
+ "begin": "^(?=\\S)(?![=-]{3,}(?=$))",
132
+ "end": "^(?:\\s*$|(?=[ ]{,3}>.))|(?=[ \\t]*\\n)(?<=^===|^====|=====|^---|^----|-----)[ \\t]*\\n|(?=^#)",
133
+ "name": "meta.paragraph.markdown",
134
+ "patterns": [
135
+ {
136
+ "include": "#inline"
137
+ },
138
+ {
139
+ "include": "text.html.basic"
140
+ },
141
+ {
142
+ "captures": {
143
+ "1": {
144
+ "name": "punctuation.definition.heading.markdown"
145
+ }
146
+ },
147
+ "match": "^(={3,})(?=[ \\t]*$)",
148
+ "name": "markup.heading.1.markdown"
149
+ },
150
+ {
151
+ "captures": {
152
+ "1": {
153
+ "name": "punctuation.definition.heading.markdown"
154
+ }
155
+ },
156
+ "match": "^(-{3,})(?=[ \\t]*$)",
157
+ "name": "markup.heading.2.markdown"
158
+ }
159
+ ]
160
+ }
161
+ ],
162
+ "repository": {
163
+ "ampersand": {
164
+ "comment": "\n\t\t\t\tMarkdown will convert this for us. We match it so that the\n\t\t\t\tHTML grammar will not mark it up as invalid.\n\t\t\t",
165
+ "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)",
166
+ "name": "meta.other.valid-ampersand.markdown"
167
+ },
168
+ "block_quote": {
169
+ "begin": "\\G[ ]{,3}(>)(?!$)[ ]?",
170
+ "beginCaptures": {
171
+ "1": {
172
+ "name": "punctuation.definition.blockquote.markdown"
173
+ }
174
+ },
175
+ "comment": "\n\t\t\t\tWe terminate the block quote when seeing an empty line, a\n\t\t\t\tseparator or a line with leading > characters. The latter is\n\t\t\t\tto \u201creset\u201d the quote level for quoted lines.\n\t\t\t",
176
+ "end": "(?x)^\n\t\t\t\t(?=\t\\s*$\n\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t|\t[ ]{,3}>.\n\t\t\t\t)",
177
+ "name": "markup.quote.markdown",
178
+ "patterns": [
179
+ {
180
+ "begin": "(?x)\\G\n\t\t\t\t\t\t(?=\t[ ]{,3}>.\n\t\t\t\t\t\t)",
181
+ "end": "^",
182
+ "patterns": [
183
+ {
184
+ "include": "#block_quote"
185
+ }
186
+ ]
187
+ },
188
+ {
189
+ "applyEndPatternLast": 1,
190
+ "begin": "(?x)\\G\n\t\t\t\t\t\t(?=\t([ ]{4}|\\t)\n\t\t\t\t\t\t|\t[#]{1,6}\\s*+\n\t\t\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t\t\t)",
191
+ "end": "^",
192
+ "patterns": [
193
+ {
194
+ "include": "#block_raw"
195
+ },
196
+ {
197
+ "include": "#heading"
198
+ },
199
+ {
200
+ "include": "#separator"
201
+ }
202
+ ]
203
+ },
204
+ {
205
+ "begin": "(?x)\\G\n\t\t\t\t\t\t(?!\t$\n\t\t\t\t\t\t|\t[ ]{,3}>.\n\t\t\t\t\t\t|\t([ ]{4}|\\t)\n\t\t\t\t\t\t|\t[#]{1,6}\\s*+\n\t\t\t\t\t\t|\t[ ]{,3}(?<marker>[-*_])([ ]{,2}\\k<marker>){2,}[ \\t]*+$\n\t\t\t\t\t\t)",
206
+ "end": "$|(?<=\\n)",
207
+ "patterns": [
208
+ {
209
+ "include": "#inline"
210
+ }
211
+ ]
212
+ }
213
+ ]
214
+ },
215
+ "block_raw": {
216
+ "match": "\\G([ ]{4}|\\t).*$\\n?",
217
+ "name": "markup.raw.block.markdown"
218
+ },
219
+ "bold": {
220
+ "begin": "(?x)\n\t\t\t\t\t\t(\\*\\*|__)(?=\\S)\t\t\t\t\t\t\t\t# Open\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t <[^>]*+>\t\t\t\t\t\t\t# HTML tags\n\t\t\t\t\t\t\t | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# Raw\n\t\t\t\t\t\t\t | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\t\t\t# Escapes\n\t\t\t\t\t\t\t | \\[\n\t\t\t\t\t\t\t\t(\t\t\t\t\n\t\t\t\t\t\t\t\t (?<square>\t\t\t\t\t# Named group\n\t\t\t\t\t\t\t\t\t\t\t[^\\[\\]\\\\]\t\t\t\t# Match most chars\n\t\t\t\t\t\t\t\t | \\\\.\t\t\t\t\t\t# Escaped chars\n\t\t\t\t\t\t\t\t | \\[ \\g<square>*+ \\]\t\t# Nested brackets\n\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\t(\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t# Reference Link\n\t\t\t\t\t\t\t\t\t\t\t[ ]?\t\t\t\t\t# Optional space\n\t\t\t\t\t\t\t\t\t\t\t\\[[^\\]]*+\\]\t\t\t\t# Ref name\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t | (\t\t\t\t\t\t\t# Inline Link\n\t\t\t\t\t\t\t\t\t\t\t\\(\t\t\t\t\t\t# Opening paren\n\t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\t\t\t\t\t\t\t\t\t\t\t\t<?(.*?)>?\t\t\t# URL\n\t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\t\t\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t# Optional Title\n\t\t\t\t\t\t\t\t\t\t\t\t\t(?<title>['\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t(.*?)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\k<title>\n\t\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\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)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | (?!(?<=\\S)\\1).\t\t\t\t\t\t# Everything besides\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# style closer\n\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t(?<=\\S)\\1\t\t\t\t\t\t\t\t# Close\n\t\t\t\t\t\t)\n\t\t\t\t\t",
221
+ "captures": {
222
+ "1": {
223
+ "name": "punctuation.definition.bold.markdown"
224
+ }
225
+ },
226
+ "end": "(?<=\\S)(\\1)",
227
+ "name": "markup.bold.markdown",
228
+ "patterns": [
229
+ {
230
+ "applyEndPatternLast": 1,
231
+ "begin": "(?=<[^>]*?>)",
232
+ "end": "(?<=>)",
233
+ "patterns": [
234
+ {
235
+ "include": "text.html.basic"
236
+ }
237
+ ]
238
+ },
239
+ {
240
+ "include": "#escape"
241
+ },
242
+ {
243
+ "include": "#ampersand"
244
+ },
245
+ {
246
+ "include": "#bracket"
247
+ },
248
+ {
249
+ "include": "#raw"
250
+ },
251
+ {
252
+ "include": "#italic"
253
+ },
254
+ {
255
+ "include": "#image-inline"
256
+ },
257
+ {
258
+ "include": "#link-inline"
259
+ },
260
+ {
261
+ "include": "#link-inet"
262
+ },
263
+ {
264
+ "include": "#link-email"
265
+ },
266
+ {
267
+ "include": "#image-ref"
268
+ },
269
+ {
270
+ "include": "#link-ref-literal"
271
+ },
272
+ {
273
+ "include": "#link-ref"
274
+ }
275
+ ]
276
+ },
277
+ "bracket": {
278
+ "comment": "\n\t\t\t\tMarkdown will convert this for us. We match it so that the\n\t\t\t\tHTML grammar will not mark it up as invalid.\n\t\t\t",
279
+ "match": "<(?![a-z\/?\\$!])",
280
+ "name": "meta.other.valid-bracket.markdown"
281
+ },
282
+ "escape": {
283
+ "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]",
284
+ "name": "constant.character.escape.markdown"
285
+ },
286
+ "heading": {
287
+ "begin": "\\G(#{1,6})(?!#)\\s*(?=\\S)",
288
+ "captures": {
289
+ "1": {
290
+ "name": "punctuation.definition.heading.markdown"
291
+ }
292
+ },
293
+ "contentName": "entity.name.section.markdown",
294
+ "end": "\\s*(#*)$\\n?",
295
+ "name": "markup.heading.markdown",
296
+ "patterns": [
297
+ {
298
+ "include": "#inline"
299
+ }
300
+ ]
301
+ },
302
+ "image-inline": {
303
+ "captures": {
304
+ "1": {
305
+ "name": "punctuation.definition.string.begin.markdown"
306
+ },
307
+ "10": {
308
+ "name": "string.other.link.description.title.markdown"
309
+ },
310
+ "11": {
311
+ "name": "punctuation.definition.string.markdown"
312
+ },
313
+ "12": {
314
+ "name": "punctuation.definition.string.markdown"
315
+ },
316
+ "13": {
317
+ "name": "string.other.link.description.title.markdown"
318
+ },
319
+ "14": {
320
+ "name": "punctuation.definition.string.markdown"
321
+ },
322
+ "15": {
323
+ "name": "punctuation.definition.string.markdown"
324
+ },
325
+ "16": {
326
+ "name": "punctuation.definition.metadata.markdown"
327
+ },
328
+ "2": {
329
+ "name": "string.other.link.description.markdown"
330
+ },
331
+ "3": {
332
+ "name": "punctuation.definition.string.end.markdown"
333
+ },
334
+ "5": {
335
+ "name": "invalid.illegal.whitespace.markdown"
336
+ },
337
+ "6": {
338
+ "name": "punctuation.definition.metadata.markdown"
339
+ },
340
+ "7": {
341
+ "name": "punctuation.definition.link.markdown"
342
+ },
343
+ "8": {
344
+ "name": "markup.underline.link.image.markdown"
345
+ },
346
+ "9": {
347
+ "name": "punctuation.definition.link.markdown"
348
+ }
349
+ },
350
+ "match": "(?x:\n\t\t\t\t\\!\t\t\t\t\t\t\t# Images start with !\n\t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\t\t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t(?:\n\t\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in parens\u2026\n\t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t(\\))\n\t\t\t )",
351
+ "name": "meta.image.inline.markdown"
352
+ },
353
+ "image-ref": {
354
+ "captures": {
355
+ "1": {
356
+ "name": "punctuation.definition.string.begin.markdown"
357
+ },
358
+ "2": {
359
+ "name": "string.other.link.description.markdown"
360
+ },
361
+ "4": {
362
+ "name": "punctuation.definition.string.begin.markdown"
363
+ },
364
+ "5": {
365
+ "name": "punctuation.definition.constant.markdown"
366
+ },
367
+ "6": {
368
+ "name": "constant.other.reference.link.markdown"
369
+ },
370
+ "7": {
371
+ "name": "punctuation.definition.constant.markdown"
372
+ }
373
+ },
374
+ "match": "\\!(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])",
375
+ "name": "meta.image.reference.markdown"
376
+ },
377
+ "inline": {
378
+ "patterns": [
379
+ {
380
+ "include": "#escape"
381
+ },
382
+ {
383
+ "include": "#ampersand"
384
+ },
385
+ {
386
+ "include": "#bracket"
387
+ },
388
+ {
389
+ "include": "#raw"
390
+ },
391
+ {
392
+ "include": "#bold"
393
+ },
394
+ {
395
+ "include": "#italic"
396
+ },
397
+ {
398
+ "include": "#line-break"
399
+ },
400
+ {
401
+ "include": "#image-inline"
402
+ },
403
+ {
404
+ "include": "#link-inline"
405
+ },
406
+ {
407
+ "include": "#link-inet"
408
+ },
409
+ {
410
+ "include": "#link-email"
411
+ },
412
+ {
413
+ "include": "#image-ref"
414
+ },
415
+ {
416
+ "include": "#link-ref-literal"
417
+ },
418
+ {
419
+ "include": "#link-ref"
420
+ }
421
+ ]
422
+ },
423
+ "italic": {
424
+ "begin": "(?x)\n\t\t\t\t\t\t(\\*|_)(?=\\S)\t\t\t\t\t\t\t\t# Open\n\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t <[^>]*+>\t\t\t\t\t\t\t# HTML tags\n\t\t\t\t\t\t\t | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# Raw\n\t\t\t\t\t\t\t | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+\t\t\t# Escapes\n\t\t\t\t\t\t\t | \\[\n\t\t\t\t\t\t\t\t(\t\t\t\t\n\t\t\t\t\t\t\t\t (?<square>\t\t\t\t\t# Named group\n\t\t\t\t\t\t\t\t\t\t\t[^\\[\\]\\\\]\t\t\t\t# Match most chars\n\t\t\t\t\t\t\t\t | \\\\.\t\t\t\t\t\t# Escaped chars\n\t\t\t\t\t\t\t\t | \\[ \\g<square>*+ \\]\t\t# Nested brackets\n\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\t(\n\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t\t\t# Reference Link\n\t\t\t\t\t\t\t\t\t\t\t[ ]?\t\t\t\t\t# Optional space\n\t\t\t\t\t\t\t\t\t\t\t\\[[^\\]]*+\\]\t\t\t\t# Ref name\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t | (\t\t\t\t\t\t\t# Inline Link\n\t\t\t\t\t\t\t\t\t\t\t\\(\t\t\t\t\t\t# Opening paren\n\t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\t\t\t\t\t\t\t\t\t\t\t\t<?(.*?)>?\t\t\t# URL\n\t\t\t\t\t\t\t\t\t\t\t\t[ \\t]*+\t\t\t\t# Optional whtiespace\n\t\t\t\t\t\t\t\t\t\t\t\t(\t\t\t\t\t# Optional Title\n\t\t\t\t\t\t\t\t\t\t\t\t\t(?<title>['\"])\n\t\t\t\t\t\t\t\t\t\t\t\t\t(.*?)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\k<title>\n\t\t\t\t\t\t\t\t\t\t\t\t)?\n\t\t\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)\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | \\1\\1\t\t\t\t\t\t\t\t# Must be bold closer\n\t\t\t\t\t\t\t | (?!(?<=\\S)\\1).\t\t\t\t\t\t# Everything besides\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# style closer\n\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t(?<=\\S)\\1\t\t\t\t\t\t\t\t# Close\n\t\t\t\t\t\t)\n\t\t\t\t\t",
425
+ "captures": {
426
+ "1": {
427
+ "name": "punctuation.definition.italic.markdown"
428
+ }
429
+ },
430
+ "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))",
431
+ "name": "markup.italic.markdown",
432
+ "patterns": [
433
+ {
434
+ "applyEndPatternLast": 1,
435
+ "begin": "(?=<[^>]*?>)",
436
+ "end": "(?<=>)",
437
+ "patterns": [
438
+ {
439
+ "include": "text.html.basic"
440
+ }
441
+ ]
442
+ },
443
+ {
444
+ "include": "#escape"
445
+ },
446
+ {
447
+ "include": "#ampersand"
448
+ },
449
+ {
450
+ "include": "#bracket"
451
+ },
452
+ {
453
+ "include": "#raw"
454
+ },
455
+ {
456
+ "include": "#bold"
457
+ },
458
+ {
459
+ "include": "#image-inline"
460
+ },
461
+ {
462
+ "include": "#link-inline"
463
+ },
464
+ {
465
+ "include": "#link-inet"
466
+ },
467
+ {
468
+ "include": "#link-email"
469
+ },
470
+ {
471
+ "include": "#image-ref"
472
+ },
473
+ {
474
+ "include": "#link-ref-literal"
475
+ },
476
+ {
477
+ "include": "#link-ref"
478
+ }
479
+ ]
480
+ },
481
+ "line-break": {
482
+ "match": " {2,}$",
483
+ "name": "meta.dummy.line-break"
484
+ },
485
+ "link-email": {
486
+ "captures": {
487
+ "1": {
488
+ "name": "punctuation.definition.link.markdown"
489
+ },
490
+ "2": {
491
+ "name": "markup.underline.link.markdown"
492
+ },
493
+ "4": {
494
+ "name": "punctuation.definition.link.markdown"
495
+ }
496
+ },
497
+ "match": "(<)((?:mailto:)?[-.\\w]+@[-a-z0-9]+(\\.[-a-z0-9]+)*\\.[a-z]+)(>)",
498
+ "name": "meta.link.email.lt-gt.markdown"
499
+ },
500
+ "link-inet": {
501
+ "captures": {
502
+ "1": {
503
+ "name": "punctuation.definition.link.markdown"
504
+ },
505
+ "2": {
506
+ "name": "markup.underline.link.markdown"
507
+ },
508
+ "3": {
509
+ "name": "punctuation.definition.link.markdown"
510
+ }
511
+ },
512
+ "match": "(<)((?:https?|ftp):\/\/.*?)(>)",
513
+ "name": "meta.link.inet.markdown"
514
+ },
515
+ "link-inline": {
516
+ "captures": {
517
+ "1": {
518
+ "name": "punctuation.definition.string.begin.markdown"
519
+ },
520
+ "10": {
521
+ "name": "string.other.link.description.title.markdown"
522
+ },
523
+ "11": {
524
+ "name": "punctuation.definition.string.begin.markdown"
525
+ },
526
+ "12": {
527
+ "name": "punctuation.definition.string.end.markdown"
528
+ },
529
+ "13": {
530
+ "name": "string.other.link.description.title.markdown"
531
+ },
532
+ "14": {
533
+ "name": "punctuation.definition.string.begin.markdown"
534
+ },
535
+ "15": {
536
+ "name": "punctuation.definition.string.end.markdown"
537
+ },
538
+ "16": {
539
+ "name": "punctuation.definition.metadata.markdown"
540
+ },
541
+ "2": {
542
+ "name": "string.other.link.title.markdown"
543
+ },
544
+ "4": {
545
+ "name": "punctuation.definition.string.end.markdown"
546
+ },
547
+ "5": {
548
+ "name": "invalid.illegal.whitespace.markdown"
549
+ },
550
+ "6": {
551
+ "name": "punctuation.definition.metadata.markdown"
552
+ },
553
+ "7": {
554
+ "name": "punctuation.definition.link.markdown"
555
+ },
556
+ "8": {
557
+ "name": "markup.underline.link.markdown"
558
+ },
559
+ "9": {
560
+ "name": "punctuation.definition.link.markdown"
561
+ }
562
+ },
563
+ "match": "(?x:\n\t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\t\t\t\t\t(<?)(.*?)(>?)\t\t\t# The url\n\t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\t\t\t\t\t(?:\n\t\t\t\t\t\t ((\\().+?(\\)))\t\t# Match title in parens\u2026\n\t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\t\t\t\t(\\))\n\t\t\t )",
564
+ "name": "meta.link.inline.markdown"
565
+ },
566
+ "link-ref": {
567
+ "captures": {
568
+ "1": {
569
+ "name": "punctuation.definition.string.begin.markdown"
570
+ },
571
+ "2": {
572
+ "name": "string.other.link.title.markdown"
573
+ },
574
+ "4": {
575
+ "name": "punctuation.definition.string.end.markdown"
576
+ },
577
+ "5": {
578
+ "name": "punctuation.definition.constant.begin.markdown"
579
+ },
580
+ "6": {
581
+ "name": "constant.other.reference.link.markdown"
582
+ },
583
+ "7": {
584
+ "name": "punctuation.definition.constant.end.markdown"
585
+ }
586
+ },
587
+ "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)([^\\]]*+)(\\])",
588
+ "name": "meta.link.reference.markdown"
589
+ },
590
+ "link-ref-literal": {
591
+ "captures": {
592
+ "1": {
593
+ "name": "punctuation.definition.string.begin.markdown"
594
+ },
595
+ "2": {
596
+ "name": "string.other.link.title.markdown"
597
+ },
598
+ "4": {
599
+ "name": "punctuation.definition.string.end.markdown"
600
+ },
601
+ "5": {
602
+ "name": "punctuation.definition.constant.begin.markdown"
603
+ },
604
+ "6": {
605
+ "name": "punctuation.definition.constant.end.markdown"
606
+ }
607
+ },
608
+ "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])",
609
+ "name": "meta.link.reference.literal.markdown"
610
+ },
611
+ "list-paragraph": {
612
+ "patterns": [
613
+ {
614
+ "begin": "\\G\\s+(?=\\S)",
615
+ "end": "^\\s*$",
616
+ "name": "meta.paragraph.list.markdown",
617
+ "patterns": [
618
+ {
619
+ "include": "#inline"
620
+ }
621
+ ]
622
+ }
623
+ ]
624
+ },
625
+ "raw": {
626
+ "captures": {
627
+ "1": {
628
+ "name": "punctuation.definition.raw.markdown"
629
+ },
630
+ "3": {
631
+ "name": "punctuation.definition.raw.markdown"
632
+ }
633
+ },
634
+ "match": "(`+)([^`]|(?!(?<!`)\\1(?!`))`)*+(\\1)",
635
+ "name": "markup.raw.inline.markdown"
636
+ },
637
+ "separator": {
638
+ "match": "\\G[ ]{,3}([-*_])([ ]{,2}\\1){2,}[ \\t]*$\\n?",
639
+ "name": "meta.separator.markdown"
640
+ }
641
+ },
642
+ "scopeName": "text.html.markdown",
643
+ "uuid": "0A1D9874-B448-11D9-BD50-000D93B6E43C"
644
+ }