redcar 0.3.1dev → 0.3.2dev

Sign up to get free protection for your applications and to get access to all the features.
Files changed (316) hide show
  1. data/CHANGES +34 -1
  2. data/README.md +2 -1
  3. data/ROADMAP.md +13 -45
  4. data/Rakefile +15 -14
  5. data/bin/redcar +4 -1
  6. data/lib/plugin_manager/README.md +61 -0
  7. data/lib/plugin_manager/Rakefile +55 -0
  8. data/lib/plugin_manager/bin/plugin_manager +4 -0
  9. data/lib/plugin_manager/lib/plugin_manager.rb +107 -0
  10. data/lib/plugin_manager/lib/plugin_manager/definition_builder.rb +37 -0
  11. data/lib/plugin_manager/lib/plugin_manager/plugin.rb +9 -0
  12. data/lib/plugin_manager/lib/plugin_manager/plugin_definition.rb +50 -0
  13. data/lib/plugin_manager/plugin_manager.gemspec +33 -0
  14. data/lib/plugin_manager/spec/fixtures/error_in_definition/core/plugin.rb +2 -0
  15. data/lib/plugin_manager/spec/fixtures/error_in_plugin/core/core.rb +4 -0
  16. data/lib/plugin_manager/spec/fixtures/error_in_plugin/core/plugin.rb +7 -0
  17. data/lib/plugin_manager/spec/fixtures/example/core/core.rb +20 -0
  18. data/lib/plugin_manager/spec/fixtures/example/core/plugin.rb +7 -0
  19. data/lib/plugin_manager/spec/fixtures/example/debug/debug.rb +6 -0
  20. data/lib/plugin_manager/spec/fixtures/example/debug/plugin.rb +8 -0
  21. data/lib/plugin_manager/spec/fixtures/example/extras/extras.rb +6 -0
  22. data/lib/plugin_manager/spec/fixtures/example/extras/plugin.rb +8 -0
  23. data/lib/plugin_manager/spec/fixtures/two_versions1/core/core.rb +20 -0
  24. data/lib/plugin_manager/spec/fixtures/two_versions1/core/plugin.rb +7 -0
  25. data/lib/plugin_manager/spec/fixtures/two_versions1/core2/core.rb +20 -0
  26. data/lib/plugin_manager/spec/fixtures/two_versions1/core2/plugin.rb +7 -0
  27. data/lib/plugin_manager/spec/fixtures/two_versions2/core/core.rb +20 -0
  28. data/lib/plugin_manager/spec/fixtures/two_versions2/core/plugin.rb +7 -0
  29. data/lib/plugin_manager/spec/fixtures/two_versions2/core2/core.rb +20 -0
  30. data/lib/plugin_manager/spec/fixtures/two_versions2/core2/plugin.rb +8 -0
  31. data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/core/core.rb +10 -0
  32. data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/core/plugin.rb +7 -0
  33. data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/debug/debug.rb +6 -0
  34. data/lib/plugin_manager/spec/fixtures/unmet_dependencies1/debug/plugin.rb +8 -0
  35. data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/core/core.rb +10 -0
  36. data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/core/plugin.rb +7 -0
  37. data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/debug/debug.rb +6 -0
  38. data/lib/plugin_manager/spec/fixtures/unmet_dependencies2/debug/plugin.rb +8 -0
  39. data/lib/plugin_manager/spec/plugin_manager_spec.rb +208 -0
  40. data/lib/plugin_manager/spec/spec_helper.rb +3 -0
  41. data/lib/redcar.rb +8 -3
  42. data/lib/redcar/boot.rb +59 -56
  43. data/lib/redcar/installer.rb +1 -1
  44. data/lib/redcar/instance_exec.rb +25 -0
  45. data/lib/redcar/runner.rb +5 -1
  46. data/lib/redcar/usage.rb +5 -1
  47. data/plugins/application/icons/close.png +0 -0
  48. data/plugins/application/lib/application.rb +61 -28
  49. data/plugins/application/lib/application/clipboard.rb +71 -0
  50. data/plugins/application/lib/application/dialog.rb +63 -0
  51. data/plugins/application/lib/application/menu.rb +32 -1
  52. data/plugins/application/lib/application/menu/builder.rb +10 -4
  53. data/plugins/application/lib/application/menu/item.rb +16 -3
  54. data/plugins/application/lib/application/notebook.rb +5 -0
  55. data/plugins/application/lib/application/speedbar.rb +73 -0
  56. data/plugins/application/lib/application/window.rb +25 -0
  57. data/plugins/application/plugin.rb +8 -0
  58. data/plugins/application/spec/application/clipboard_spec.rb +36 -0
  59. data/plugins/application/spec/application/menu_spec.rb +73 -1
  60. data/plugins/application/spec/application/speedbar_spec.rb +46 -0
  61. data/plugins/application/spec/spec_helper.rb +1 -1
  62. data/plugins/application_swt/lib/application_swt.rb +18 -11
  63. data/plugins/application_swt/lib/application_swt/clipboard.rb +42 -0
  64. data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +68 -0
  65. data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +1 -1
  66. data/plugins/application_swt/lib/application_swt/html_tab.rb +32 -0
  67. data/plugins/application_swt/lib/application_swt/menu.rb +57 -21
  68. data/plugins/application_swt/lib/application_swt/menu/binding_translator.rb +39 -2
  69. data/plugins/application_swt/lib/application_swt/notebook.rb +5 -0
  70. data/plugins/application_swt/lib/application_swt/speedbar.rb +187 -0
  71. data/plugins/application_swt/lib/application_swt/swt_wrapper.rb +24 -1
  72. data/plugins/application_swt/lib/application_swt/window.rb +33 -3
  73. data/plugins/application_swt/plugin.rb +8 -0
  74. data/plugins/application_swt/spec/spec_helper.rb +1 -1
  75. data/plugins/auto_completer/features/auto_complete.feature +65 -0
  76. data/plugins/auto_completer/features/step_definitions/auto_complete_steps.rb +4 -0
  77. data/plugins/auto_completer/features/support/env.rb +4 -0
  78. data/plugins/auto_completer/lib/auto_completer.rb +99 -0
  79. data/plugins/auto_completer/lib/auto_completer/document_controller.rb +52 -0
  80. data/plugins/auto_completer/lib/auto_completer/word_iterator.rb +48 -0
  81. data/plugins/auto_completer/lib/auto_completer/word_list.rb +40 -0
  82. data/plugins/auto_completer/plugin.rb +10 -0
  83. data/plugins/auto_indenter/lib/auto_indenter.rb +1 -1
  84. data/plugins/auto_indenter/lib/auto_indenter/document_controller.rb +1 -1
  85. data/plugins/auto_indenter/plugin.rb +8 -0
  86. data/plugins/core/lib/core.rb +6 -30
  87. data/plugins/core/lib/core/gui.rb +7 -2
  88. data/plugins/core/lib/core/logger.rb +7 -4
  89. data/plugins/core/lib/core/plugin/storage.rb +15 -5
  90. data/plugins/core/plugin.rb +7 -0
  91. data/plugins/core/spec/core/storage_spec.rb +0 -9
  92. data/plugins/edit_view/features/cut_and_paste.feature +45 -0
  93. data/plugins/edit_view/features/step_definitions/editing_steps.rb +22 -0
  94. data/plugins/edit_view/features/step_definitions/key_steps.rb +1 -1
  95. data/plugins/edit_view/features/step_definitions/notebook_steps.rb +1 -1
  96. data/plugins/edit_view/features/step_definitions/tab_steps.rb +2 -0
  97. data/plugins/edit_view/features/step_definitions/window_steps.rb +1 -1
  98. data/plugins/edit_view/features/support/env.rb +2 -2
  99. data/plugins/edit_view/lib/edit_view.rb +24 -13
  100. data/plugins/edit_view/lib/edit_view/document.rb +233 -15
  101. data/plugins/edit_view/lib/edit_view/edit_tab.rb +2 -2
  102. data/plugins/edit_view/plugin.rb +9 -0
  103. data/plugins/edit_view/spec/spec_helper.rb +1 -1
  104. data/plugins/edit_view_swt/lib/edit_view_swt.rb +37 -8
  105. data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +59 -24
  106. data/plugins/edit_view_swt/lib/edit_view_swt/word_movement.rb +66 -0
  107. data/plugins/edit_view_swt/plugin.rb +9 -0
  108. data/plugins/edit_view_swt/spec/edit_view_swt/word_movement_spec.rb +29 -0
  109. data/plugins/edit_view_swt/spec/spec_helper.rb +6 -0
  110. data/plugins/html_view/assets/blueprint/ie.css +35 -0
  111. data/plugins/html_view/assets/blueprint/print.css +29 -0
  112. data/plugins/html_view/assets/blueprint/screen.css +257 -0
  113. data/plugins/html_view/assets/blueprint/src/forms.css +65 -0
  114. data/plugins/html_view/assets/blueprint/src/grid.css +281 -0
  115. data/plugins/html_view/assets/blueprint/src/grid.png +0 -0
  116. data/plugins/html_view/assets/blueprint/src/ie.css +76 -0
  117. data/plugins/html_view/assets/blueprint/src/print.css +85 -0
  118. data/plugins/html_view/assets/blueprint/src/reset.css +38 -0
  119. data/plugins/html_view/assets/blueprint/src/typography.css +106 -0
  120. data/plugins/html_view/assets/jquery-1.4.min.js +151 -0
  121. data/plugins/html_view/assets/redcar.css +12 -0
  122. data/plugins/html_view/lib/html_controller.rb +5 -0
  123. data/plugins/html_view/lib/html_view.rb +47 -0
  124. data/plugins/html_view/lib/html_view/html_tab.rb +16 -0
  125. data/plugins/html_view/plugin.rb +12 -0
  126. data/plugins/my_plugin/lib/my_plugin.rb +55 -0
  127. data/plugins/my_plugin/plugin.rb +8 -0
  128. data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +62 -0
  129. data/plugins/plugin_manager_ui/plugin.rb +12 -0
  130. data/plugins/plugin_manager_ui/views/index.html.erb +31 -0
  131. data/plugins/project/lib/project.rb +27 -13
  132. data/plugins/project/lib/project/find_file_dialog.rb +25 -19
  133. data/plugins/project/plugin.rb +8 -0
  134. data/plugins/project/spec/spec_helper.rb +1 -1
  135. data/plugins/redcar/plugin.rb +13 -0
  136. data/plugins/redcar/redcar.rb +249 -8
  137. data/plugins/repl/lib/repl.rb +22 -14
  138. data/plugins/repl/plugin.rb +8 -0
  139. data/plugins/repl/spec/spec_helper.rb +1 -1
  140. data/plugins/tree/plugin.rb +9 -0
  141. data/plugins/tree/spec/spec_helper.rb +1 -1
  142. data/plugins/tree_view_swt/plugin.rb +9 -0
  143. data/textmate/Bundles/Apache.tmbundle/Syntaxes/Apache.plist +544 -0
  144. data/textmate/Bundles/Apache.tmbundle/Syntaxes/mod_perl.tmLanguage +120 -0
  145. data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___HTML__.plist +88 -0
  146. data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Markdown__.plist +89 -0
  147. data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Text__.plist +74 -0
  148. data/textmate/Bundles/Blogging.tmbundle/Syntaxes/Blog___Textile__.plist +74 -0
  149. data/textmate/Bundles/Bundle Development.tmbundle/Syntaxes/LanguageGrammar.tmLanguage +1829 -0
  150. data/textmate/Bundles/C Sharp.tmbundle/Syntaxes/Build.tmLanguage +142 -0
  151. data/textmate/Bundles/C Sharp.tmbundle/Syntaxes/C__.tmLanguage +524 -0
  152. data/textmate/Bundles/C++ Qt.tmbundle/Syntaxes/Qt_C____.tmLanguage +62 -0
  153. data/textmate/Bundles/C++ Qt.tmbundle/Syntaxes/qmake_Project.tmLanguage +308 -0
  154. data/textmate/Bundles/C.tmbundle/Syntaxes/C.plist +90 -48
  155. data/textmate/Bundles/Clojure.tmbundle/Syntaxes/Clojure.tmLanguage +427 -0
  156. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/Cucumber_Plain_Text_Feature.tmLanguage +106 -13
  157. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/Cucumber_Steps.tmLanguage +177 -2
  158. data/textmate/Bundles/Cucumber.tmbundle/Syntaxes/plaintext_template.erb +109 -17
  159. data/textmate/Bundles/D.tmbundle/Syntaxes/D.tmLanguage +908 -0
  160. data/textmate/Bundles/Diff.tmbundle/Syntaxes/Diff.plist +229 -0
  161. data/textmate/Bundles/DokuWiki.tmbundle/Syntaxes/DokuWiki.tmLanguage +649 -0
  162. data/textmate/Bundles/F-Script.tmbundle/Syntaxes/F__Script.plist +219 -0
  163. data/textmate/Bundles/Haskell.tmbundle/Syntaxes/Haskell.plist +646 -0
  164. data/textmate/Bundles/Haskell.tmbundle/Syntaxes/Literate_Haskell.plist +90 -0
  165. data/textmate/Bundles/Io.tmbundle/Syntaxes/Io.plist +225 -0
  166. data/textmate/Bundles/JSON.tmbundle/Syntaxes/JSON.tmLanguage +285 -0
  167. data/textmate/Bundles/JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript____Prototype.tmLanguage +193 -0
  168. data/textmate/Bundles/JavaScript Prototype & Script_aculo_us.tmbundle/Syntaxes/JavaScript____Prototype_Bracketed.tmLanguage +394 -0
  169. data/textmate/Bundles/JavaScript jQuery.tmbundle/Syntaxes/jQuery___JavaScript__.tmLanguage +440 -0
  170. data/textmate/Bundles/JavaScript.tmbundle/Syntaxes/JavaScript.plist +712 -0
  171. data/textmate/Bundles/Latex.tmbundle/Syntaxes/Bibtex.plist +406 -0
  172. data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX.plist +1601 -0
  173. data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Beamer.plist +106 -0
  174. data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Log.plist +141 -0
  175. data/textmate/Bundles/Latex.tmbundle/Syntaxes/LaTeX_Memoir.tmLanguage +165 -0
  176. data/textmate/Bundles/Latex.tmbundle/Syntaxes/TeX.plist +246 -0
  177. data/textmate/Bundles/Latex.tmbundle/Syntaxes/TeX_Math.plist +132 -0
  178. data/textmate/Bundles/Lisp.tmbundle/Syntaxes/Lisp.plist +160 -0
  179. data/textmate/Bundles/Makefile.tmbundle/Syntaxes/Makefile.plist +103 -0
  180. data/textmate/Bundles/Markdown.tmbundle/Syntaxes/Markdown.plist +1192 -0
  181. data/textmate/Bundles/Markdown.tmbundle/Syntaxes/MultiMarkdown.tmLanguage +80 -0
  182. data/textmate/Bundles/PHP.tmbundle/Syntaxes/PHP.plist +3481 -0
  183. data/textmate/Bundles/Perl HTML-Template.tmbundle/Syntaxes/Perl_HTML__Template.tmLanguage +217 -0
  184. data/textmate/Bundles/Perl Template Toolkit.tmbundle/Syntaxes/HTML___Template_Toolkit__.tmLanguage +339 -0
  185. data/textmate/Bundles/Postscript.tmbundle/Syntaxes/Postscript.tmLanguage +321 -0
  186. data/textmate/Bundles/Processing.tmbundle/Syntaxes/Processing.plist +296 -0
  187. data/textmate/Bundles/Property List.tmbundle/Syntaxes/Property_List.tmLanguage +1650 -0
  188. data/textmate/Bundles/Python Django Templates.tmbundle/Syntaxes/HTML___Django__.tmLanguage +104 -0
  189. data/textmate/Bundles/Python Django.tmbundle/Syntaxes/Python_Django.tmLanguage +57 -0
  190. data/textmate/Bundles/Python.tmbundle/Syntaxes/Python.tmLanguage +3016 -0
  191. data/textmate/Bundles/Python.tmbundle/Syntaxes/Regular_Expressions___Python__.tmLanguage +299 -0
  192. data/textmate/Bundles/Rez.tmbundle/Syntaxes/Rez.plist +219 -0
  193. data/textmate/Bundles/Ruby Haml.tmbundle/Syntaxes/Ruby_Haml.tmLanguage +403 -0
  194. data/textmate/Bundles/Ruby RSpec.tmbundle/Syntaxes/RSpec.tmLanguage +142 -0
  195. data/textmate/Bundles/Ruby.tmbundle/Syntaxes/Ruby.plist +139 -49
  196. data/textmate/Bundles/SQL.tmbundle/Syntaxes/SQL.plist +705 -0
  197. data/textmate/Bundles/SSH-Config.tmbundle/Syntaxes/SSH__Config.tmLanguage +88 -0
  198. data/textmate/Bundles/Scala.tmbundle/Syntaxes/Scala.tmLanguage +609 -0
  199. data/textmate/Bundles/Scala.tmbundle/Syntaxes/Scala_Properties.tmLanguage +54 -0
  200. data/textmate/Bundles/ShellScript.tmbundle/Syntaxes/Shell__Unix__Generic.plist +1855 -0
  201. data/textmate/Bundles/Tabular.tmbundle/Syntaxes/CSV.tmLanguage +178 -0
  202. data/textmate/Bundles/Tabular.tmbundle/Syntaxes/TSV.tmLanguage +135 -0
  203. data/textmate/Bundles/TextMate.tmbundle/Syntaxes/Regular_Expressions___Oniguruma__.tmLanguage +295 -0
  204. data/textmate/Bundles/TextMate.tmbundle/Syntaxes/Release_Notes.tmLanguage +126 -0
  205. data/textmate/Bundles/Textile.tmbundle/Syntaxes/Textile.plist +490 -0
  206. data/textmate/Bundles/Thrift.tmbundle/Syntaxes/Thrift.tmLanguage +1024 -0
  207. data/textmate/Bundles/XML.tmbundle/Syntaxes/XML.plist +576 -0
  208. data/textmate/Bundles/XML.tmbundle/Syntaxes/XSL.plist +157 -0
  209. data/textmate/Bundles/YAML.tmbundle/Syntaxes/YAML.plist +466 -0
  210. data/textmate/Themes/Django.tmTheme +436 -0
  211. metadata +371 -325
  212. data/config/default.yaml +0 -15
  213. data/lib/freebase2/README.txt +0 -47
  214. data/lib/freebase2/bin/default.yaml +0 -15
  215. data/lib/freebase2/bin/install.rb +0 -42
  216. data/lib/freebase2/bin/run.rb +0 -48
  217. data/lib/freebase2/lib/freebase/configuration.rb +0 -535
  218. data/lib/freebase2/lib/freebase/core.rb +0 -197
  219. data/lib/freebase2/lib/freebase/databus.rb +0 -1128
  220. data/lib/freebase2/lib/freebase/freebase.rb +0 -60
  221. data/lib/freebase2/lib/freebase/logger.rb +0 -117
  222. data/lib/freebase2/lib/freebase/plugin.rb +0 -384
  223. data/lib/freebase2/lib/freebase/properties.rb +0 -130
  224. data/lib/freebase2/lib/freebase/readers.rb +0 -328
  225. data/lib/freebase2/notes +0 -61
  226. data/lib/freebase2/plugins/raa_webrick/httpd.rb +0 -125
  227. data/lib/freebase2/plugins/raa_webrick/plugin.yaml +0 -7
  228. data/lib/freebase2/plugins/raa_webrick/web_root/test.html +0 -5
  229. data/lib/freebase2/plugins/raa_webrick/webserver.yaml +0 -6
  230. data/lib/freebase2/plugins/raa_xmlrpc4r/plugin.xml +0 -8
  231. data/lib/freebase2/plugins/raa_xmlrpc4r/rpcd.rb +0 -54
  232. data/lib/freebase2/regress/README +0 -1
  233. data/lib/little_plugger/History.txt +0 -20
  234. data/lib/little_plugger/Rakefile +0 -34
  235. data/lib/little_plugger/lib/little-plugger.rb +0 -323
  236. data/lib/little_plugger/spec/little-plugger_spec.rb +0 -26
  237. data/lib/little_plugger/spec/spec_helper.rb +0 -16
  238. data/lib/logging/History.txt +0 -240
  239. data/lib/logging/Rakefile +0 -37
  240. data/lib/logging/data/bad_logging_1.rb +0 -13
  241. data/lib/logging/data/bad_logging_2.rb +0 -21
  242. data/lib/logging/data/logging.rb +0 -42
  243. data/lib/logging/data/logging.yaml +0 -63
  244. data/lib/logging/data/simple_logging.rb +0 -13
  245. data/lib/logging/examples/appenders.rb +0 -47
  246. data/lib/logging/examples/classes.rb +0 -41
  247. data/lib/logging/examples/consolidation.rb +0 -83
  248. data/lib/logging/examples/formatting.rb +0 -51
  249. data/lib/logging/examples/hierarchies.rb +0 -73
  250. data/lib/logging/examples/layouts.rb +0 -48
  251. data/lib/logging/examples/loggers.rb +0 -29
  252. data/lib/logging/examples/names.rb +0 -43
  253. data/lib/logging/examples/simple.rb +0 -17
  254. data/lib/logging/lib/logging.rb +0 -501
  255. data/lib/logging/lib/logging/appender.rb +0 -251
  256. data/lib/logging/lib/logging/appenders.rb +0 -131
  257. data/lib/logging/lib/logging/appenders/buffering.rb +0 -168
  258. data/lib/logging/lib/logging/appenders/console.rb +0 -60
  259. data/lib/logging/lib/logging/appenders/email.rb +0 -75
  260. data/lib/logging/lib/logging/appenders/file.rb +0 -58
  261. data/lib/logging/lib/logging/appenders/growl.rb +0 -197
  262. data/lib/logging/lib/logging/appenders/io.rb +0 -69
  263. data/lib/logging/lib/logging/appenders/rolling_file.rb +0 -293
  264. data/lib/logging/lib/logging/appenders/string_io.rb +0 -68
  265. data/lib/logging/lib/logging/appenders/syslog.rb +0 -194
  266. data/lib/logging/lib/logging/config/configurator.rb +0 -188
  267. data/lib/logging/lib/logging/config/yaml_configurator.rb +0 -191
  268. data/lib/logging/lib/logging/layout.rb +0 -117
  269. data/lib/logging/lib/logging/layouts.rb +0 -47
  270. data/lib/logging/lib/logging/layouts/basic.rb +0 -32
  271. data/lib/logging/lib/logging/layouts/parseable.rb +0 -211
  272. data/lib/logging/lib/logging/layouts/pattern.rb +0 -311
  273. data/lib/logging/lib/logging/log_event.rb +0 -45
  274. data/lib/logging/lib/logging/logger.rb +0 -503
  275. data/lib/logging/lib/logging/repository.rb +0 -232
  276. data/lib/logging/lib/logging/root_logger.rb +0 -61
  277. data/lib/logging/lib/logging/stats.rb +0 -278
  278. data/lib/logging/lib/logging/utils.rb +0 -153
  279. data/lib/logging/lib/spec/logging_helper.rb +0 -34
  280. data/lib/logging/test/appenders/test_buffered_io.rb +0 -176
  281. data/lib/logging/test/appenders/test_console.rb +0 -66
  282. data/lib/logging/test/appenders/test_email.rb +0 -170
  283. data/lib/logging/test/appenders/test_file.rb +0 -95
  284. data/lib/logging/test/appenders/test_growl.rb +0 -127
  285. data/lib/logging/test/appenders/test_io.rb +0 -129
  286. data/lib/logging/test/appenders/test_rolling_file.rb +0 -200
  287. data/lib/logging/test/appenders/test_syslog.rb +0 -194
  288. data/lib/logging/test/benchmark.rb +0 -86
  289. data/lib/logging/test/config/test_configurator.rb +0 -70
  290. data/lib/logging/test/config/test_yaml_configurator.rb +0 -40
  291. data/lib/logging/test/layouts/test_basic.rb +0 -42
  292. data/lib/logging/test/layouts/test_json.rb +0 -112
  293. data/lib/logging/test/layouts/test_pattern.rb +0 -198
  294. data/lib/logging/test/layouts/test_yaml.rb +0 -121
  295. data/lib/logging/test/setup.rb +0 -44
  296. data/lib/logging/test/test_appender.rb +0 -152
  297. data/lib/logging/test/test_consolidate.rb +0 -46
  298. data/lib/logging/test/test_layout.rb +0 -110
  299. data/lib/logging/test/test_log_event.rb +0 -80
  300. data/lib/logging/test/test_logger.rb +0 -699
  301. data/lib/logging/test/test_logging.rb +0 -267
  302. data/lib/logging/test/test_repository.rb +0 -158
  303. data/lib/logging/test/test_root_logger.rb +0 -81
  304. data/lib/logging/test/test_stats.rb +0 -274
  305. data/lib/logging/test/test_utils.rb +0 -116
  306. data/plugins/application/plugin.yaml +0 -11
  307. data/plugins/application_swt/plugin.yaml +0 -11
  308. data/plugins/auto_indenter/plugin.yaml +0 -12
  309. data/plugins/core/plugin.yaml +0 -7
  310. data/plugins/edit_view/plugin.yaml +0 -14
  311. data/plugins/edit_view_swt/plugin.yaml +0 -14
  312. data/plugins/project/plugin.yaml +0 -12
  313. data/plugins/redcar/plugin.yaml +0 -18
  314. data/plugins/repl/plugin.yaml +0 -12
  315. data/plugins/tree/plugin.yaml +0 -14
  316. data/plugins/tree_view_swt/plugin.yaml +0 -14
@@ -0,0 +1,132 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>fileTypes</key>
6
+ <array/>
7
+ <key>foldingStartMarker</key>
8
+ <string>/\*\*|\{\s*$</string>
9
+ <key>foldingStopMarker</key>
10
+ <string>\*\*/|^\s*\}</string>
11
+ <key>name</key>
12
+ <string>TeX Math</string>
13
+ <key>patterns</key>
14
+ <array>
15
+ <dict>
16
+ <key>captures</key>
17
+ <dict>
18
+ <key>1</key>
19
+ <dict>
20
+ <key>name</key>
21
+ <string>punctuation.definition.constant.math.tex</string>
22
+ </dict>
23
+ </dict>
24
+ <key>match</key>
25
+ <string>(\\)(s(s(earrow|warrow|lash)|h(ort(downarrow|uparrow|parallel|leftarrow|rightarrow|mid)|arp)|tar|i(gma|m(eq)?)|u(cc(sim|n(sim|approx)|curlyeq|eq|approx)?|pset(neq(q)?|plus(eq)?|eq(q)?)?|rd|m|bset(neq(q)?|plus(eq)?|eq(q)?)?)|p(hericalangle|adesuit)|e(tminus|arrow)|q(su(pset(eq)?|bset(eq)?)|c(up|ap)|uare)|warrow|m(ile|all(s(etminus|mile)|frown)))|h(slash|ook(leftarrow|rightarrow)|eartsuit|bar)|R(sh|ightarrow|e|bag)|Gam(e|ma)|n(s(hort(parallel|mid)|im|u(cc(eq)?|pseteq(q)?|bseteq))|Rightarrow|n(earrow|warrow)|cong|triangle(left(eq(slant)?)?|right(eq(slant)?)?)|i(plus)?|u|p(lus|arallel|rec(eq)?)|e(q|arrow|g|xists)|v(dash|Dash)|warrow|le(ss|q(slant|q)?|ft(arrow|rightarrow))|a(tural|bla)|VDash|rightarrow|g(tr|eq(slant|q)?)|mid|Left(arrow|rightarrow))|c(hi|irc(eq|le(d(circ|S|dash|ast)|arrow(left|right)))?|o(ng|prod|lon|mplement)|dot(s|p)?|u(p|r(vearrow(left|right)|ly(eq(succ|prec)|vee(downarrow|uparrow)?|wedge(downarrow|uparrow)?)))|enterdot|lubsuit|ap)|Xi|Maps(to(char)?|from(char)?)|B(ox|umpeq|bbk)|t(h(ick(sim|approx)|e(ta|refore))|imes|op|wohead(leftarrow|rightarrow)|a(u|lloblong)|riangle(down|q|left(eq(slant)?)?|right(eq(slant)?)?)?)|i(n(t(er(cal|leave))?|plus|fty)?|ota|math)|S(igma|u(pset|bset))|zeta|o(slash|times|int|dot|plus|vee|wedge|lessthan|greaterthan|m(inus|ega)|b(slash|long|ar))|d(i(v(ideontimes)?|a(g(down|up)|mond(suit)?)|gamma)|o(t(plus|eq(dot)?)|ublebarwedge|wn(harpoon(left|right)|downarrows|arrow))|d(ots|agger)|elta|a(sh(v|leftarrow|rightarrow)|leth|gger))|Y(down|up|left|right)|C(up|ap)|u(n(lhd|rhd)|p(silon|harpoon(left|right)|downarrow|uparrows|lus|arrow)|lcorner|rcorner)|jmath|Theta|Im|p(si|hi|i(tchfork)?|erp|ar(tial|allel)|r(ime|o(d|pto)|ec(sim|n(sim|approx)|curlyeq|eq|approx)?)|m)|e(t(h|a)|psilon|q(slant(less|gtr)|circ|uiv)|ll|xists|mptyset)|Omega|D(iamond|ownarrow|elta)|v(d(ots|ash)|ee(bar)?|Dash|ar(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|curly(vee|wedge)|t(heta|imes|riangle(left|right)?)|o(slash|circle|times|dot|plus|vee|wedge|lessthan|ast|greaterthan|minus|b(slash|ar))|p(hi|i|ropto)|epsilon|kappa|rho|bigcirc))|kappa|Up(silon|downarrow|arrow)|Join|f(orall|lat|a(t(s(emi|lash)|bslash)|llingdotseq)|rown)|P(si|hi|i)|w(p|edge|r)|l(hd|n(sim|eq(q)?|approx)|ceil|times|ightning|o(ng(left(arrow|rightarrow)|rightarrow|maps(to|from))|zenge|oparrow(left|right))|dot(s|p)|e(ss(sim|dot|eq(qgtr|gtr)|approx|gtr)|q(slant|q)?|ft(slice|harpoon(down|up)|threetimes|leftarrows|arrow(t(ail|riangle))?|right(squigarrow|harpoons|arrow(s|triangle|eq)?))|adsto)|vertneqq|floor|l(c(orner|eil)|floor|l|bracket)?|a(ngle|mbda)|rcorner|bag)|a(s(ymp|t)|ngle|pprox(eq)?|l(pha|eph)|rrownot|malg)|V(dash|vdash)|r(h(o|d)|ceil|times|i(singdotseq|ght(s(quigarrow|lice)|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(t(ail|riangle))?|rightarrows))|floor|angle|r(ceil|parenthesis|floor|bracket)|bag)|g(n(sim|eq(q)?|approx)|tr(sim|dot|eq(qless|less)|less|approx)|imel|eq(slant|q)?|vertneqq|amma|g(g)?)|Finv|xi|m(ho|i(nuso|d)|o(o|dels)|u(ltimap)?|p|e(asuredangle|rge)|aps(to|from(char)?))|b(i(n(dnasrepma|ampersand)|g(s(tar|qc(up|ap))|nplus|c(irc|u(p|rly(vee|wedge))|ap)|triangle(down|up)|interleave|o(times|dot|plus)|uplus|parallel|vee|wedge|box))|o(t|wtie|x(slash|circle|times|dot|plus|empty|ast|minus|b(slash|ox|ar)))|u(llet|mpeq)|e(cause|t(h|ween|a))|lack(square|triangle(down|left|right)?|lozenge)|a(ck(s(im(eq)?|lash)|prime|epsilon)|r(o|wedge))|bslash)|L(sh|ong(left(arrow|rightarrow)|rightarrow|maps(to|from))|eft(arrow|rightarrow)|leftarrow|ambda|bag)|Arrownot)\b</string>
26
+ <key>name</key>
27
+ <string>constant.character.math.tex</string>
28
+ </dict>
29
+ <dict>
30
+ <key>captures</key>
31
+ <dict>
32
+ <key>1</key>
33
+ <dict>
34
+ <key>name</key>
35
+ <string>punctuation.definition.constant.math.tex</string>
36
+ </dict>
37
+ </dict>
38
+ <key>match</key>
39
+ <string>(\\)(sum|prod|coprod|int|oint|bigcap|bigcup|bigsqcup|bigvee|bigwedge|bigodot|bigotimes|bogoplus|biguplus)\b</string>
40
+ <key>name</key>
41
+ <string>constant.character.math.tex</string>
42
+ </dict>
43
+ <dict>
44
+ <key>captures</key>
45
+ <dict>
46
+ <key>1</key>
47
+ <dict>
48
+ <key>name</key>
49
+ <string>punctuation.definition.constant.math.tex</string>
50
+ </dict>
51
+ </dict>
52
+ <key>match</key>
53
+ <string>(\\)(arccos|arcsin|arctan|arg|cos|cosh|cot|coth|csc|deg|det|dim|exp|gcd|hom|inf|ker|lg|lim|liminf|limsup|ln|log|max|min|pr|sec|sin|sinh|sup|tan|tanh)\b</string>
54
+ <key>name</key>
55
+ <string>constant.other.math.tex</string>
56
+ </dict>
57
+ <dict>
58
+ <key>begin</key>
59
+ <string>((\\)Sexpr)(\{)</string>
60
+ <key>beginCaptures</key>
61
+ <dict>
62
+ <key>1</key>
63
+ <dict>
64
+ <key>name</key>
65
+ <string>support.function.sexpr.math.tex</string>
66
+ </dict>
67
+ <key>2</key>
68
+ <dict>
69
+ <key>name</key>
70
+ <string>punctuation.definition.function.math.tex</string>
71
+ </dict>
72
+ <key>3</key>
73
+ <dict>
74
+ <key>name</key>
75
+ <string>punctuation.section.embedded.begin.math.tex</string>
76
+ </dict>
77
+ </dict>
78
+ <key>contentName</key>
79
+ <string>source.r.embedded.math.tex</string>
80
+ <key>end</key>
81
+ <string>(\})</string>
82
+ <key>endCaptures</key>
83
+ <dict>
84
+ <key>1</key>
85
+ <dict>
86
+ <key>name</key>
87
+ <string>punctuation.section.embedded.end.math.tex</string>
88
+ </dict>
89
+ </dict>
90
+ <key>name</key>
91
+ <string>meta.function.sexpr.math.tex</string>
92
+ <key>patterns</key>
93
+ <array>
94
+ <dict>
95
+ <key>include</key>
96
+ <string>source.r</string>
97
+ </dict>
98
+ </array>
99
+ </dict>
100
+ <dict>
101
+ <key>captures</key>
102
+ <dict>
103
+ <key>1</key>
104
+ <dict>
105
+ <key>name</key>
106
+ <string>punctuation.definition.constant.math.tex</string>
107
+ </dict>
108
+ </dict>
109
+ <key>match</key>
110
+ <string>(\\)([^a-zA-Z]|[A-Za-z]+)(?=\b|\}|\]|\^|\_)</string>
111
+ <key>name</key>
112
+ <string>constant.other.general.math.tex</string>
113
+ </dict>
114
+ <dict>
115
+ <key>match</key>
116
+ <string>(([0-9]*[\.][0-9]+)|[0-9]+)</string>
117
+ <key>name</key>
118
+ <string>constant.numeric.math.tex</string>
119
+ </dict>
120
+ <dict>
121
+ <key>match</key>
122
+ <string>«press a-z and space for greek letter»[a-zA-Z]*</string>
123
+ <key>name</key>
124
+ <string>meta.placeholder.greek.math.tex</string>
125
+ </dict>
126
+ </array>
127
+ <key>scopeName</key>
128
+ <string>text.tex.math</string>
129
+ <key>uuid</key>
130
+ <string>027D6AF4-E9D3-4250-82A1-8A42EEFE4F76</string>
131
+ </dict>
132
+ </plist>
@@ -0,0 +1,160 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>comment</key>
6
+ <string></string>
7
+ <key>fileTypes</key>
8
+ <array>
9
+ <string>lisp</string>
10
+ <string>cl</string>
11
+ <string>l</string>
12
+ <string>mud</string>
13
+ <string>el</string>
14
+ </array>
15
+ <key>foldingStartMarker</key>
16
+ <string>\(</string>
17
+ <key>foldingStopMarker</key>
18
+ <string>\)</string>
19
+ <key>keyEquivalent</key>
20
+ <string>^~L</string>
21
+ <key>name</key>
22
+ <string>Lisp</string>
23
+ <key>patterns</key>
24
+ <array>
25
+ <dict>
26
+ <key>captures</key>
27
+ <dict>
28
+ <key>1</key>
29
+ <dict>
30
+ <key>name</key>
31
+ <string>punctuation.definition.comment.lisp</string>
32
+ </dict>
33
+ </dict>
34
+ <key>match</key>
35
+ <string>(;).*$\n?</string>
36
+ <key>name</key>
37
+ <string>comment.line.semicolon.lisp</string>
38
+ </dict>
39
+ <dict>
40
+ <key>captures</key>
41
+ <dict>
42
+ <key>2</key>
43
+ <dict>
44
+ <key>name</key>
45
+ <string>storage.type.function-type.lisp</string>
46
+ </dict>
47
+ <key>4</key>
48
+ <dict>
49
+ <key>name</key>
50
+ <string>entity.name.function.lisp</string>
51
+ </dict>
52
+ </dict>
53
+ <key>match</key>
54
+ <string>(\b(?i:(defun|defmethod|defmacro))\b)(\s+)((\w|\-|\!|\?)*)</string>
55
+ <key>name</key>
56
+ <string>meta.function.lisp</string>
57
+ </dict>
58
+ <dict>
59
+ <key>captures</key>
60
+ <dict>
61
+ <key>1</key>
62
+ <dict>
63
+ <key>name</key>
64
+ <string>punctuation.definition.constant.lisp</string>
65
+ </dict>
66
+ </dict>
67
+ <key>match</key>
68
+ <string>(#)(\w|[\\+-=&lt;&gt;'"&amp;#])+</string>
69
+ <key>name</key>
70
+ <string>constant.character.lisp</string>
71
+ </dict>
72
+ <dict>
73
+ <key>captures</key>
74
+ <dict>
75
+ <key>1</key>
76
+ <dict>
77
+ <key>name</key>
78
+ <string>punctuation.definition.variable.lisp</string>
79
+ </dict>
80
+ <key>3</key>
81
+ <dict>
82
+ <key>name</key>
83
+ <string>punctuation.definition.variable.lisp</string>
84
+ </dict>
85
+ </dict>
86
+ <key>match</key>
87
+ <string>(\*)(\S*)(\*)</string>
88
+ <key>name</key>
89
+ <string>variable.other.global.lisp</string>
90
+ </dict>
91
+ <dict>
92
+ <key>match</key>
93
+ <string>\b(?i:case|do|let|loop|if|else|when)\b</string>
94
+ <key>name</key>
95
+ <string>keyword.control.lisp</string>
96
+ </dict>
97
+ <dict>
98
+ <key>match</key>
99
+ <string>\b(?i:eq|neq|and|or)\b</string>
100
+ <key>name</key>
101
+ <string>keyword.operator.lisp</string>
102
+ </dict>
103
+ <dict>
104
+ <key>match</key>
105
+ <string>\b(?i:null|nil)\b</string>
106
+ <key>name</key>
107
+ <string>constant.language.lisp</string>
108
+ </dict>
109
+ <dict>
110
+ <key>match</key>
111
+ <string>\b(?i:cons|car|cdr|cond|lambda|format|setq|setf|quote|eval|append|list|listp|memberp|t|load|progn)\b</string>
112
+ <key>name</key>
113
+ <string>support.function.lisp</string>
114
+ </dict>
115
+ <dict>
116
+ <key>match</key>
117
+ <string>\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b</string>
118
+ <key>name</key>
119
+ <string>constant.numeric.lisp</string>
120
+ </dict>
121
+ <dict>
122
+ <key>begin</key>
123
+ <string>"</string>
124
+ <key>beginCaptures</key>
125
+ <dict>
126
+ <key>0</key>
127
+ <dict>
128
+ <key>name</key>
129
+ <string>punctuation.definition.string.begin.lisp</string>
130
+ </dict>
131
+ </dict>
132
+ <key>end</key>
133
+ <string>"</string>
134
+ <key>endCaptures</key>
135
+ <dict>
136
+ <key>0</key>
137
+ <dict>
138
+ <key>name</key>
139
+ <string>punctuation.definition.string.end.lisp</string>
140
+ </dict>
141
+ </dict>
142
+ <key>name</key>
143
+ <string>string.quoted.double.lisp</string>
144
+ <key>patterns</key>
145
+ <array>
146
+ <dict>
147
+ <key>match</key>
148
+ <string>\\.</string>
149
+ <key>name</key>
150
+ <string>constant.character.escape.lisp</string>
151
+ </dict>
152
+ </array>
153
+ </dict>
154
+ </array>
155
+ <key>scopeName</key>
156
+ <string>source.lisp</string>
157
+ <key>uuid</key>
158
+ <string>00D451C9-6B1D-11D9-8DFA-000D93589AF6</string>
159
+ </dict>
160
+ </plist>
@@ -0,0 +1,103 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>fileTypes</key>
6
+ <array>
7
+ <string>GNUmakefile</string>
8
+ <string>makefile</string>
9
+ <string>Makefile</string>
10
+ <string>OCamlMakefile</string>
11
+ </array>
12
+ <key>name</key>
13
+ <string>Makefile</string>
14
+ <key>patterns</key>
15
+ <array>
16
+ <dict>
17
+ <key>begin</key>
18
+ <string>^(\w|[-_])+\s*\??=</string>
19
+ <key>end</key>
20
+ <string>$</string>
21
+ <key>name</key>
22
+ <string>variable.other.makefile</string>
23
+ <key>patterns</key>
24
+ <array>
25
+ <dict>
26
+ <key>match</key>
27
+ <string>\\\n</string>
28
+ </dict>
29
+ </array>
30
+ </dict>
31
+ <dict>
32
+ <key>begin</key>
33
+ <string>`</string>
34
+ <key>end</key>
35
+ <string>`</string>
36
+ <key>name</key>
37
+ <string>string.interpolated.backtick.makefile</string>
38
+ <key>patterns</key>
39
+ <array>
40
+ <dict>
41
+ <key>include</key>
42
+ <string>source.shell</string>
43
+ </dict>
44
+ </array>
45
+ </dict>
46
+ <dict>
47
+ <key>begin</key>
48
+ <string>#</string>
49
+ <key>beginCaptures</key>
50
+ <dict>
51
+ <key>0</key>
52
+ <dict>
53
+ <key>name</key>
54
+ <string>punctuation.definition.comment.makefile</string>
55
+ </dict>
56
+ </dict>
57
+ <key>end</key>
58
+ <string>$\n?</string>
59
+ <key>name</key>
60
+ <string>comment.line.number-sign.makefile</string>
61
+ <key>patterns</key>
62
+ <array>
63
+ <dict>
64
+ <key>match</key>
65
+ <string>(?&lt;!\\)\\$\n</string>
66
+ <key>name</key>
67
+ <string>punctuation.separator.continuation.makefile</string>
68
+ </dict>
69
+ </array>
70
+ </dict>
71
+ <dict>
72
+ <key>match</key>
73
+ <string>^\t\s*$</string>
74
+ <key>name</key>
75
+ <string>invalid.deprecated.opaque-rule-continuation.makefile</string>
76
+ </dict>
77
+ <dict>
78
+ <key>match</key>
79
+ <string>^(\s*)\b(\-??include|ifeq|ifneq|ifdef|ifndef|else|endif|vpath|export|unexport|define|endef|override)\b</string>
80
+ <key>name</key>
81
+ <string>keyword.control.makefile</string>
82
+ </dict>
83
+ <dict>
84
+ <key>captures</key>
85
+ <dict>
86
+ <key>1</key>
87
+ <dict>
88
+ <key>name</key>
89
+ <string>entity.name.function.makefile</string>
90
+ </dict>
91
+ </dict>
92
+ <key>match</key>
93
+ <string>^([^\t ]+:(?!\=))\s*.*</string>
94
+ <key>name</key>
95
+ <string>meta.function.makefile</string>
96
+ </dict>
97
+ </array>
98
+ <key>scopeName</key>
99
+ <string>source.makefile</string>
100
+ <key>uuid</key>
101
+ <string>FF1825E8-6B1C-11D9-B883-000D93589AF6</string>
102
+ </dict>
103
+ </plist>
@@ -0,0 +1,1192 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>fileTypes</key>
6
+ <array>
7
+ <string>mdown</string>
8
+ <string>markdown</string>
9
+ <string>markdn</string>
10
+ <string>md</string>
11
+ </array>
12
+ <key>foldingStartMarker</key>
13
+ <string>(?x)
14
+ (&lt;(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?&gt;
15
+ |&lt;!--(?!.*--&gt;)
16
+ |\{\s*($|\?&gt;\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
17
+ )</string>
18
+ <key>foldingStopMarker</key>
19
+ <string>(?x)
20
+ (&lt;/(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)&gt;
21
+ |^\s*--&gt;
22
+ |(^|\s)\}
23
+ )</string>
24
+ <key>keyEquivalent</key>
25
+ <string>^~M</string>
26
+ <key>name</key>
27
+ <string>Markdown</string>
28
+ <key>patterns</key>
29
+ <array>
30
+ <dict>
31
+ <key>begin</key>
32
+ <string>(?x)^
33
+ (?= [ ]{,3}&gt;.
34
+ | ([ ]{4}|\t)(?!$)
35
+ | [#]{1,6}\s*+
36
+ | [ ]{,3}(?&lt;marker&gt;[-*_])([ ]{,2}\k&lt;marker&gt;){2,}[ \t]*+$
37
+ )</string>
38
+ <key>comment</key>
39
+ <string>
40
+ We could also use an empty end match and set
41
+ applyEndPatternLast, but then we must be sure that the begin
42
+ pattern will only match stuff matched by the sub-patterns.
43
+ </string>
44
+ <key>end</key>
45
+ <string>(?x)^
46
+ (?! [ ]{,3}&gt;.
47
+ | ([ ]{4}|\t)
48
+ | [#]{1,6}\s*+
49
+ | [ ]{,3}(?&lt;marker&gt;[-*_])([ ]{,2}\k&lt;marker&gt;){2,}[ \t]*+$
50
+ )</string>
51
+ <key>name</key>
52
+ <string>meta.block-level.markdown</string>
53
+ <key>patterns</key>
54
+ <array>
55
+ <dict>
56
+ <key>include</key>
57
+ <string>#block_quote</string>
58
+ </dict>
59
+ <dict>
60
+ <key>include</key>
61
+ <string>#block_raw</string>
62
+ </dict>
63
+ <dict>
64
+ <key>include</key>
65
+ <string>#heading</string>
66
+ </dict>
67
+ <dict>
68
+ <key>include</key>
69
+ <string>#separator</string>
70
+ </dict>
71
+ </array>
72
+ </dict>
73
+ <dict>
74
+ <key>begin</key>
75
+ <string>^[ ]{0,3}([*+-])(?=\s)</string>
76
+ <key>captures</key>
77
+ <dict>
78
+ <key>1</key>
79
+ <dict>
80
+ <key>name</key>
81
+ <string>punctuation.definition.list_item.markdown</string>
82
+ </dict>
83
+ </dict>
84
+ <key>end</key>
85
+ <string>^(?=\S)</string>
86
+ <key>name</key>
87
+ <string>markup.list.unnumbered.markdown</string>
88
+ <key>patterns</key>
89
+ <array>
90
+ <dict>
91
+ <key>include</key>
92
+ <string>#list-paragraph</string>
93
+ </dict>
94
+ </array>
95
+ </dict>
96
+ <dict>
97
+ <key>begin</key>
98
+ <string>^[ ]{0,3}([0-9]+\.)(?=\s)</string>
99
+ <key>captures</key>
100
+ <dict>
101
+ <key>1</key>
102
+ <dict>
103
+ <key>name</key>
104
+ <string>punctuation.definition.list_item.markdown</string>
105
+ </dict>
106
+ </dict>
107
+ <key>end</key>
108
+ <string>^(?=\S)</string>
109
+ <key>name</key>
110
+ <string>markup.list.numbered.markdown</string>
111
+ <key>patterns</key>
112
+ <array>
113
+ <dict>
114
+ <key>include</key>
115
+ <string>#list-paragraph</string>
116
+ </dict>
117
+ </array>
118
+ </dict>
119
+ <dict>
120
+ <key>begin</key>
121
+ <string>^(?=&lt;(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b)(?!.*?&lt;/\1&gt;)</string>
122
+ <key>comment</key>
123
+ <string>
124
+ Markdown formatting is disabled inside block-level tags.
125
+ </string>
126
+ <key>end</key>
127
+ <string>(?&lt;=^&lt;/\1&gt;$\n)</string>
128
+ <key>name</key>
129
+ <string>meta.disable-markdown</string>
130
+ <key>patterns</key>
131
+ <array>
132
+ <dict>
133
+ <key>include</key>
134
+ <string>text.html.basic</string>
135
+ </dict>
136
+ </array>
137
+ </dict>
138
+ <dict>
139
+ <key>begin</key>
140
+ <string>^(?=&lt;(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b)</string>
141
+ <key>comment</key>
142
+ <string>Same rule but for one line disables.</string>
143
+ <key>end</key>
144
+ <string>$\n?</string>
145
+ <key>name</key>
146
+ <string>meta.disable-markdown</string>
147
+ <key>patterns</key>
148
+ <array>
149
+ <dict>
150
+ <key>include</key>
151
+ <string>text.html.basic</string>
152
+ </dict>
153
+ </array>
154
+ </dict>
155
+ <dict>
156
+ <key>captures</key>
157
+ <dict>
158
+ <key>1</key>
159
+ <dict>
160
+ <key>name</key>
161
+ <string>punctuation.definition.constant.markdown</string>
162
+ </dict>
163
+ <key>10</key>
164
+ <dict>
165
+ <key>name</key>
166
+ <string>punctuation.definition.string.end.markdown</string>
167
+ </dict>
168
+ <key>11</key>
169
+ <dict>
170
+ <key>name</key>
171
+ <string>string.other.link.description.title.markdown</string>
172
+ </dict>
173
+ <key>12</key>
174
+ <dict>
175
+ <key>name</key>
176
+ <string>punctuation.definition.string.begin.markdown</string>
177
+ </dict>
178
+ <key>13</key>
179
+ <dict>
180
+ <key>name</key>
181
+ <string>punctuation.definition.string.end.markdown</string>
182
+ </dict>
183
+ <key>2</key>
184
+ <dict>
185
+ <key>name</key>
186
+ <string>constant.other.reference.link.markdown</string>
187
+ </dict>
188
+ <key>3</key>
189
+ <dict>
190
+ <key>name</key>
191
+ <string>punctuation.definition.constant.markdown</string>
192
+ </dict>
193
+ <key>4</key>
194
+ <dict>
195
+ <key>name</key>
196
+ <string>punctuation.separator.key-value.markdown</string>
197
+ </dict>
198
+ <key>5</key>
199
+ <dict>
200
+ <key>name</key>
201
+ <string>punctuation.definition.link.markdown</string>
202
+ </dict>
203
+ <key>6</key>
204
+ <dict>
205
+ <key>name</key>
206
+ <string>markup.underline.link.markdown</string>
207
+ </dict>
208
+ <key>7</key>
209
+ <dict>
210
+ <key>name</key>
211
+ <string>punctuation.definition.link.markdown</string>
212
+ </dict>
213
+ <key>8</key>
214
+ <dict>
215
+ <key>name</key>
216
+ <string>string.other.link.description.title.markdown</string>
217
+ </dict>
218
+ <key>9</key>
219
+ <dict>
220
+ <key>name</key>
221
+ <string>punctuation.definition.string.begin.markdown</string>
222
+ </dict>
223
+ </dict>
224
+ <key>match</key>
225
+ <string>(?x:
226
+ \s* # Leading whitespace
227
+ (\[)(.+?)(\])(:) # Reference name
228
+ [ \t]* # Optional whitespace
229
+ (&lt;?)(\S+?)(&gt;?) # The url
230
+ [ \t]* # Optional whitespace
231
+ (?:
232
+ ((\().+?(\))) # Match title in quotes…
233
+ | ((").+?(")) # or in parens.
234
+ )? # Title is optional
235
+ \s* # Optional whitespace
236
+ $
237
+ )</string>
238
+ <key>name</key>
239
+ <string>meta.link.reference.def.markdown</string>
240
+ </dict>
241
+ <dict>
242
+ <key>begin</key>
243
+ <string>^(?=\S)(?![=-]{3,}(?=$))</string>
244
+ <key>end</key>
245
+ <string>^(?:\s*$|(?=[ ]{,3}&gt;.))|(?=[ \t]*\n)(?&lt;=^===|^====|=====|^---|^----|-----)[ \t]*\n|(?=^#)</string>
246
+ <key>name</key>
247
+ <string>meta.paragraph.markdown</string>
248
+ <key>patterns</key>
249
+ <array>
250
+ <dict>
251
+ <key>include</key>
252
+ <string>#inline</string>
253
+ </dict>
254
+ <dict>
255
+ <key>include</key>
256
+ <string>text.html.basic</string>
257
+ </dict>
258
+ <dict>
259
+ <key>captures</key>
260
+ <dict>
261
+ <key>1</key>
262
+ <dict>
263
+ <key>name</key>
264
+ <string>punctuation.definition.heading.markdown</string>
265
+ </dict>
266
+ </dict>
267
+ <key>match</key>
268
+ <string>^(={3,})(?=[ \t]*$)</string>
269
+ <key>name</key>
270
+ <string>markup.heading.1.markdown</string>
271
+ </dict>
272
+ <dict>
273
+ <key>captures</key>
274
+ <dict>
275
+ <key>1</key>
276
+ <dict>
277
+ <key>name</key>
278
+ <string>punctuation.definition.heading.markdown</string>
279
+ </dict>
280
+ </dict>
281
+ <key>match</key>
282
+ <string>^(-{3,})(?=[ \t]*$)</string>
283
+ <key>name</key>
284
+ <string>markup.heading.2.markdown</string>
285
+ </dict>
286
+ </array>
287
+ </dict>
288
+ </array>
289
+ <key>repository</key>
290
+ <dict>
291
+ <key>ampersand</key>
292
+ <dict>
293
+ <key>comment</key>
294
+ <string>
295
+ Markdown will convert this for us. We match it so that the
296
+ HTML grammar will not mark it up as invalid.
297
+ </string>
298
+ <key>match</key>
299
+ <string>&amp;(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)</string>
300
+ <key>name</key>
301
+ <string>meta.other.valid-ampersand.markdown</string>
302
+ </dict>
303
+ <key>block_quote</key>
304
+ <dict>
305
+ <key>begin</key>
306
+ <string>\G[ ]{,3}(&gt;)(?!$)[ ]?</string>
307
+ <key>beginCaptures</key>
308
+ <dict>
309
+ <key>1</key>
310
+ <dict>
311
+ <key>name</key>
312
+ <string>punctuation.definition.blockquote.markdown</string>
313
+ </dict>
314
+ </dict>
315
+ <key>comment</key>
316
+ <string>
317
+ We terminate the block quote when seeing an empty line, a
318
+ separator or a line with leading &gt; characters. The latter is
319
+ to “reset” the quote level for quoted lines.
320
+ </string>
321
+ <key>end</key>
322
+ <string>(?x)^
323
+ (?= \s*$
324
+ | [ ]{,3}(?&lt;marker&gt;[-*_])([ ]{,2}\k&lt;marker&gt;){2,}[ \t]*+$
325
+ | [ ]{,3}&gt;.
326
+ )</string>
327
+ <key>name</key>
328
+ <string>markup.quote.markdown</string>
329
+ <key>patterns</key>
330
+ <array>
331
+ <dict>
332
+ <key>begin</key>
333
+ <string>(?x)\G
334
+ (?= [ ]{,3}&gt;.
335
+ )</string>
336
+ <key>end</key>
337
+ <string>^</string>
338
+ <key>patterns</key>
339
+ <array>
340
+ <dict>
341
+ <key>include</key>
342
+ <string>#block_quote</string>
343
+ </dict>
344
+ </array>
345
+ </dict>
346
+ <dict>
347
+ <key>applyEndPatternLast</key>
348
+ <integer>1</integer>
349
+ <key>begin</key>
350
+ <string>(?x)\G
351
+ (?= ([ ]{4}|\t)
352
+ | [#]{1,6}\s*+
353
+ | [ ]{,3}(?&lt;marker&gt;[-*_])([ ]{,2}\k&lt;marker&gt;){2,}[ \t]*+$
354
+ )</string>
355
+ <key>end</key>
356
+ <string>^</string>
357
+ <key>patterns</key>
358
+ <array>
359
+ <dict>
360
+ <key>include</key>
361
+ <string>#block_raw</string>
362
+ </dict>
363
+ <dict>
364
+ <key>include</key>
365
+ <string>#heading</string>
366
+ </dict>
367
+ <dict>
368
+ <key>include</key>
369
+ <string>#separator</string>
370
+ </dict>
371
+ </array>
372
+ </dict>
373
+ <dict>
374
+ <key>begin</key>
375
+ <string>(?x)\G
376
+ (?! $
377
+ | [ ]{,3}&gt;.
378
+ | ([ ]{4}|\t)
379
+ | [#]{1,6}\s*+
380
+ | [ ]{,3}(?&lt;marker&gt;[-*_])([ ]{,2}\k&lt;marker&gt;){2,}[ \t]*+$
381
+ )</string>
382
+ <key>end</key>
383
+ <string>$|(?&lt;=\n)</string>
384
+ <key>patterns</key>
385
+ <array>
386
+ <dict>
387
+ <key>include</key>
388
+ <string>#inline</string>
389
+ </dict>
390
+ </array>
391
+ </dict>
392
+ </array>
393
+ </dict>
394
+ <key>block_raw</key>
395
+ <dict>
396
+ <key>match</key>
397
+ <string>\G([ ]{4}|\t).*$\n?</string>
398
+ <key>name</key>
399
+ <string>markup.raw.block.markdown</string>
400
+ </dict>
401
+ <key>bold</key>
402
+ <dict>
403
+ <key>begin</key>
404
+ <string>(?x)
405
+ (\*\*|__)(?=\S) # Open
406
+ (?=
407
+ (
408
+ &lt;[^&gt;]*+&gt; # HTML tags
409
+ | (?&lt;raw&gt;`+)([^`]|(?!(?&lt;!`)\k&lt;raw&gt;(?!`))`)*+\k&lt;raw&gt;
410
+ # Raw
411
+ | \\[\\`*_{}\[\]()#.!+\-&gt;]?+ # Escapes
412
+ | \[
413
+ (
414
+ (?&lt;square&gt; # Named group
415
+ [^\[\]\\] # Match most chars
416
+ | \\. # Escaped chars
417
+ | \[ \g&lt;square&gt;*+ \] # Nested brackets
418
+ )*+
419
+ \]
420
+ (
421
+ ( # Reference Link
422
+ [ ]? # Optional space
423
+ \[[^\]]*+\] # Ref name
424
+ )
425
+ | ( # Inline Link
426
+ \( # Opening paren
427
+ [ \t]*+ # Optional whtiespace
428
+ &lt;?(.*?)&gt;? # URL
429
+ [ \t]*+ # Optional whtiespace
430
+ ( # Optional Title
431
+ (?&lt;title&gt;['"])
432
+ (.*?)
433
+ \k&lt;title&gt;
434
+ )?
435
+ \)
436
+ )
437
+ )
438
+ )
439
+ | (?!(?&lt;=\S)\1). # Everything besides
440
+ # style closer
441
+ )++
442
+ (?&lt;=\S)\1 # Close
443
+ )
444
+ </string>
445
+ <key>captures</key>
446
+ <dict>
447
+ <key>1</key>
448
+ <dict>
449
+ <key>name</key>
450
+ <string>punctuation.definition.bold.markdown</string>
451
+ </dict>
452
+ </dict>
453
+ <key>end</key>
454
+ <string>(?&lt;=\S)(\1)</string>
455
+ <key>name</key>
456
+ <string>markup.bold.markdown</string>
457
+ <key>patterns</key>
458
+ <array>
459
+ <dict>
460
+ <key>applyEndPatternLast</key>
461
+ <integer>1</integer>
462
+ <key>begin</key>
463
+ <string>(?=&lt;[^&gt;]*?&gt;)</string>
464
+ <key>end</key>
465
+ <string>(?&lt;=&gt;)</string>
466
+ <key>patterns</key>
467
+ <array>
468
+ <dict>
469
+ <key>include</key>
470
+ <string>text.html.basic</string>
471
+ </dict>
472
+ </array>
473
+ </dict>
474
+ <dict>
475
+ <key>include</key>
476
+ <string>#escape</string>
477
+ </dict>
478
+ <dict>
479
+ <key>include</key>
480
+ <string>#ampersand</string>
481
+ </dict>
482
+ <dict>
483
+ <key>include</key>
484
+ <string>#bracket</string>
485
+ </dict>
486
+ <dict>
487
+ <key>include</key>
488
+ <string>#raw</string>
489
+ </dict>
490
+ <dict>
491
+ <key>include</key>
492
+ <string>#italic</string>
493
+ </dict>
494
+ <dict>
495
+ <key>include</key>
496
+ <string>#image-inline</string>
497
+ </dict>
498
+ <dict>
499
+ <key>include</key>
500
+ <string>#link-inline</string>
501
+ </dict>
502
+ <dict>
503
+ <key>include</key>
504
+ <string>#link-inet</string>
505
+ </dict>
506
+ <dict>
507
+ <key>include</key>
508
+ <string>#link-email</string>
509
+ </dict>
510
+ <dict>
511
+ <key>include</key>
512
+ <string>#image-ref</string>
513
+ </dict>
514
+ <dict>
515
+ <key>include</key>
516
+ <string>#link-ref-literal</string>
517
+ </dict>
518
+ <dict>
519
+ <key>include</key>
520
+ <string>#link-ref</string>
521
+ </dict>
522
+ </array>
523
+ </dict>
524
+ <key>bracket</key>
525
+ <dict>
526
+ <key>comment</key>
527
+ <string>
528
+ Markdown will convert this for us. We match it so that the
529
+ HTML grammar will not mark it up as invalid.
530
+ </string>
531
+ <key>match</key>
532
+ <string>&lt;(?![a-z/?\$!])</string>
533
+ <key>name</key>
534
+ <string>meta.other.valid-bracket.markdown</string>
535
+ </dict>
536
+ <key>escape</key>
537
+ <dict>
538
+ <key>match</key>
539
+ <string>\\[-`*_#+.!(){}\[\]\\&gt;]</string>
540
+ <key>name</key>
541
+ <string>constant.character.escape.markdown</string>
542
+ </dict>
543
+ <key>heading</key>
544
+ <dict>
545
+ <key>begin</key>
546
+ <string>\G(#{1,6})(?!#)\s*(?=\S)</string>
547
+ <key>captures</key>
548
+ <dict>
549
+ <key>1</key>
550
+ <dict>
551
+ <key>name</key>
552
+ <string>punctuation.definition.heading.markdown</string>
553
+ </dict>
554
+ </dict>
555
+ <key>contentName</key>
556
+ <string>entity.name.section.markdown</string>
557
+ <key>end</key>
558
+ <string>\s*(#*)$\n?</string>
559
+ <key>name</key>
560
+ <string>markup.heading.markdown</string>
561
+ <key>patterns</key>
562
+ <array>
563
+ <dict>
564
+ <key>include</key>
565
+ <string>#inline</string>
566
+ </dict>
567
+ </array>
568
+ </dict>
569
+ <key>image-inline</key>
570
+ <dict>
571
+ <key>captures</key>
572
+ <dict>
573
+ <key>1</key>
574
+ <dict>
575
+ <key>name</key>
576
+ <string>punctuation.definition.string.begin.markdown</string>
577
+ </dict>
578
+ <key>10</key>
579
+ <dict>
580
+ <key>name</key>
581
+ <string>string.other.link.description.title.markdown</string>
582
+ </dict>
583
+ <key>11</key>
584
+ <dict>
585
+ <key>name</key>
586
+ <string>punctuation.definition.string.markdown</string>
587
+ </dict>
588
+ <key>12</key>
589
+ <dict>
590
+ <key>name</key>
591
+ <string>punctuation.definition.string.markdown</string>
592
+ </dict>
593
+ <key>13</key>
594
+ <dict>
595
+ <key>name</key>
596
+ <string>string.other.link.description.title.markdown</string>
597
+ </dict>
598
+ <key>14</key>
599
+ <dict>
600
+ <key>name</key>
601
+ <string>punctuation.definition.string.markdown</string>
602
+ </dict>
603
+ <key>15</key>
604
+ <dict>
605
+ <key>name</key>
606
+ <string>punctuation.definition.string.markdown</string>
607
+ </dict>
608
+ <key>16</key>
609
+ <dict>
610
+ <key>name</key>
611
+ <string>punctuation.definition.metadata.markdown</string>
612
+ </dict>
613
+ <key>2</key>
614
+ <dict>
615
+ <key>name</key>
616
+ <string>string.other.link.description.markdown</string>
617
+ </dict>
618
+ <key>3</key>
619
+ <dict>
620
+ <key>name</key>
621
+ <string>punctuation.definition.string.end.markdown</string>
622
+ </dict>
623
+ <key>5</key>
624
+ <dict>
625
+ <key>name</key>
626
+ <string>invalid.illegal.whitespace.markdown</string>
627
+ </dict>
628
+ <key>6</key>
629
+ <dict>
630
+ <key>name</key>
631
+ <string>punctuation.definition.metadata.markdown</string>
632
+ </dict>
633
+ <key>7</key>
634
+ <dict>
635
+ <key>name</key>
636
+ <string>punctuation.definition.link.markdown</string>
637
+ </dict>
638
+ <key>8</key>
639
+ <dict>
640
+ <key>name</key>
641
+ <string>markup.underline.link.image.markdown</string>
642
+ </dict>
643
+ <key>9</key>
644
+ <dict>
645
+ <key>name</key>
646
+ <string>punctuation.definition.link.markdown</string>
647
+ </dict>
648
+ </dict>
649
+ <key>match</key>
650
+ <string>(?x:
651
+ \! # Images start with !
652
+ (\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])
653
+ # Match the link text.
654
+ ([ ])? # Space not allowed
655
+ (\() # Opening paren for url
656
+ (&lt;?)(\S+?)(&gt;?) # The url
657
+ [ \t]* # Optional whitespace
658
+ (?:
659
+ ((\().+?(\))) # Match title in parens…
660
+ | ((").+?(")) # or in quotes.
661
+ )? # Title is optional
662
+ \s* # Optional whitespace
663
+ (\))
664
+ )</string>
665
+ <key>name</key>
666
+ <string>meta.image.inline.markdown</string>
667
+ </dict>
668
+ <key>image-ref</key>
669
+ <dict>
670
+ <key>captures</key>
671
+ <dict>
672
+ <key>1</key>
673
+ <dict>
674
+ <key>name</key>
675
+ <string>punctuation.definition.string.begin.markdown</string>
676
+ </dict>
677
+ <key>2</key>
678
+ <dict>
679
+ <key>name</key>
680
+ <string>string.other.link.description.markdown</string>
681
+ </dict>
682
+ <key>4</key>
683
+ <dict>
684
+ <key>name</key>
685
+ <string>punctuation.definition.string.begin.markdown</string>
686
+ </dict>
687
+ <key>5</key>
688
+ <dict>
689
+ <key>name</key>
690
+ <string>punctuation.definition.constant.markdown</string>
691
+ </dict>
692
+ <key>6</key>
693
+ <dict>
694
+ <key>name</key>
695
+ <string>constant.other.reference.link.markdown</string>
696
+ </dict>
697
+ <key>7</key>
698
+ <dict>
699
+ <key>name</key>
700
+ <string>punctuation.definition.constant.markdown</string>
701
+ </dict>
702
+ </dict>
703
+ <key>match</key>
704
+ <string>\!(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])[ ]?(\[)(.*?)(\])</string>
705
+ <key>name</key>
706
+ <string>meta.image.reference.markdown</string>
707
+ </dict>
708
+ <key>inline</key>
709
+ <dict>
710
+ <key>patterns</key>
711
+ <array>
712
+ <dict>
713
+ <key>include</key>
714
+ <string>#escape</string>
715
+ </dict>
716
+ <dict>
717
+ <key>include</key>
718
+ <string>#ampersand</string>
719
+ </dict>
720
+ <dict>
721
+ <key>include</key>
722
+ <string>#bracket</string>
723
+ </dict>
724
+ <dict>
725
+ <key>include</key>
726
+ <string>#raw</string>
727
+ </dict>
728
+ <dict>
729
+ <key>include</key>
730
+ <string>#bold</string>
731
+ </dict>
732
+ <dict>
733
+ <key>include</key>
734
+ <string>#italic</string>
735
+ </dict>
736
+ <dict>
737
+ <key>include</key>
738
+ <string>#line-break</string>
739
+ </dict>
740
+ <dict>
741
+ <key>include</key>
742
+ <string>#image-inline</string>
743
+ </dict>
744
+ <dict>
745
+ <key>include</key>
746
+ <string>#link-inline</string>
747
+ </dict>
748
+ <dict>
749
+ <key>include</key>
750
+ <string>#link-inet</string>
751
+ </dict>
752
+ <dict>
753
+ <key>include</key>
754
+ <string>#link-email</string>
755
+ </dict>
756
+ <dict>
757
+ <key>include</key>
758
+ <string>#image-ref</string>
759
+ </dict>
760
+ <dict>
761
+ <key>include</key>
762
+ <string>#link-ref-literal</string>
763
+ </dict>
764
+ <dict>
765
+ <key>include</key>
766
+ <string>#link-ref</string>
767
+ </dict>
768
+ </array>
769
+ </dict>
770
+ <key>italic</key>
771
+ <dict>
772
+ <key>begin</key>
773
+ <string>(?x)
774
+ (\*|_)(?=\S) # Open
775
+ (?=
776
+ (
777
+ &lt;[^&gt;]*+&gt; # HTML tags
778
+ | (?&lt;raw&gt;`+)([^`]|(?!(?&lt;!`)\k&lt;raw&gt;(?!`))`)*+\k&lt;raw&gt;
779
+ # Raw
780
+ | \\[\\`*_{}\[\]()#.!+\-&gt;]?+ # Escapes
781
+ | \[
782
+ (
783
+ (?&lt;square&gt; # Named group
784
+ [^\[\]\\] # Match most chars
785
+ | \\. # Escaped chars
786
+ | \[ \g&lt;square&gt;*+ \] # Nested brackets
787
+ )*+
788
+ \]
789
+ (
790
+ ( # Reference Link
791
+ [ ]? # Optional space
792
+ \[[^\]]*+\] # Ref name
793
+ )
794
+ | ( # Inline Link
795
+ \( # Opening paren
796
+ [ \t]*+ # Optional whtiespace
797
+ &lt;?(.*?)&gt;? # URL
798
+ [ \t]*+ # Optional whtiespace
799
+ ( # Optional Title
800
+ (?&lt;title&gt;['"])
801
+ (.*?)
802
+ \k&lt;title&gt;
803
+ )?
804
+ \)
805
+ )
806
+ )
807
+ )
808
+ | \1\1 # Must be bold closer
809
+ | (?!(?&lt;=\S)\1). # Everything besides
810
+ # style closer
811
+ )++
812
+ (?&lt;=\S)\1 # Close
813
+ )
814
+ </string>
815
+ <key>captures</key>
816
+ <dict>
817
+ <key>1</key>
818
+ <dict>
819
+ <key>name</key>
820
+ <string>punctuation.definition.italic.markdown</string>
821
+ </dict>
822
+ </dict>
823
+ <key>end</key>
824
+ <string>(?&lt;=\S)(\1)((?!\1)|(?=\1\1))</string>
825
+ <key>name</key>
826
+ <string>markup.italic.markdown</string>
827
+ <key>patterns</key>
828
+ <array>
829
+ <dict>
830
+ <key>applyEndPatternLast</key>
831
+ <integer>1</integer>
832
+ <key>begin</key>
833
+ <string>(?=&lt;[^&gt;]*?&gt;)</string>
834
+ <key>end</key>
835
+ <string>(?&lt;=&gt;)</string>
836
+ <key>patterns</key>
837
+ <array>
838
+ <dict>
839
+ <key>include</key>
840
+ <string>text.html.basic</string>
841
+ </dict>
842
+ </array>
843
+ </dict>
844
+ <dict>
845
+ <key>include</key>
846
+ <string>#escape</string>
847
+ </dict>
848
+ <dict>
849
+ <key>include</key>
850
+ <string>#ampersand</string>
851
+ </dict>
852
+ <dict>
853
+ <key>include</key>
854
+ <string>#bracket</string>
855
+ </dict>
856
+ <dict>
857
+ <key>include</key>
858
+ <string>#raw</string>
859
+ </dict>
860
+ <dict>
861
+ <key>include</key>
862
+ <string>#bold</string>
863
+ </dict>
864
+ <dict>
865
+ <key>include</key>
866
+ <string>#image-inline</string>
867
+ </dict>
868
+ <dict>
869
+ <key>include</key>
870
+ <string>#link-inline</string>
871
+ </dict>
872
+ <dict>
873
+ <key>include</key>
874
+ <string>#link-inet</string>
875
+ </dict>
876
+ <dict>
877
+ <key>include</key>
878
+ <string>#link-email</string>
879
+ </dict>
880
+ <dict>
881
+ <key>include</key>
882
+ <string>#image-ref</string>
883
+ </dict>
884
+ <dict>
885
+ <key>include</key>
886
+ <string>#link-ref-literal</string>
887
+ </dict>
888
+ <dict>
889
+ <key>include</key>
890
+ <string>#link-ref</string>
891
+ </dict>
892
+ </array>
893
+ </dict>
894
+ <key>line-break</key>
895
+ <dict>
896
+ <key>match</key>
897
+ <string> {2,}$</string>
898
+ <key>name</key>
899
+ <string>meta.dummy.line-break</string>
900
+ </dict>
901
+ <key>link-email</key>
902
+ <dict>
903
+ <key>captures</key>
904
+ <dict>
905
+ <key>1</key>
906
+ <dict>
907
+ <key>name</key>
908
+ <string>punctuation.definition.link.markdown</string>
909
+ </dict>
910
+ <key>2</key>
911
+ <dict>
912
+ <key>name</key>
913
+ <string>markup.underline.link.markdown</string>
914
+ </dict>
915
+ <key>4</key>
916
+ <dict>
917
+ <key>name</key>
918
+ <string>punctuation.definition.link.markdown</string>
919
+ </dict>
920
+ </dict>
921
+ <key>match</key>
922
+ <string>(&lt;)((?:mailto:)?[-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(&gt;)</string>
923
+ <key>name</key>
924
+ <string>meta.link.email.lt-gt.markdown</string>
925
+ </dict>
926
+ <key>link-inet</key>
927
+ <dict>
928
+ <key>captures</key>
929
+ <dict>
930
+ <key>1</key>
931
+ <dict>
932
+ <key>name</key>
933
+ <string>punctuation.definition.link.markdown</string>
934
+ </dict>
935
+ <key>2</key>
936
+ <dict>
937
+ <key>name</key>
938
+ <string>markup.underline.link.markdown</string>
939
+ </dict>
940
+ <key>3</key>
941
+ <dict>
942
+ <key>name</key>
943
+ <string>punctuation.definition.link.markdown</string>
944
+ </dict>
945
+ </dict>
946
+ <key>match</key>
947
+ <string>(&lt;)((?:https?|ftp)://.*?)(&gt;)</string>
948
+ <key>name</key>
949
+ <string>meta.link.inet.markdown</string>
950
+ </dict>
951
+ <key>link-inline</key>
952
+ <dict>
953
+ <key>captures</key>
954
+ <dict>
955
+ <key>1</key>
956
+ <dict>
957
+ <key>name</key>
958
+ <string>punctuation.definition.string.begin.markdown</string>
959
+ </dict>
960
+ <key>10</key>
961
+ <dict>
962
+ <key>name</key>
963
+ <string>string.other.link.description.title.markdown</string>
964
+ </dict>
965
+ <key>11</key>
966
+ <dict>
967
+ <key>name</key>
968
+ <string>punctuation.definition.string.begin.markdown</string>
969
+ </dict>
970
+ <key>12</key>
971
+ <dict>
972
+ <key>name</key>
973
+ <string>punctuation.definition.string.end.markdown</string>
974
+ </dict>
975
+ <key>13</key>
976
+ <dict>
977
+ <key>name</key>
978
+ <string>string.other.link.description.title.markdown</string>
979
+ </dict>
980
+ <key>14</key>
981
+ <dict>
982
+ <key>name</key>
983
+ <string>punctuation.definition.string.begin.markdown</string>
984
+ </dict>
985
+ <key>15</key>
986
+ <dict>
987
+ <key>name</key>
988
+ <string>punctuation.definition.string.end.markdown</string>
989
+ </dict>
990
+ <key>16</key>
991
+ <dict>
992
+ <key>name</key>
993
+ <string>punctuation.definition.metadata.markdown</string>
994
+ </dict>
995
+ <key>2</key>
996
+ <dict>
997
+ <key>name</key>
998
+ <string>string.other.link.title.markdown</string>
999
+ </dict>
1000
+ <key>4</key>
1001
+ <dict>
1002
+ <key>name</key>
1003
+ <string>punctuation.definition.string.end.markdown</string>
1004
+ </dict>
1005
+ <key>5</key>
1006
+ <dict>
1007
+ <key>name</key>
1008
+ <string>invalid.illegal.whitespace.markdown</string>
1009
+ </dict>
1010
+ <key>6</key>
1011
+ <dict>
1012
+ <key>name</key>
1013
+ <string>punctuation.definition.metadata.markdown</string>
1014
+ </dict>
1015
+ <key>7</key>
1016
+ <dict>
1017
+ <key>name</key>
1018
+ <string>punctuation.definition.link.markdown</string>
1019
+ </dict>
1020
+ <key>8</key>
1021
+ <dict>
1022
+ <key>name</key>
1023
+ <string>markup.underline.link.markdown</string>
1024
+ </dict>
1025
+ <key>9</key>
1026
+ <dict>
1027
+ <key>name</key>
1028
+ <string>punctuation.definition.link.markdown</string>
1029
+ </dict>
1030
+ </dict>
1031
+ <key>match</key>
1032
+ <string>(?x:
1033
+ (\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])
1034
+ # Match the link text.
1035
+ ([ ])? # Space not allowed
1036
+ (\() # Opening paren for url
1037
+ (&lt;?)(.*?)(&gt;?) # The url
1038
+ [ \t]* # Optional whitespace
1039
+ (?:
1040
+ ((\().+?(\))) # Match title in parens…
1041
+ | ((").+?(")) # or in quotes.
1042
+ )? # Title is optional
1043
+ \s* # Optional whitespace
1044
+ (\))
1045
+ )</string>
1046
+ <key>name</key>
1047
+ <string>meta.link.inline.markdown</string>
1048
+ </dict>
1049
+ <key>link-ref</key>
1050
+ <dict>
1051
+ <key>captures</key>
1052
+ <dict>
1053
+ <key>1</key>
1054
+ <dict>
1055
+ <key>name</key>
1056
+ <string>punctuation.definition.string.begin.markdown</string>
1057
+ </dict>
1058
+ <key>2</key>
1059
+ <dict>
1060
+ <key>name</key>
1061
+ <string>string.other.link.title.markdown</string>
1062
+ </dict>
1063
+ <key>4</key>
1064
+ <dict>
1065
+ <key>name</key>
1066
+ <string>punctuation.definition.string.end.markdown</string>
1067
+ </dict>
1068
+ <key>5</key>
1069
+ <dict>
1070
+ <key>name</key>
1071
+ <string>punctuation.definition.constant.begin.markdown</string>
1072
+ </dict>
1073
+ <key>6</key>
1074
+ <dict>
1075
+ <key>name</key>
1076
+ <string>constant.other.reference.link.markdown</string>
1077
+ </dict>
1078
+ <key>7</key>
1079
+ <dict>
1080
+ <key>name</key>
1081
+ <string>punctuation.definition.constant.end.markdown</string>
1082
+ </dict>
1083
+ </dict>
1084
+ <key>match</key>
1085
+ <string>(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])[ ]?(\[)([^\]]*+)(\])</string>
1086
+ <key>name</key>
1087
+ <string>meta.link.reference.markdown</string>
1088
+ </dict>
1089
+ <key>link-ref-literal</key>
1090
+ <dict>
1091
+ <key>captures</key>
1092
+ <dict>
1093
+ <key>1</key>
1094
+ <dict>
1095
+ <key>name</key>
1096
+ <string>punctuation.definition.string.begin.markdown</string>
1097
+ </dict>
1098
+ <key>2</key>
1099
+ <dict>
1100
+ <key>name</key>
1101
+ <string>string.other.link.title.markdown</string>
1102
+ </dict>
1103
+ <key>4</key>
1104
+ <dict>
1105
+ <key>name</key>
1106
+ <string>punctuation.definition.string.end.markdown</string>
1107
+ </dict>
1108
+ <key>5</key>
1109
+ <dict>
1110
+ <key>name</key>
1111
+ <string>punctuation.definition.constant.begin.markdown</string>
1112
+ </dict>
1113
+ <key>6</key>
1114
+ <dict>
1115
+ <key>name</key>
1116
+ <string>punctuation.definition.constant.end.markdown</string>
1117
+ </dict>
1118
+ </dict>
1119
+ <key>match</key>
1120
+ <string>(\[)((?&lt;square&gt;[^\[\]\\]|\\.|\[\g&lt;square&gt;*+\])*+)(\])[ ]?(\[)(\])</string>
1121
+ <key>name</key>
1122
+ <string>meta.link.reference.literal.markdown</string>
1123
+ </dict>
1124
+ <key>list-paragraph</key>
1125
+ <dict>
1126
+ <key>patterns</key>
1127
+ <array>
1128
+ <dict>
1129
+ <key>begin</key>
1130
+ <string>\G\s+(?=\S)</string>
1131
+ <key>end</key>
1132
+ <string>^\s*$</string>
1133
+ <key>name</key>
1134
+ <string>meta.paragraph.list.markdown</string>
1135
+ <key>patterns</key>
1136
+ <array>
1137
+ <dict>
1138
+ <key>include</key>
1139
+ <string>#inline</string>
1140
+ </dict>
1141
+ <dict>
1142
+ <key>captures</key>
1143
+ <dict>
1144
+ <key>1</key>
1145
+ <dict>
1146
+ <key>name</key>
1147
+ <string>punctuation.definition.list_item.markdown</string>
1148
+ </dict>
1149
+ </dict>
1150
+ <key>comment</key>
1151
+ <string>Match the list punctuation</string>
1152
+ <key>match</key>
1153
+ <string>^\s*([*+-]|[0-9]+\.)</string>
1154
+ </dict>
1155
+ </array>
1156
+ </dict>
1157
+ </array>
1158
+ </dict>
1159
+ <key>raw</key>
1160
+ <dict>
1161
+ <key>captures</key>
1162
+ <dict>
1163
+ <key>1</key>
1164
+ <dict>
1165
+ <key>name</key>
1166
+ <string>punctuation.definition.raw.markdown</string>
1167
+ </dict>
1168
+ <key>3</key>
1169
+ <dict>
1170
+ <key>name</key>
1171
+ <string>punctuation.definition.raw.markdown</string>
1172
+ </dict>
1173
+ </dict>
1174
+ <key>match</key>
1175
+ <string>(`+)([^`]|(?!(?&lt;!`)\1(?!`))`)*+(\1)</string>
1176
+ <key>name</key>
1177
+ <string>markup.raw.inline.markdown</string>
1178
+ </dict>
1179
+ <key>separator</key>
1180
+ <dict>
1181
+ <key>match</key>
1182
+ <string>\G[ ]{,3}([-*_])([ ]{,2}\1){2,}[ \t]*$\n?</string>
1183
+ <key>name</key>
1184
+ <string>meta.separator.markdown</string>
1185
+ </dict>
1186
+ </dict>
1187
+ <key>scopeName</key>
1188
+ <string>text.html.markdown</string>
1189
+ <key>uuid</key>
1190
+ <string>0A1D9874-B448-11D9-BD50-000D93B6E43C</string>
1191
+ </dict>
1192
+ </plist>