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,104 @@
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>(&lt;(?i:(head|table|tr|div|style|script|ul|ol|form|dl))\b.*?&gt;|{% (block|comment|filter|for|if|ifchanged|ifequal|ifnotequal))</string>
9
+ <key>foldingStopMarker</key>
10
+ <string>(&lt;/(?i:(head|table|tr|div|style|script|ul|ol|form|dl))&gt;|{% (endblock|endblocktrans|endcomment|endfilter|endfor|endif|endifchanged|endifequal|endifnotequal) %})</string>
11
+ <key>keyEquivalent</key>
12
+ <string>^~D</string>
13
+ <key>name</key>
14
+ <string>HTML (Django)</string>
15
+ <key>patterns</key>
16
+ <array>
17
+ <dict>
18
+ <key>comment</key>
19
+ <string>Since html is valid in Django templates include the html patterns</string>
20
+ <key>include</key>
21
+ <string>text.html.basic</string>
22
+ </dict>
23
+ <dict>
24
+ <key>begin</key>
25
+ <string>{% comment %}</string>
26
+ <key>end</key>
27
+ <string>{% endcomment %}</string>
28
+ <key>name</key>
29
+ <string>comment.block.django.template</string>
30
+ </dict>
31
+ <dict>
32
+ <key>begin</key>
33
+ <string>{#</string>
34
+ <key>end</key>
35
+ <string>#}</string>
36
+ <key>name</key>
37
+ <string>comment.line.django.template</string>
38
+ </dict>
39
+ <dict>
40
+ <key>begin</key>
41
+ <string>{{</string>
42
+ <key>end</key>
43
+ <string>}}</string>
44
+ <key>name</key>
45
+ <string>variable.other.django.template</string>
46
+ </dict>
47
+ <dict>
48
+ <key>begin</key>
49
+ <string>({%)</string>
50
+ <key>captures</key>
51
+ <dict>
52
+ <key>1</key>
53
+ <dict>
54
+ <key>name</key>
55
+ <string>entity.other.django.tagbraces</string>
56
+ </dict>
57
+ </dict>
58
+ <key>end</key>
59
+ <string>(%})</string>
60
+ <key>name</key>
61
+ <string>meta.scope.django.template.tag</string>
62
+ <key>patterns</key>
63
+ <array>
64
+ <dict>
65
+ <key>match</key>
66
+ <string>\b(autoescape|endautoescape|block|endblock|blocktrans|endblocktrans|plural|debug|extends|filter|firstof|for|endfor|if|include|else|endif|ifchanged|endifchanged|ifequal|endifequal|ifnotequal|endifnotequal|load|now|regroup|ssi|spaceless|templatetag|widthratio)\b</string>
67
+ <key>name</key>
68
+ <string>keyword.control.django.template</string>
69
+ </dict>
70
+ <dict>
71
+ <key>match</key>
72
+ <string>\b(and|or|not|in|by|as)\b</string>
73
+ <key>name</key>
74
+ <string>keyword.operator.django.template</string>
75
+ </dict>
76
+ <dict>
77
+ <key>match</key>
78
+ <string>\|(add|addslashes|capfirst|center|cut|date|default|default_if_none|dictsort|dictsortreversed|divisibleby|escape|filesizeformat|first|fix_ampersands|floatformat|get_digit|join|length|length_is|linebreaks|linebreaksbr|linenumbers|ljust|lower|make_list|phone2numeric|pluralize|pprint|random|removetags|rjust|safe|slice|slugify|stringformat|striptags|time|timesince|title|truncatewords|unordered_list|upper|urlencode|urlize|urlizetrunc|wordcount|wordwrap|yesno)\b</string>
79
+ <key>name</key>
80
+ <string>support.function.filter.django</string>
81
+ </dict>
82
+ <dict>
83
+ <key>begin</key>
84
+ <string>'|"</string>
85
+ <key>end</key>
86
+ <string>'|"</string>
87
+ <key>name</key>
88
+ <string>string.other.django.template.tag</string>
89
+ </dict>
90
+ <dict>
91
+ <key>match</key>
92
+ <string>[a-zA-Z_]+</string>
93
+ <key>name</key>
94
+ <string>string.unquoted.django.template.tag</string>
95
+ </dict>
96
+ </array>
97
+ </dict>
98
+ </array>
99
+ <key>scopeName</key>
100
+ <string>text.html.django</string>
101
+ <key>uuid</key>
102
+ <string>F4B0A70C-ECF6-4660-BC26-785216E3CF02</string>
103
+ </dict>
104
+ </plist>
@@ -0,0 +1,57 @@
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*(def|class)\s+([.a-zA-Z0-9_ b]+)\s*(\((.*)\))?\s*:|\{\s*$|\(\s*$|\[\s*$</string>
9
+ <key>foldingStopMarker</key>
10
+ <string>^\s*$|^\s*\}|^\s*\]|^\s*\)</string>
11
+ <key>keyEquivalent</key>
12
+ <string>^~P</string>
13
+ <key>name</key>
14
+ <string>Python Django</string>
15
+ <key>patterns</key>
16
+ <array>
17
+ <dict>
18
+ <key>match</key>
19
+ <string>(meta|models)\.(Admin|AutoField|BooleanField|CharField|CommaSeparatedIntegerField|DateField|DateTimeField|DecimalField|EmailField|FileField|FilePathField|FloatField|ForeignKey|ImageField|IntegerField|IPAddressField|ManyToManyField|NullBooleanField|OneToOneField|PhoneNumberField|PositiveIntegerField|PositiveSmallIntegerField|SlugField|SmallIntegerField|TextField|TimeField|URLField|USStateField|XMLField)</string>
20
+ <key>name</key>
21
+ <string>support.type.django.model</string>
22
+ </dict>
23
+ <dict>
24
+ <key>match</key>
25
+ <string>django(\.[a-z]+){1,} </string>
26
+ <key>name</key>
27
+ <string>support.other.django.module</string>
28
+ </dict>
29
+ <dict>
30
+ <key>match</key>
31
+ <string>(ABSOLUTE_URL_OVERRIDES|ADMIN_FOR|ADMIN_MEDIA_PREFIX|ADMINS|ALLOWED_INCLUDE_ROOTS|APPEND_SLASH|AUTHENTICATION_BACKENDS|AUTH_PROFILE_MODULE|CACHE_BACKEND|CACHE_MIDDLEWARE_KEY_PREFIX|CACHE_MIDDLEWARE_SECONDS|DATABASE_ENGINE|DATABASE_HOST|DATABASE_NAME|DATABASE_OPTIONS|DATABASE_PASSWORD|DATABASE_PORT|DATABASE_USER|DATE_FORMAT|DATETIME_FORMAT|DEBUG|DEFAULT_CHARSET|DEFAULT_CONTENT_TYPE|DEFAULT_FROM_EMAIL|DEFAULT_TABLESPACE|DEFAULT_INDEX_TABLESPACE|DISALLOWED_USER_AGENTS|EMAIL_HOST_PASSWORD|EMAIL_HOST_USER|EMAIL_HOST|EMAIL_PORT|EMAIL_SUBJECT_PREFIX|EMAIL_USE_TLS|FILE_CHARSET|FIXTURE_DIRS|IGNORABLE_404_ENDS|IGNORABLE_404_STARTS|INSTALLED_APPS|INTERNAL_IPS|JING_PATH|LANGUAGE_CODE|LANGUAGE_COOKIE_NAME|LANGUAGES|LOCALE_PATHS|LOGIN_REDIRECT_URL|LOGIN_URL|LOGOUT_URL|MANAGERS|MEDIA_ROOT|MEDIA_URL|MIDDLEWARE_CLASSES|MONTH_DAY_FORMAT|PREPEND_WWW|PROFANITIES_LIST|ROOT_URLCONF|SECRET_KEY|SEND_BROKEN_LINK_EMAILS|SERIALIZATION_MODULES|SERVER_EMAIL|SESSION_ENGINE|SESSION_COOKIE_AGE|SESSION_COOKIE_DOMAIN|SESSION_COOKIE_NAME|SESSION_COOKIE_PATH|SESSION_COOKIE_SECURE|SESSION_EXPIRE_AT_BROWSER_CLOSE|SESSION_FILE_PATH|SESSION_SAVE_EVERY_REQUEST|SITE_ID|TEMPLATE_CONTEXT_PROCESSORS|TEMPLATE_DEBUG|TEMPLATE_DIRS|TEMPLATE_LOADERS|TEMPLATE_STRING_IF_INVALID|TEST_DATABASE_CHARSET|TEST_DATABASE_COLLATION|TEST_DATABASE_NAME|TEST_RUNNER|TIME_FORMAT|TIME_ZONE|URL_VALIDATOR_USER_AGENT|USE_ETAGS|USE_I18N|YEAR_MONTH_FORMAT)</string>
32
+ <key>name</key>
33
+ <string>variable.other.django.settings</string>
34
+ </dict>
35
+ <dict>
36
+ <key>match</key>
37
+ <string>(get_list_or_404|get_object_or_404|load_and_render|loader|render_to_response)</string>
38
+ <key>name</key>
39
+ <string>support.function.django.view</string>
40
+ </dict>
41
+ <dict>
42
+ <key>match</key>
43
+ <string>[a-z_]+\.get_(object|list|iterator|count|values|values_iterator|in_bulk)</string>
44
+ <key>name</key>
45
+ <string>support.function.django.model</string>
46
+ </dict>
47
+ <dict>
48
+ <key>include</key>
49
+ <string>source.python</string>
50
+ </dict>
51
+ </array>
52
+ <key>scopeName</key>
53
+ <string>source.python.django</string>
54
+ <key>uuid</key>
55
+ <string>5326D56C-6F76-4758-8DB7-D818527919AC</string>
56
+ </dict>
57
+ </plist>
@@ -0,0 +1,3016 @@
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>bundleUUID</key>
6
+ <string>E3BADC20-6B0E-11D9-9DC9-000D93589AF6</string>
7
+ <key>comment</key>
8
+ <string>
9
+ todo:
10
+ list comprehension / generator comprehension scope.
11
+
12
+ </string>
13
+ <key>fileTypes</key>
14
+ <array>
15
+ <string>py</string>
16
+ <string>rpy</string>
17
+ <string>pyw</string>
18
+ <string>cpy</string>
19
+ <string>SConstruct</string>
20
+ <string>Sconstruct</string>
21
+ <string>sconstruct</string>
22
+ <string>SConscript</string>
23
+ </array>
24
+ <key>firstLineMatch</key>
25
+ <string>^#!/.*\bpython\b</string>
26
+ <key>foldingStartMarker</key>
27
+ <string>^\s*(def|class)\s+([.a-zA-Z0-9_ &lt;]+)\s*(\((.*)\))?\s*:|\{\s*$|\(\s*$|\[\s*$|^\s*"""(?=.)(?!.*""")</string>
28
+ <key>foldingStopMarker</key>
29
+ <string>^\s*$|^\s*\}|^\s*\]|^\s*\)|^\s*"""\s*$</string>
30
+ <key>keyEquivalent</key>
31
+ <string>^~P</string>
32
+ <key>name</key>
33
+ <string>Python</string>
34
+ <key>patterns</key>
35
+ <array>
36
+ <dict>
37
+ <key>captures</key>
38
+ <dict>
39
+ <key>1</key>
40
+ <dict>
41
+ <key>name</key>
42
+ <string>punctuation.definition.comment.python</string>
43
+ </dict>
44
+ </dict>
45
+ <key>match</key>
46
+ <string>(#).*$\n?</string>
47
+ <key>name</key>
48
+ <string>comment.line.number-sign.python</string>
49
+ </dict>
50
+ <dict>
51
+ <key>match</key>
52
+ <string>\b(?i:(0x\h*)L)</string>
53
+ <key>name</key>
54
+ <string>constant.numeric.integer.long.hexadecimal.python</string>
55
+ </dict>
56
+ <dict>
57
+ <key>match</key>
58
+ <string>\b(?i:(0x\h*))</string>
59
+ <key>name</key>
60
+ <string>constant.numeric.integer.hexadecimal.python</string>
61
+ </dict>
62
+ <dict>
63
+ <key>match</key>
64
+ <string>\b(?i:(0[0-7]+)L)</string>
65
+ <key>name</key>
66
+ <string>constant.numeric.integer.long.octal.python</string>
67
+ </dict>
68
+ <dict>
69
+ <key>match</key>
70
+ <string>\b(0[0-7]+)</string>
71
+ <key>name</key>
72
+ <string>constant.numeric.integer.octal.python</string>
73
+ </dict>
74
+ <dict>
75
+ <key>match</key>
76
+ <string>\b(?i:(((\d+(\.(?=[^a-zA-Z_])\d*)?|(?&lt;=[^0-9a-zA-Z_])\.\d+)(e[\-\+]?\d+)?))J)</string>
77
+ <key>name</key>
78
+ <string>constant.numeric.complex.python</string>
79
+ </dict>
80
+ <dict>
81
+ <key>match</key>
82
+ <string>\b(?i:(\d+\.\d*(e[\-\+]?\d+)?))(?=[^a-zA-Z_])</string>
83
+ <key>name</key>
84
+ <string>constant.numeric.float.python</string>
85
+ </dict>
86
+ <dict>
87
+ <key>match</key>
88
+ <string>(?&lt;=[^0-9a-zA-Z_])(?i:(\.\d+(e[\-\+]?\d+)?))</string>
89
+ <key>name</key>
90
+ <string>constant.numeric.float.python</string>
91
+ </dict>
92
+ <dict>
93
+ <key>match</key>
94
+ <string>\b(?i:(\d+e[\-\+]?\d+))</string>
95
+ <key>name</key>
96
+ <string>constant.numeric.float.python</string>
97
+ </dict>
98
+ <dict>
99
+ <key>match</key>
100
+ <string>\b(?i:([1-9]+[0-9]*|0)L)</string>
101
+ <key>name</key>
102
+ <string>constant.numeric.integer.long.decimal.python</string>
103
+ </dict>
104
+ <dict>
105
+ <key>match</key>
106
+ <string>\b([1-9]+[0-9]*|0)</string>
107
+ <key>name</key>
108
+ <string>constant.numeric.integer.decimal.python</string>
109
+ </dict>
110
+ <dict>
111
+ <key>captures</key>
112
+ <dict>
113
+ <key>1</key>
114
+ <dict>
115
+ <key>name</key>
116
+ <string>storage.modifier.global.python</string>
117
+ </dict>
118
+ </dict>
119
+ <key>match</key>
120
+ <string>\b(global)\b</string>
121
+ </dict>
122
+ <dict>
123
+ <key>captures</key>
124
+ <dict>
125
+ <key>1</key>
126
+ <dict>
127
+ <key>name</key>
128
+ <string>keyword.control.import.python</string>
129
+ </dict>
130
+ <key>2</key>
131
+ <dict>
132
+ <key>name</key>
133
+ <string>keyword.control.import.from.python</string>
134
+ </dict>
135
+ </dict>
136
+ <key>match</key>
137
+ <string>\b(?:(import)|(from))\b</string>
138
+ </dict>
139
+ <dict>
140
+ <key>comment</key>
141
+ <string>keywords that delimit flow blocks</string>
142
+ <key>match</key>
143
+ <string>\b(elif|else|except|finally|for|if|try|while|with)\b</string>
144
+ <key>name</key>
145
+ <string>keyword.control.flow.python</string>
146
+ </dict>
147
+ <dict>
148
+ <key>comment</key>
149
+ <string>keywords that alter flow from within a block</string>
150
+ <key>match</key>
151
+ <string>\b(break|continue|pass|raise|return|yield)\b</string>
152
+ <key>name</key>
153
+ <string>keyword.control.flow.python</string>
154
+ </dict>
155
+ <dict>
156
+ <key>comment</key>
157
+ <string>keyword operators that evaluate to True or False</string>
158
+ <key>match</key>
159
+ <string>\b(and|in|is|not|or)\b</string>
160
+ <key>name</key>
161
+ <string>keyword.operator.logical.python</string>
162
+ </dict>
163
+ <dict>
164
+ <key>captures</key>
165
+ <dict>
166
+ <key>1</key>
167
+ <dict>
168
+ <key>name</key>
169
+ <string>keyword.other.python</string>
170
+ </dict>
171
+ </dict>
172
+ <key>comment</key>
173
+ <string>keywords that haven't fit into other groups (yet).</string>
174
+ <key>match</key>
175
+ <string>\b(as|assert|del|exec|print)\b</string>
176
+ </dict>
177
+ <dict>
178
+ <key>match</key>
179
+ <string>&lt;\=|&gt;\=|\=\=|&lt;|&gt;|&lt;&gt;</string>
180
+ <key>name</key>
181
+ <string>keyword.operator.comparison.python</string>
182
+ </dict>
183
+ <dict>
184
+ <key>match</key>
185
+ <string>\+\=|-\=|\*\=|/\=|//\=|%\=|&amp;\=|\|\=|\^\=|&gt;&gt;\=|&lt;&lt;\=|\*\*\=</string>
186
+ <key>name</key>
187
+ <string>keyword.operator.assignment.augmented.python</string>
188
+ </dict>
189
+ <dict>
190
+ <key>match</key>
191
+ <string>\+|\-|\*|\*\*|/|//|%|&lt;&lt;|&gt;&gt;|&amp;|\||\^|~</string>
192
+ <key>name</key>
193
+ <string>keyword.operator.arithmetic.python</string>
194
+ </dict>
195
+ <dict>
196
+ <key>match</key>
197
+ <string>\=</string>
198
+ <key>name</key>
199
+ <string>keyword.operator.assignment.python</string>
200
+ </dict>
201
+ <dict>
202
+ <key>begin</key>
203
+ <string>^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\s*\:)</string>
204
+ <key>beginCaptures</key>
205
+ <dict>
206
+ <key>1</key>
207
+ <dict>
208
+ <key>name</key>
209
+ <string>storage.type.class.python</string>
210
+ </dict>
211
+ </dict>
212
+ <key>contentName</key>
213
+ <string>entity.name.type.class.python</string>
214
+ <key>end</key>
215
+ <string>\s*(:)</string>
216
+ <key>endCaptures</key>
217
+ <dict>
218
+ <key>1</key>
219
+ <dict>
220
+ <key>name</key>
221
+ <string>punctuation.section.class.begin.python</string>
222
+ </dict>
223
+ </dict>
224
+ <key>name</key>
225
+ <string>meta.class.old-style.python</string>
226
+ <key>patterns</key>
227
+ <array>
228
+ <dict>
229
+ <key>include</key>
230
+ <string>#entity_name_class</string>
231
+ </dict>
232
+ </array>
233
+ </dict>
234
+ <dict>
235
+ <key>begin</key>
236
+ <string>^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9]*\s*\()</string>
237
+ <key>beginCaptures</key>
238
+ <dict>
239
+ <key>1</key>
240
+ <dict>
241
+ <key>name</key>
242
+ <string>storage.type.class.python</string>
243
+ </dict>
244
+ </dict>
245
+ <key>end</key>
246
+ <string>(\))\s*(?:(\:)|(.*$\n?))</string>
247
+ <key>endCaptures</key>
248
+ <dict>
249
+ <key>1</key>
250
+ <dict>
251
+ <key>name</key>
252
+ <string>punctuation.definition.inheritance.end.python</string>
253
+ </dict>
254
+ <key>2</key>
255
+ <dict>
256
+ <key>name</key>
257
+ <string>punctuation.section.class.begin.python</string>
258
+ </dict>
259
+ <key>3</key>
260
+ <dict>
261
+ <key>name</key>
262
+ <string>invalid.illegal.missing-section-begin.python</string>
263
+ </dict>
264
+ </dict>
265
+ <key>name</key>
266
+ <string>meta.class.python</string>
267
+ <key>patterns</key>
268
+ <array>
269
+ <dict>
270
+ <key>begin</key>
271
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*)</string>
272
+ <key>contentName</key>
273
+ <string>entity.name.type.class.python</string>
274
+ <key>end</key>
275
+ <string>(?![A-Za-z0-9_])</string>
276
+ <key>patterns</key>
277
+ <array>
278
+ <dict>
279
+ <key>include</key>
280
+ <string>#entity_name_class</string>
281
+ </dict>
282
+ </array>
283
+ </dict>
284
+ <dict>
285
+ <key>begin</key>
286
+ <string>(\()</string>
287
+ <key>beginCaptures</key>
288
+ <dict>
289
+ <key>1</key>
290
+ <dict>
291
+ <key>name</key>
292
+ <string>punctuation.definition.inheritance.begin.python</string>
293
+ </dict>
294
+ </dict>
295
+ <key>contentName</key>
296
+ <string>meta.class.inheritance.python</string>
297
+ <key>end</key>
298
+ <string>(?=\)|:)</string>
299
+ <key>patterns</key>
300
+ <array>
301
+ <dict>
302
+ <key>begin</key>
303
+ <string>(?&lt;=\(|,)\s*</string>
304
+ <key>contentName</key>
305
+ <string>entity.other.inherited-class.python</string>
306
+ <key>end</key>
307
+ <string>\s*(?:(,)|(?=\)))</string>
308
+ <key>endCaptures</key>
309
+ <dict>
310
+ <key>1</key>
311
+ <dict>
312
+ <key>name</key>
313
+ <string>punctuation.separator.inheritance.python</string>
314
+ </dict>
315
+ </dict>
316
+ <key>patterns</key>
317
+ <array>
318
+ <dict>
319
+ <key>include</key>
320
+ <string>$self</string>
321
+ </dict>
322
+ </array>
323
+ </dict>
324
+ </array>
325
+ </dict>
326
+ </array>
327
+ </dict>
328
+ <dict>
329
+ <key>begin</key>
330
+ <string>^\s*(class)\s+(?=[a-zA-Z_][a-zA-Z_0-9])</string>
331
+ <key>beginCaptures</key>
332
+ <dict>
333
+ <key>1</key>
334
+ <dict>
335
+ <key>name</key>
336
+ <string>storage.type.class.python</string>
337
+ </dict>
338
+ </dict>
339
+ <key>end</key>
340
+ <string>(\()|\s*($\n?|#.*$\n?)</string>
341
+ <key>endCaptures</key>
342
+ <dict>
343
+ <key>1</key>
344
+ <dict>
345
+ <key>name</key>
346
+ <string>punctuation.definition.inheritance.begin.python</string>
347
+ </dict>
348
+ <key>2</key>
349
+ <dict>
350
+ <key>name</key>
351
+ <string>invalid.illegal.missing-inheritance.python</string>
352
+ </dict>
353
+ </dict>
354
+ <key>name</key>
355
+ <string>meta.class.python</string>
356
+ <key>patterns</key>
357
+ <array>
358
+ <dict>
359
+ <key>begin</key>
360
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*)</string>
361
+ <key>contentName</key>
362
+ <string>entity.name.type.class.python</string>
363
+ <key>end</key>
364
+ <string>(?![A-Za-z0-9_])</string>
365
+ <key>patterns</key>
366
+ <array>
367
+ <dict>
368
+ <key>include</key>
369
+ <string>#entity_name_function</string>
370
+ </dict>
371
+ </array>
372
+ </dict>
373
+ </array>
374
+ </dict>
375
+ <dict>
376
+ <key>begin</key>
377
+ <string>^\s*(def)\s+(?=[A-Za-z_][A-Za-z0-9_]*\s*\()</string>
378
+ <key>beginCaptures</key>
379
+ <dict>
380
+ <key>1</key>
381
+ <dict>
382
+ <key>name</key>
383
+ <string>storage.type.function.python</string>
384
+ </dict>
385
+ </dict>
386
+ <key>end</key>
387
+ <string>(\))\s*(?:(\:)|(.*$\n?))</string>
388
+ <key>endCaptures</key>
389
+ <dict>
390
+ <key>1</key>
391
+ <dict>
392
+ <key>name</key>
393
+ <string>punctuation.definition.parameters.end.python</string>
394
+ </dict>
395
+ <key>2</key>
396
+ <dict>
397
+ <key>name</key>
398
+ <string>punctuation.section.function.begin.python</string>
399
+ </dict>
400
+ <key>3</key>
401
+ <dict>
402
+ <key>name</key>
403
+ <string>invalid.illegal.missing-section-begin.python</string>
404
+ </dict>
405
+ </dict>
406
+ <key>name</key>
407
+ <string>meta.function.python</string>
408
+ <key>patterns</key>
409
+ <array>
410
+ <dict>
411
+ <key>begin</key>
412
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*)</string>
413
+ <key>contentName</key>
414
+ <string>entity.name.function.python</string>
415
+ <key>end</key>
416
+ <string>(?![A-Za-z0-9_])</string>
417
+ <key>patterns</key>
418
+ <array>
419
+ <dict>
420
+ <key>include</key>
421
+ <string>#entity_name_function</string>
422
+ </dict>
423
+ </array>
424
+ </dict>
425
+ <dict>
426
+ <key>begin</key>
427
+ <string>(\()</string>
428
+ <key>beginCaptures</key>
429
+ <dict>
430
+ <key>1</key>
431
+ <dict>
432
+ <key>name</key>
433
+ <string>punctuation.definition.parameters.begin.python</string>
434
+ </dict>
435
+ </dict>
436
+ <key>contentName</key>
437
+ <string>meta.function.parameters.python</string>
438
+ <key>end</key>
439
+ <string>(?=\)\s*\:)</string>
440
+ <key>patterns</key>
441
+ <array>
442
+ <dict>
443
+ <key>include</key>
444
+ <string>#keyword_arguments</string>
445
+ </dict>
446
+ <dict>
447
+ <key>captures</key>
448
+ <dict>
449
+ <key>1</key>
450
+ <dict>
451
+ <key>name</key>
452
+ <string>variable.parameter.function.python</string>
453
+ </dict>
454
+ <key>2</key>
455
+ <dict>
456
+ <key>name</key>
457
+ <string>punctuation.separator.parameters.python</string>
458
+ </dict>
459
+ </dict>
460
+ <key>match</key>
461
+ <string>\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(?:(,)|(?=[\n\)]))</string>
462
+ </dict>
463
+ </array>
464
+ </dict>
465
+ </array>
466
+ </dict>
467
+ <dict>
468
+ <key>begin</key>
469
+ <string>^\s*(def)\s+(?=[A-Za-z_][A-Za-z0-9_]*)</string>
470
+ <key>beginCaptures</key>
471
+ <dict>
472
+ <key>1</key>
473
+ <dict>
474
+ <key>name</key>
475
+ <string>storage.type.function.python</string>
476
+ </dict>
477
+ </dict>
478
+ <key>end</key>
479
+ <string>(\()|\s*($\n?|#.*$\n?)</string>
480
+ <key>endCaptures</key>
481
+ <dict>
482
+ <key>1</key>
483
+ <dict>
484
+ <key>name</key>
485
+ <string>punctuation.definition.parameters.begin.python</string>
486
+ </dict>
487
+ <key>2</key>
488
+ <dict>
489
+ <key>name</key>
490
+ <string>invalid.illegal.missing-parameters.python</string>
491
+ </dict>
492
+ </dict>
493
+ <key>name</key>
494
+ <string>meta.function.python</string>
495
+ <key>patterns</key>
496
+ <array>
497
+ <dict>
498
+ <key>begin</key>
499
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*)</string>
500
+ <key>contentName</key>
501
+ <string>entity.name.function.python</string>
502
+ <key>end</key>
503
+ <string>(?![A-Za-z0-9_])</string>
504
+ <key>patterns</key>
505
+ <array>
506
+ <dict>
507
+ <key>include</key>
508
+ <string>#entity_name_function</string>
509
+ </dict>
510
+ </array>
511
+ </dict>
512
+ </array>
513
+ </dict>
514
+ <dict>
515
+ <key>begin</key>
516
+ <string>(lambda)(?=\s+)</string>
517
+ <key>beginCaptures</key>
518
+ <dict>
519
+ <key>1</key>
520
+ <dict>
521
+ <key>name</key>
522
+ <string>storage.type.function.inline.python</string>
523
+ </dict>
524
+ </dict>
525
+ <key>end</key>
526
+ <string>(\:)</string>
527
+ <key>endCaptures</key>
528
+ <dict>
529
+ <key>1</key>
530
+ <dict>
531
+ <key>name</key>
532
+ <string>punctuation.definition.parameters.end.python</string>
533
+ </dict>
534
+ <key>2</key>
535
+ <dict>
536
+ <key>name</key>
537
+ <string>punctuation.section.function.begin.python</string>
538
+ </dict>
539
+ <key>3</key>
540
+ <dict>
541
+ <key>name</key>
542
+ <string>invalid.illegal.missing-section-begin.python</string>
543
+ </dict>
544
+ </dict>
545
+ <key>name</key>
546
+ <string>meta.function.inline.python</string>
547
+ <key>patterns</key>
548
+ <array>
549
+ <dict>
550
+ <key>begin</key>
551
+ <string>\s+</string>
552
+ <key>contentName</key>
553
+ <string>meta.function.inline.parameters.python</string>
554
+ <key>end</key>
555
+ <string>(?=\:)</string>
556
+ <key>patterns</key>
557
+ <array>
558
+ <dict>
559
+ <key>include</key>
560
+ <string>#keyword_arguments</string>
561
+ </dict>
562
+ <dict>
563
+ <key>captures</key>
564
+ <dict>
565
+ <key>1</key>
566
+ <dict>
567
+ <key>name</key>
568
+ <string>variable.parameter.function.python</string>
569
+ </dict>
570
+ <key>2</key>
571
+ <dict>
572
+ <key>name</key>
573
+ <string>punctuation.separator.parameters.python</string>
574
+ </dict>
575
+ </dict>
576
+ <key>match</key>
577
+ <string>\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(?:(,)|(?=[\n\)\:]))</string>
578
+ </dict>
579
+ </array>
580
+ </dict>
581
+ </array>
582
+ </dict>
583
+ <dict>
584
+ <key>begin</key>
585
+ <string>^\s*(?=@\s*[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\()</string>
586
+ <key>comment</key>
587
+ <string>a decorator may be a function call which returns a decorator.</string>
588
+ <key>end</key>
589
+ <string>(\))</string>
590
+ <key>endCaptures</key>
591
+ <dict>
592
+ <key>1</key>
593
+ <dict>
594
+ <key>name</key>
595
+ <string>punctuation.definition.arguments.end.python</string>
596
+ </dict>
597
+ </dict>
598
+ <key>name</key>
599
+ <string>meta.function.decorator.python</string>
600
+ <key>patterns</key>
601
+ <array>
602
+ <dict>
603
+ <key>begin</key>
604
+ <string>(?=(@)\s*[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*\s*\()</string>
605
+ <key>beginCaptures</key>
606
+ <dict>
607
+ <key>1</key>
608
+ <dict>
609
+ <key>name</key>
610
+ <string>punctuation.definition.decorator.python</string>
611
+ </dict>
612
+ </dict>
613
+ <key>contentName</key>
614
+ <string>entity.name.function.decorator.python</string>
615
+ <key>end</key>
616
+ <string>(?=\s*\()</string>
617
+ <key>patterns</key>
618
+ <array>
619
+ <dict>
620
+ <key>include</key>
621
+ <string>#dotted_name</string>
622
+ </dict>
623
+ </array>
624
+ </dict>
625
+ <dict>
626
+ <key>begin</key>
627
+ <string>(\()</string>
628
+ <key>beginCaptures</key>
629
+ <dict>
630
+ <key>1</key>
631
+ <dict>
632
+ <key>name</key>
633
+ <string>punctuation.definition.arguments.begin.python</string>
634
+ </dict>
635
+ </dict>
636
+ <key>contentName</key>
637
+ <string>meta.function.decorator.arguments.python</string>
638
+ <key>end</key>
639
+ <string>(?=\))</string>
640
+ <key>patterns</key>
641
+ <array>
642
+ <dict>
643
+ <key>include</key>
644
+ <string>#keyword_arguments</string>
645
+ </dict>
646
+ <dict>
647
+ <key>include</key>
648
+ <string>$self</string>
649
+ </dict>
650
+ </array>
651
+ </dict>
652
+ </array>
653
+ </dict>
654
+ <dict>
655
+ <key>begin</key>
656
+ <string>^\s*(?=@\s*[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*)</string>
657
+ <key>contentName</key>
658
+ <string>entity.name.function.decorator.python</string>
659
+ <key>end</key>
660
+ <string>(?=\s|$\n?|#)</string>
661
+ <key>name</key>
662
+ <string>meta.function.decorator.python</string>
663
+ <key>patterns</key>
664
+ <array>
665
+ <dict>
666
+ <key>begin</key>
667
+ <string>(?=(@)\s*[A-Za-z_][A-Za-z0-9_]*(\.[A-Za-z_][A-Za-z0-9_]*)*)</string>
668
+ <key>beginCaptures</key>
669
+ <dict>
670
+ <key>1</key>
671
+ <dict>
672
+ <key>name</key>
673
+ <string>punctuation.definition.decorator.python</string>
674
+ </dict>
675
+ </dict>
676
+ <key>end</key>
677
+ <string>(?=\s|$\n?|#)</string>
678
+ <key>patterns</key>
679
+ <array>
680
+ <dict>
681
+ <key>include</key>
682
+ <string>#dotted_name</string>
683
+ </dict>
684
+ </array>
685
+ </dict>
686
+ </array>
687
+ </dict>
688
+ <dict>
689
+ <key>begin</key>
690
+ <string>(?&lt;=\)|\])\s*(\()</string>
691
+ <key>beginCaptures</key>
692
+ <dict>
693
+ <key>1</key>
694
+ <dict>
695
+ <key>name</key>
696
+ <string>punctuation.definition.arguments.begin.python</string>
697
+ </dict>
698
+ </dict>
699
+ <key>contentName</key>
700
+ <string>meta.function-call.arguments.python</string>
701
+ <key>end</key>
702
+ <string>(\))</string>
703
+ <key>endCaptures</key>
704
+ <dict>
705
+ <key>1</key>
706
+ <dict>
707
+ <key>name</key>
708
+ <string>punctuation.definition.arguments.end.python</string>
709
+ </dict>
710
+ </dict>
711
+ <key>name</key>
712
+ <string>meta.function-call.python</string>
713
+ <key>patterns</key>
714
+ <array>
715
+ <dict>
716
+ <key>include</key>
717
+ <string>#keyword_arguments</string>
718
+ </dict>
719
+ <dict>
720
+ <key>include</key>
721
+ <string>$self</string>
722
+ </dict>
723
+ </array>
724
+ </dict>
725
+ <dict>
726
+ <key>begin</key>
727
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\()</string>
728
+ <key>end</key>
729
+ <string>(\))</string>
730
+ <key>endCaptures</key>
731
+ <dict>
732
+ <key>1</key>
733
+ <dict>
734
+ <key>name</key>
735
+ <string>punctuation.definition.arguments.end.python</string>
736
+ </dict>
737
+ </dict>
738
+ <key>name</key>
739
+ <string>meta.function-call.python</string>
740
+ <key>patterns</key>
741
+ <array>
742
+ <dict>
743
+ <key>begin</key>
744
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*\s*\()</string>
745
+ <key>end</key>
746
+ <string>(?=\s*\()</string>
747
+ <key>patterns</key>
748
+ <array>
749
+ <dict>
750
+ <key>include</key>
751
+ <string>#dotted_name</string>
752
+ </dict>
753
+ </array>
754
+ </dict>
755
+ <dict>
756
+ <key>begin</key>
757
+ <string>(\()</string>
758
+ <key>beginCaptures</key>
759
+ <dict>
760
+ <key>1</key>
761
+ <dict>
762
+ <key>name</key>
763
+ <string>punctuation.definition.arguments.begin.python</string>
764
+ </dict>
765
+ </dict>
766
+ <key>contentName</key>
767
+ <string>meta.function-call.arguments.python</string>
768
+ <key>end</key>
769
+ <string>(?=\))</string>
770
+ <key>patterns</key>
771
+ <array>
772
+ <dict>
773
+ <key>include</key>
774
+ <string>#keyword_arguments</string>
775
+ </dict>
776
+ <dict>
777
+ <key>include</key>
778
+ <string>$self</string>
779
+ </dict>
780
+ </array>
781
+ </dict>
782
+ </array>
783
+ </dict>
784
+ <dict>
785
+ <key>begin</key>
786
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[a-zA-Z_][a-zA-Z_0-9]*)*\s*\[)</string>
787
+ <key>end</key>
788
+ <string>(\])</string>
789
+ <key>endCaptures</key>
790
+ <dict>
791
+ <key>1</key>
792
+ <dict>
793
+ <key>name</key>
794
+ <string>punctuation.definition.arguments.end.python</string>
795
+ </dict>
796
+ </dict>
797
+ <key>name</key>
798
+ <string>meta.item-access.python</string>
799
+ <key>patterns</key>
800
+ <array>
801
+ <dict>
802
+ <key>begin</key>
803
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*\s*\[)</string>
804
+ <key>end</key>
805
+ <string>(?=\s*\[)</string>
806
+ <key>patterns</key>
807
+ <array>
808
+ <dict>
809
+ <key>include</key>
810
+ <string>#dotted_name</string>
811
+ </dict>
812
+ </array>
813
+ </dict>
814
+ <dict>
815
+ <key>begin</key>
816
+ <string>(\[)</string>
817
+ <key>beginCaptures</key>
818
+ <dict>
819
+ <key>1</key>
820
+ <dict>
821
+ <key>name</key>
822
+ <string>punctuation.definition.arguments.begin.python</string>
823
+ </dict>
824
+ </dict>
825
+ <key>contentName</key>
826
+ <string>meta.item-access.arguments.python</string>
827
+ <key>end</key>
828
+ <string>(?=\])</string>
829
+ <key>patterns</key>
830
+ <array>
831
+ <dict>
832
+ <key>include</key>
833
+ <string>$self</string>
834
+ </dict>
835
+ </array>
836
+ </dict>
837
+ </array>
838
+ </dict>
839
+ <dict>
840
+ <key>begin</key>
841
+ <string>(?&lt;=\)|\])\s*(\[)</string>
842
+ <key>beginCaptures</key>
843
+ <dict>
844
+ <key>1</key>
845
+ <dict>
846
+ <key>name</key>
847
+ <string>punctuation.definition.arguments.begin.python</string>
848
+ </dict>
849
+ </dict>
850
+ <key>contentName</key>
851
+ <string>meta.item-access.arguments.python</string>
852
+ <key>end</key>
853
+ <string>(\])</string>
854
+ <key>endCaptures</key>
855
+ <dict>
856
+ <key>1</key>
857
+ <dict>
858
+ <key>name</key>
859
+ <string>punctuation.definition.arguments.end.python</string>
860
+ </dict>
861
+ </dict>
862
+ <key>name</key>
863
+ <string>meta.item-access.python</string>
864
+ <key>patterns</key>
865
+ <array>
866
+ <dict>
867
+ <key>include</key>
868
+ <string>$self</string>
869
+ </dict>
870
+ </array>
871
+ </dict>
872
+ <dict>
873
+ <key>captures</key>
874
+ <dict>
875
+ <key>1</key>
876
+ <dict>
877
+ <key>name</key>
878
+ <string>storage.type.function.python</string>
879
+ </dict>
880
+ </dict>
881
+ <key>match</key>
882
+ <string>\b(def|lambda)\b</string>
883
+ </dict>
884
+ <dict>
885
+ <key>captures</key>
886
+ <dict>
887
+ <key>1</key>
888
+ <dict>
889
+ <key>name</key>
890
+ <string>storage.type.class.python</string>
891
+ </dict>
892
+ </dict>
893
+ <key>match</key>
894
+ <string>\b(class)\b</string>
895
+ </dict>
896
+ <dict>
897
+ <key>include</key>
898
+ <string>#line_continuation</string>
899
+ </dict>
900
+ <dict>
901
+ <key>include</key>
902
+ <string>#language_variables</string>
903
+ </dict>
904
+ <dict>
905
+ <key>match</key>
906
+ <string>\b(None|True|False|Ellipsis|NotImplemented)\b</string>
907
+ <key>name</key>
908
+ <string>constant.language.python</string>
909
+ </dict>
910
+ <dict>
911
+ <key>include</key>
912
+ <string>#string_quoted_single</string>
913
+ </dict>
914
+ <dict>
915
+ <key>include</key>
916
+ <string>#string_quoted_double</string>
917
+ </dict>
918
+ <dict>
919
+ <key>include</key>
920
+ <string>#dotted_name</string>
921
+ </dict>
922
+ <dict>
923
+ <key>begin</key>
924
+ <string>(\()</string>
925
+ <key>end</key>
926
+ <string>(\))</string>
927
+ <key>patterns</key>
928
+ <array>
929
+ <dict>
930
+ <key>include</key>
931
+ <string>$self</string>
932
+ </dict>
933
+ </array>
934
+ </dict>
935
+ <dict>
936
+ <key>captures</key>
937
+ <dict>
938
+ <key>1</key>
939
+ <dict>
940
+ <key>name</key>
941
+ <string>punctuation.definition.list.begin.python</string>
942
+ </dict>
943
+ <key>2</key>
944
+ <dict>
945
+ <key>name</key>
946
+ <string>meta.empty-list.python</string>
947
+ </dict>
948
+ <key>3</key>
949
+ <dict>
950
+ <key>name</key>
951
+ <string>punctuation.definition.list.end.python</string>
952
+ </dict>
953
+ </dict>
954
+ <key>match</key>
955
+ <string>(\[)(\s*(\]))\b</string>
956
+ </dict>
957
+ <dict>
958
+ <key>begin</key>
959
+ <string>(\[)</string>
960
+ <key>beginCaptures</key>
961
+ <dict>
962
+ <key>1</key>
963
+ <dict>
964
+ <key>name</key>
965
+ <string>punctuation.definition.list.begin.python</string>
966
+ </dict>
967
+ </dict>
968
+ <key>end</key>
969
+ <string>(\])</string>
970
+ <key>endCaptures</key>
971
+ <dict>
972
+ <key>1</key>
973
+ <dict>
974
+ <key>name</key>
975
+ <string>punctuation.definition.list.end.python</string>
976
+ </dict>
977
+ </dict>
978
+ <key>name</key>
979
+ <string>meta.structure.list.python</string>
980
+ <key>patterns</key>
981
+ <array>
982
+ <dict>
983
+ <key>begin</key>
984
+ <string>(?&lt;=\[|\,)\s*(?![\],])</string>
985
+ <key>contentName</key>
986
+ <string>meta.structure.list.item.python</string>
987
+ <key>end</key>
988
+ <string>\s*(?:(,)|(?=\]))</string>
989
+ <key>endCaptures</key>
990
+ <dict>
991
+ <key>1</key>
992
+ <dict>
993
+ <key>name</key>
994
+ <string>punctuation.separator.list.python</string>
995
+ </dict>
996
+ </dict>
997
+ <key>patterns</key>
998
+ <array>
999
+ <dict>
1000
+ <key>include</key>
1001
+ <string>$self</string>
1002
+ </dict>
1003
+ </array>
1004
+ </dict>
1005
+ </array>
1006
+ </dict>
1007
+ <dict>
1008
+ <key>captures</key>
1009
+ <dict>
1010
+ <key>1</key>
1011
+ <dict>
1012
+ <key>name</key>
1013
+ <string>punctuation.definition.tuple.begin.python</string>
1014
+ </dict>
1015
+ <key>2</key>
1016
+ <dict>
1017
+ <key>name</key>
1018
+ <string>meta.empty-tuple.python</string>
1019
+ </dict>
1020
+ <key>3</key>
1021
+ <dict>
1022
+ <key>name</key>
1023
+ <string>punctuation.definition.tuple.end.python</string>
1024
+ </dict>
1025
+ </dict>
1026
+ <key>match</key>
1027
+ <string>(\()(\s*(\)))</string>
1028
+ <key>name</key>
1029
+ <string>meta.structure.tuple.python</string>
1030
+ </dict>
1031
+ <dict>
1032
+ <key>captures</key>
1033
+ <dict>
1034
+ <key>1</key>
1035
+ <dict>
1036
+ <key>name</key>
1037
+ <string>punctuation.definition.dictionary.begin.python</string>
1038
+ </dict>
1039
+ <key>2</key>
1040
+ <dict>
1041
+ <key>name</key>
1042
+ <string>meta.empty-dictionary.python</string>
1043
+ </dict>
1044
+ <key>3</key>
1045
+ <dict>
1046
+ <key>name</key>
1047
+ <string>punctuation.definition.dictionary.end.python</string>
1048
+ </dict>
1049
+ </dict>
1050
+ <key>match</key>
1051
+ <string>(\{)(\s*(\}))</string>
1052
+ <key>name</key>
1053
+ <string>meta.structure.dictionary.python</string>
1054
+ </dict>
1055
+ <dict>
1056
+ <key>begin</key>
1057
+ <string>(\{)</string>
1058
+ <key>beginCaptures</key>
1059
+ <dict>
1060
+ <key>1</key>
1061
+ <dict>
1062
+ <key>name</key>
1063
+ <string>punctuation.definition.dictionary.begin.python</string>
1064
+ </dict>
1065
+ </dict>
1066
+ <key>end</key>
1067
+ <string>(\})</string>
1068
+ <key>endCaptures</key>
1069
+ <dict>
1070
+ <key>1</key>
1071
+ <dict>
1072
+ <key>name</key>
1073
+ <string>punctuation.definition.dictionary.end.python</string>
1074
+ </dict>
1075
+ </dict>
1076
+ <key>name</key>
1077
+ <string>meta.structure.dictionary.python</string>
1078
+ <key>patterns</key>
1079
+ <array>
1080
+ <dict>
1081
+ <key>begin</key>
1082
+ <string>(?&lt;=\{|\,|^)\s*(?![\},])</string>
1083
+ <key>contentName</key>
1084
+ <string>meta.structure.dictionary.key.python</string>
1085
+ <key>end</key>
1086
+ <string>\s*(?:(?=\})|(\:))</string>
1087
+ <key>endCaptures</key>
1088
+ <dict>
1089
+ <key>1</key>
1090
+ <dict>
1091
+ <key>name</key>
1092
+ <string>punctuation.separator.valuepair.dictionary.python</string>
1093
+ </dict>
1094
+ </dict>
1095
+ <key>patterns</key>
1096
+ <array>
1097
+ <dict>
1098
+ <key>include</key>
1099
+ <string>$self</string>
1100
+ </dict>
1101
+ </array>
1102
+ </dict>
1103
+ <dict>
1104
+ <key>begin</key>
1105
+ <string>(?&lt;=\:|^)\s*</string>
1106
+ <key>contentName</key>
1107
+ <string>meta.structure.dictionary.value.python</string>
1108
+ <key>end</key>
1109
+ <string>\s*(?:(?=\})|(,))</string>
1110
+ <key>endCaptures</key>
1111
+ <dict>
1112
+ <key>1</key>
1113
+ <dict>
1114
+ <key>name</key>
1115
+ <string>punctuation.separator.dictionary.python</string>
1116
+ </dict>
1117
+ </dict>
1118
+ <key>patterns</key>
1119
+ <array>
1120
+ <dict>
1121
+ <key>include</key>
1122
+ <string>$self</string>
1123
+ </dict>
1124
+ </array>
1125
+ </dict>
1126
+ </array>
1127
+ </dict>
1128
+ </array>
1129
+ <key>repository</key>
1130
+ <dict>
1131
+ <key>builtin_exceptions</key>
1132
+ <dict>
1133
+ <key>match</key>
1134
+ <string>(?x)\b((Arithmetic|Assertion|Attribute|EOF|Environment|FloatingPoint|IO|Import|Indentation|Index|Key|Lookup|Memory|Name|OS|Overflow|NotImplemented|Reference|Runtime|Standard|Syntax|System|Tab|Type|UnboundLocal|Unicode(Translate|Encode|Decode)?|Value|ZeroDivision)Error|(Deprecation|Future|Overflow|PendingDeprecation|Runtime|Syntax|User)?Warning|KeyboardInterrupt|NotImplemented|StopIteration|SystemExit|(Base)?Exception)\b</string>
1135
+ <key>name</key>
1136
+ <string>support.type.exception.python</string>
1137
+ </dict>
1138
+ <key>builtin_functions</key>
1139
+ <dict>
1140
+ <key>match</key>
1141
+ <string>(?x)\b(
1142
+ __import__|all|abs|any|apply|callable|chr|cmp|coerce|compile|delattr|dir|
1143
+ divmod|eval|execfile|filter|getattr|globals|hasattr|hash|hex|id|
1144
+ input|intern|isinstance|issubclass|iter|len|locals|map|max|min|oct|
1145
+ ord|pow|range|raw_input|reduce|reload|repr|round|setattr|sorted|
1146
+ sum|unichr|vars|zip
1147
+ )\b</string>
1148
+ <key>name</key>
1149
+ <string>support.function.builtin.python</string>
1150
+ </dict>
1151
+ <key>builtin_types</key>
1152
+ <dict>
1153
+ <key>match</key>
1154
+ <string>(?x)\b(
1155
+ basestring|bool|buffer|classmethod|complex|dict|enumerate|file|
1156
+ float|frozenset|int|list|long|object|open|property|reversed|set|
1157
+ slice|staticmethod|str|super|tuple|type|unicode|xrange
1158
+ )\b</string>
1159
+ <key>name</key>
1160
+ <string>support.type.python</string>
1161
+ </dict>
1162
+ <key>constant_placeholder</key>
1163
+ <dict>
1164
+ <key>match</key>
1165
+ <string>(?i:%(\([a-z_]+\))?#?0?\-?[ ]?\+?([0-9]*|\*)(\.([0-9]*|\*))?[hL]?[a-z%])</string>
1166
+ <key>name</key>
1167
+ <string>constant.other.placeholder.python</string>
1168
+ </dict>
1169
+ <key>docstrings</key>
1170
+ <dict>
1171
+ <key>patterns</key>
1172
+ <array>
1173
+ <dict>
1174
+ <key>begin</key>
1175
+ <string>^\s*(?=[uU]?[rR]?""")</string>
1176
+ <key>end</key>
1177
+ <string>(?&lt;=""")</string>
1178
+ <key>name</key>
1179
+ <string>comment.block.python</string>
1180
+ <key>patterns</key>
1181
+ <array>
1182
+ <dict>
1183
+ <key>include</key>
1184
+ <string>#string_quoted_double</string>
1185
+ </dict>
1186
+ </array>
1187
+ </dict>
1188
+ <dict>
1189
+ <key>begin</key>
1190
+ <string>^\s*(?=[uU]?[rR]?''')</string>
1191
+ <key>end</key>
1192
+ <string>(?&lt;=''')</string>
1193
+ <key>name</key>
1194
+ <string>comment.block.python</string>
1195
+ <key>patterns</key>
1196
+ <array>
1197
+ <dict>
1198
+ <key>include</key>
1199
+ <string>#string_quoted_single</string>
1200
+ </dict>
1201
+ </array>
1202
+ </dict>
1203
+ </array>
1204
+ </dict>
1205
+ <key>dotted_name</key>
1206
+ <dict>
1207
+ <key>begin</key>
1208
+ <string>(?=[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*)</string>
1209
+ <key>end</key>
1210
+ <string>(?![A-Za-z0-9_\.])</string>
1211
+ <key>patterns</key>
1212
+ <array>
1213
+ <dict>
1214
+ <key>begin</key>
1215
+ <string>(\.)(?=[A-Za-z_][A-Za-z0-9_]*)</string>
1216
+ <key>end</key>
1217
+ <string>(?![A-Za-z0-9_])</string>
1218
+ <key>patterns</key>
1219
+ <array>
1220
+ <dict>
1221
+ <key>include</key>
1222
+ <string>#magic_function_names</string>
1223
+ </dict>
1224
+ <dict>
1225
+ <key>include</key>
1226
+ <string>#magic_variable_names</string>
1227
+ </dict>
1228
+ <dict>
1229
+ <key>include</key>
1230
+ <string>#illegal_names</string>
1231
+ </dict>
1232
+ <dict>
1233
+ <key>include</key>
1234
+ <string>#generic_names</string>
1235
+ </dict>
1236
+ </array>
1237
+ </dict>
1238
+ <dict>
1239
+ <key>begin</key>
1240
+ <string>(?&lt;!\.)(?=[A-Za-z_][A-Za-z0-9_]*)</string>
1241
+ <key>end</key>
1242
+ <string>(?![A-Za-z0-9_])</string>
1243
+ <key>patterns</key>
1244
+ <array>
1245
+ <dict>
1246
+ <key>include</key>
1247
+ <string>#builtin_functions</string>
1248
+ </dict>
1249
+ <dict>
1250
+ <key>include</key>
1251
+ <string>#builtin_types</string>
1252
+ </dict>
1253
+ <dict>
1254
+ <key>include</key>
1255
+ <string>#builtin_exceptions</string>
1256
+ </dict>
1257
+ <dict>
1258
+ <key>include</key>
1259
+ <string>#illegal_names</string>
1260
+ </dict>
1261
+ <dict>
1262
+ <key>include</key>
1263
+ <string>#magic_function_names</string>
1264
+ </dict>
1265
+ <dict>
1266
+ <key>include</key>
1267
+ <string>#magic_variable_names</string>
1268
+ </dict>
1269
+ <dict>
1270
+ <key>include</key>
1271
+ <string>#language_variables</string>
1272
+ </dict>
1273
+ <dict>
1274
+ <key>include</key>
1275
+ <string>#generic_names</string>
1276
+ </dict>
1277
+ </array>
1278
+ </dict>
1279
+ </array>
1280
+ </dict>
1281
+ <key>entity_name_class</key>
1282
+ <dict>
1283
+ <key>patterns</key>
1284
+ <array>
1285
+ <dict>
1286
+ <key>include</key>
1287
+ <string>#illegal_names</string>
1288
+ </dict>
1289
+ <dict>
1290
+ <key>include</key>
1291
+ <string>#generic_names</string>
1292
+ </dict>
1293
+ </array>
1294
+ </dict>
1295
+ <key>entity_name_function</key>
1296
+ <dict>
1297
+ <key>patterns</key>
1298
+ <array>
1299
+ <dict>
1300
+ <key>include</key>
1301
+ <string>#magic_function_names</string>
1302
+ </dict>
1303
+ <dict>
1304
+ <key>include</key>
1305
+ <string>#illegal_names</string>
1306
+ </dict>
1307
+ <dict>
1308
+ <key>include</key>
1309
+ <string>#generic_names</string>
1310
+ </dict>
1311
+ </array>
1312
+ </dict>
1313
+ <key>escaped_char</key>
1314
+ <dict>
1315
+ <key>captures</key>
1316
+ <dict>
1317
+ <key>1</key>
1318
+ <dict>
1319
+ <key>name</key>
1320
+ <string>constant.character.escape.hex.python</string>
1321
+ </dict>
1322
+ <key>10</key>
1323
+ <dict>
1324
+ <key>name</key>
1325
+ <string>constant.character.escape.linefeed.python</string>
1326
+ </dict>
1327
+ <key>11</key>
1328
+ <dict>
1329
+ <key>name</key>
1330
+ <string>constant.character.escape.return.python</string>
1331
+ </dict>
1332
+ <key>12</key>
1333
+ <dict>
1334
+ <key>name</key>
1335
+ <string>constant.character.escape.tab.python</string>
1336
+ </dict>
1337
+ <key>13</key>
1338
+ <dict>
1339
+ <key>name</key>
1340
+ <string>constant.character.escape.vertical-tab.python</string>
1341
+ </dict>
1342
+ <key>2</key>
1343
+ <dict>
1344
+ <key>name</key>
1345
+ <string>constant.character.escape.octal.python</string>
1346
+ </dict>
1347
+ <key>3</key>
1348
+ <dict>
1349
+ <key>name</key>
1350
+ <string>constant.character.escape.newline.python</string>
1351
+ </dict>
1352
+ <key>4</key>
1353
+ <dict>
1354
+ <key>name</key>
1355
+ <string>constant.character.escape.backlash.python</string>
1356
+ </dict>
1357
+ <key>5</key>
1358
+ <dict>
1359
+ <key>name</key>
1360
+ <string>constant.character.escape.double-quote.python</string>
1361
+ </dict>
1362
+ <key>6</key>
1363
+ <dict>
1364
+ <key>name</key>
1365
+ <string>constant.character.escape.single-quote.python</string>
1366
+ </dict>
1367
+ <key>7</key>
1368
+ <dict>
1369
+ <key>name</key>
1370
+ <string>constant.character.escape.bell.python</string>
1371
+ </dict>
1372
+ <key>8</key>
1373
+ <dict>
1374
+ <key>name</key>
1375
+ <string>constant.character.escape.backspace.python</string>
1376
+ </dict>
1377
+ <key>9</key>
1378
+ <dict>
1379
+ <key>name</key>
1380
+ <string>constant.character.escape.formfeed.python</string>
1381
+ </dict>
1382
+ </dict>
1383
+ <key>match</key>
1384
+ <string>(\\x[0-9A-F]{2})|(\\[0-7]{3})|(\\\n)|(\\\\)|(\\\")|(\\')|(\\a)|(\\b)|(\\f)|(\\n)|(\\r)|(\\t)|(\\v)</string>
1385
+ </dict>
1386
+ <key>escaped_unicode_char</key>
1387
+ <dict>
1388
+ <key>captures</key>
1389
+ <dict>
1390
+ <key>1</key>
1391
+ <dict>
1392
+ <key>name</key>
1393
+ <string>constant.character.escape.unicode.16-bit-hex.python</string>
1394
+ </dict>
1395
+ <key>2</key>
1396
+ <dict>
1397
+ <key>name</key>
1398
+ <string>constant.character.escape.unicode.32-bit-hex.python</string>
1399
+ </dict>
1400
+ <key>3</key>
1401
+ <dict>
1402
+ <key>name</key>
1403
+ <string>constant.character.escape.unicode.name.python</string>
1404
+ </dict>
1405
+ </dict>
1406
+ <key>match</key>
1407
+ <string>(\\U[0-9A-Fa-f]{8})|(\\u[0-9A-Fa-f]{4})|(\\N\{[a-zA-Z ]+\})</string>
1408
+ </dict>
1409
+ <key>function_name</key>
1410
+ <dict>
1411
+ <key>patterns</key>
1412
+ <array>
1413
+ <dict>
1414
+ <key>include</key>
1415
+ <string>#magic_function_names</string>
1416
+ </dict>
1417
+ <dict>
1418
+ <key>include</key>
1419
+ <string>#magic_variable_names</string>
1420
+ </dict>
1421
+ <dict>
1422
+ <key>include</key>
1423
+ <string>#builtin_exceptions</string>
1424
+ </dict>
1425
+ <dict>
1426
+ <key>include</key>
1427
+ <string>#builtin_functions</string>
1428
+ </dict>
1429
+ <dict>
1430
+ <key>include</key>
1431
+ <string>#builtin_types</string>
1432
+ </dict>
1433
+ <dict>
1434
+ <key>include</key>
1435
+ <string>#generic_names</string>
1436
+ </dict>
1437
+ </array>
1438
+ </dict>
1439
+ <key>generic_names</key>
1440
+ <dict>
1441
+ <key>match</key>
1442
+ <string>[A-Za-z_][A-Za-z0-9_]*</string>
1443
+ </dict>
1444
+ <key>illegal_names</key>
1445
+ <dict>
1446
+ <key>match</key>
1447
+ <string>\b(and|as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|not|or|pass|print|raise|return|try|while|with|yield)\b</string>
1448
+ <key>name</key>
1449
+ <string>invalid.illegal.name.python</string>
1450
+ </dict>
1451
+ <key>keyword_arguments</key>
1452
+ <dict>
1453
+ <key>begin</key>
1454
+ <string>\b([a-zA-Z_][a-zA-Z_0-9]*)\s*(=)(?!=)</string>
1455
+ <key>beginCaptures</key>
1456
+ <dict>
1457
+ <key>1</key>
1458
+ <dict>
1459
+ <key>name</key>
1460
+ <string>variable.parameter.function.python</string>
1461
+ </dict>
1462
+ <key>2</key>
1463
+ <dict>
1464
+ <key>name</key>
1465
+ <string>keyword.operator.assignment.python</string>
1466
+ </dict>
1467
+ </dict>
1468
+ <key>end</key>
1469
+ <string>\s*(?:(,)|(?=$\n?|[\)\:]))</string>
1470
+ <key>endCaptures</key>
1471
+ <dict>
1472
+ <key>1</key>
1473
+ <dict>
1474
+ <key>name</key>
1475
+ <string>punctuation.separator.parameters.python</string>
1476
+ </dict>
1477
+ </dict>
1478
+ <key>patterns</key>
1479
+ <array>
1480
+ <dict>
1481
+ <key>include</key>
1482
+ <string>$self</string>
1483
+ </dict>
1484
+ </array>
1485
+ </dict>
1486
+ <key>language_variables</key>
1487
+ <dict>
1488
+ <key>match</key>
1489
+ <string>\b(self|cls)\b</string>
1490
+ <key>name</key>
1491
+ <string>variable.language.python</string>
1492
+ </dict>
1493
+ <key>line_continuation</key>
1494
+ <dict>
1495
+ <key>captures</key>
1496
+ <dict>
1497
+ <key>1</key>
1498
+ <dict>
1499
+ <key>name</key>
1500
+ <string>punctuation.separator.continuation.line.python</string>
1501
+ </dict>
1502
+ <key>2</key>
1503
+ <dict>
1504
+ <key>name</key>
1505
+ <string>invalid.illegal.unexpected-text.python</string>
1506
+ </dict>
1507
+ </dict>
1508
+ <key>match</key>
1509
+ <string>(\\)(.*)$\n?</string>
1510
+ </dict>
1511
+ <key>magic_function_names</key>
1512
+ <dict>
1513
+ <key>comment</key>
1514
+ <string>these methods have magic interpretation by python and are generally called indirectly through syntactic constructs</string>
1515
+ <key>match</key>
1516
+ <string>(?x)\b(__(?:
1517
+ abs|add|and|call|cmp|coerce|complex|contains|del|delattr|
1518
+ delete|delitem|delslice|div|divmod|enter|eq|exit|float|
1519
+ floordiv|ge|get|getattr|getattribute|getitem|getslice|gt|
1520
+ hash|hex|iadd|iand|idiv|ifloordiv|ilshift|imod|imul|init|
1521
+ int|invert|ior|ipow|irshift|isub|iter|itruediv|ixor|le|len|
1522
+ long|lshift|lt|mod|mul|ne|neg|new|nonzero|oct|or|pos|pow|
1523
+ radd|rand|rdiv|rdivmod|repr|rfloordiv|rlshift|rmod|rmul|ror|
1524
+ rpow|rrshift|rshift|rsub|rtruediv|rxor|set|setattr|setitem|
1525
+ setslice|str|sub|truediv|unicode|xor
1526
+ )__)\b</string>
1527
+ <key>name</key>
1528
+ <string>support.function.magic.python</string>
1529
+ </dict>
1530
+ <key>magic_variable_names</key>
1531
+ <dict>
1532
+ <key>comment</key>
1533
+ <string>magic variables which a class/module may have.</string>
1534
+ <key>match</key>
1535
+ <string>\b__(all|bases|class|debug|dict|doc|file|members|metaclass|methods|name|slots|weakref)__\b</string>
1536
+ <key>name</key>
1537
+ <string>support.variable.magic.python</string>
1538
+ </dict>
1539
+ <key>regular_expressions</key>
1540
+ <dict>
1541
+ <key>comment</key>
1542
+ <string>Changed disabled to 1 to turn off syntax highlighting in “r” strings.</string>
1543
+ <key>disabled</key>
1544
+ <integer>0</integer>
1545
+ <key>patterns</key>
1546
+ <array>
1547
+ <dict>
1548
+ <key>include</key>
1549
+ <string>source.regexp.python</string>
1550
+ </dict>
1551
+ </array>
1552
+ </dict>
1553
+ <key>string_quoted_double</key>
1554
+ <dict>
1555
+ <key>patterns</key>
1556
+ <array>
1557
+ <dict>
1558
+ <key>begin</key>
1559
+ <string>([uU]r)(""")</string>
1560
+ <key>beginCaptures</key>
1561
+ <dict>
1562
+ <key>1</key>
1563
+ <dict>
1564
+ <key>name</key>
1565
+ <string>storage.type.string.python</string>
1566
+ </dict>
1567
+ <key>2</key>
1568
+ <dict>
1569
+ <key>name</key>
1570
+ <string>punctuation.definition.string.begin.python</string>
1571
+ </dict>
1572
+ </dict>
1573
+ <key>comment</key>
1574
+ <string>single quoted unicode-raw string</string>
1575
+ <key>end</key>
1576
+ <string>((?&lt;=""")(")""|""")</string>
1577
+ <key>endCaptures</key>
1578
+ <dict>
1579
+ <key>1</key>
1580
+ <dict>
1581
+ <key>name</key>
1582
+ <string>punctuation.definition.string.end.python</string>
1583
+ </dict>
1584
+ <key>2</key>
1585
+ <dict>
1586
+ <key>name</key>
1587
+ <string>meta.empty-string.double.python</string>
1588
+ </dict>
1589
+ </dict>
1590
+ <key>name</key>
1591
+ <string>string.quoted.double.block.unicode-raw-regex.python</string>
1592
+ <key>patterns</key>
1593
+ <array>
1594
+ <dict>
1595
+ <key>include</key>
1596
+ <string>#constant_placeholder</string>
1597
+ </dict>
1598
+ <dict>
1599
+ <key>include</key>
1600
+ <string>#escaped_unicode_char</string>
1601
+ </dict>
1602
+ <dict>
1603
+ <key>include</key>
1604
+ <string>#escaped_char</string>
1605
+ </dict>
1606
+ <dict>
1607
+ <key>include</key>
1608
+ <string>#regular_expressions</string>
1609
+ </dict>
1610
+ </array>
1611
+ </dict>
1612
+ <dict>
1613
+ <key>begin</key>
1614
+ <string>([uU]R)(""")</string>
1615
+ <key>beginCaptures</key>
1616
+ <dict>
1617
+ <key>1</key>
1618
+ <dict>
1619
+ <key>name</key>
1620
+ <string>storage.type.string.python</string>
1621
+ </dict>
1622
+ <key>2</key>
1623
+ <dict>
1624
+ <key>name</key>
1625
+ <string>punctuation.definition.string.begin.python</string>
1626
+ </dict>
1627
+ </dict>
1628
+ <key>comment</key>
1629
+ <string>single quoted unicode-raw string without regular expression highlighting</string>
1630
+ <key>end</key>
1631
+ <string>((?&lt;=""")(")""|""")</string>
1632
+ <key>endCaptures</key>
1633
+ <dict>
1634
+ <key>1</key>
1635
+ <dict>
1636
+ <key>name</key>
1637
+ <string>punctuation.definition.string.end.python</string>
1638
+ </dict>
1639
+ <key>2</key>
1640
+ <dict>
1641
+ <key>name</key>
1642
+ <string>meta.empty-string.double.python</string>
1643
+ </dict>
1644
+ </dict>
1645
+ <key>name</key>
1646
+ <string>string.quoted.double.block.unicode-raw.python</string>
1647
+ <key>patterns</key>
1648
+ <array>
1649
+ <dict>
1650
+ <key>include</key>
1651
+ <string>#constant_placeholder</string>
1652
+ </dict>
1653
+ <dict>
1654
+ <key>include</key>
1655
+ <string>#escaped_unicode_char</string>
1656
+ </dict>
1657
+ <dict>
1658
+ <key>include</key>
1659
+ <string>#escaped_char</string>
1660
+ </dict>
1661
+ </array>
1662
+ </dict>
1663
+ <dict>
1664
+ <key>begin</key>
1665
+ <string>(r)(""")</string>
1666
+ <key>beginCaptures</key>
1667
+ <dict>
1668
+ <key>1</key>
1669
+ <dict>
1670
+ <key>name</key>
1671
+ <string>storage.type.string.python</string>
1672
+ </dict>
1673
+ <key>2</key>
1674
+ <dict>
1675
+ <key>name</key>
1676
+ <string>punctuation.definition.string.begin.python</string>
1677
+ </dict>
1678
+ </dict>
1679
+ <key>comment</key>
1680
+ <string>double quoted raw string</string>
1681
+ <key>end</key>
1682
+ <string>((?&lt;=""")(")""|""")</string>
1683
+ <key>endCaptures</key>
1684
+ <dict>
1685
+ <key>1</key>
1686
+ <dict>
1687
+ <key>name</key>
1688
+ <string>punctuation.definition.string.end.python</string>
1689
+ </dict>
1690
+ <key>2</key>
1691
+ <dict>
1692
+ <key>name</key>
1693
+ <string>meta.empty-string.double.python</string>
1694
+ </dict>
1695
+ </dict>
1696
+ <key>name</key>
1697
+ <string>string.quoted.double.block.raw-regex.python</string>
1698
+ <key>patterns</key>
1699
+ <array>
1700
+ <dict>
1701
+ <key>include</key>
1702
+ <string>#constant_placeholder</string>
1703
+ </dict>
1704
+ <dict>
1705
+ <key>include</key>
1706
+ <string>#escaped_char</string>
1707
+ </dict>
1708
+ <dict>
1709
+ <key>include</key>
1710
+ <string>#regular_expressions</string>
1711
+ </dict>
1712
+ </array>
1713
+ </dict>
1714
+ <dict>
1715
+ <key>begin</key>
1716
+ <string>(R)(""")</string>
1717
+ <key>beginCaptures</key>
1718
+ <dict>
1719
+ <key>1</key>
1720
+ <dict>
1721
+ <key>name</key>
1722
+ <string>storage.type.string.python</string>
1723
+ </dict>
1724
+ <key>2</key>
1725
+ <dict>
1726
+ <key>name</key>
1727
+ <string>punctuation.definition.string.begin.python</string>
1728
+ </dict>
1729
+ </dict>
1730
+ <key>comment</key>
1731
+ <string>double quoted raw string</string>
1732
+ <key>end</key>
1733
+ <string>((?&lt;=""")(")""|""")</string>
1734
+ <key>endCaptures</key>
1735
+ <dict>
1736
+ <key>1</key>
1737
+ <dict>
1738
+ <key>name</key>
1739
+ <string>punctuation.definition.string.end.python</string>
1740
+ </dict>
1741
+ <key>2</key>
1742
+ <dict>
1743
+ <key>name</key>
1744
+ <string>meta.empty-string.double.python</string>
1745
+ </dict>
1746
+ </dict>
1747
+ <key>name</key>
1748
+ <string>string.quoted.double.block.raw.python</string>
1749
+ <key>patterns</key>
1750
+ <array>
1751
+ <dict>
1752
+ <key>include</key>
1753
+ <string>#constant_placeholder</string>
1754
+ </dict>
1755
+ <dict>
1756
+ <key>include</key>
1757
+ <string>#escaped_char</string>
1758
+ </dict>
1759
+ </array>
1760
+ </dict>
1761
+ <dict>
1762
+ <key>begin</key>
1763
+ <string>([uU])(""")</string>
1764
+ <key>beginCaptures</key>
1765
+ <dict>
1766
+ <key>1</key>
1767
+ <dict>
1768
+ <key>name</key>
1769
+ <string>storage.type.string.python</string>
1770
+ </dict>
1771
+ <key>2</key>
1772
+ <dict>
1773
+ <key>name</key>
1774
+ <string>punctuation.definition.string.begin.python</string>
1775
+ </dict>
1776
+ </dict>
1777
+ <key>comment</key>
1778
+ <string>double quoted unicode string</string>
1779
+ <key>end</key>
1780
+ <string>((?&lt;=""")(")""|""")</string>
1781
+ <key>endCaptures</key>
1782
+ <dict>
1783
+ <key>1</key>
1784
+ <dict>
1785
+ <key>name</key>
1786
+ <string>punctuation.definition.string.end.python</string>
1787
+ </dict>
1788
+ <key>2</key>
1789
+ <dict>
1790
+ <key>name</key>
1791
+ <string>meta.empty-string.double.python</string>
1792
+ </dict>
1793
+ </dict>
1794
+ <key>name</key>
1795
+ <string>string.quoted.double.block.unicode.python</string>
1796
+ <key>patterns</key>
1797
+ <array>
1798
+ <dict>
1799
+ <key>include</key>
1800
+ <string>#constant_placeholder</string>
1801
+ </dict>
1802
+ <dict>
1803
+ <key>include</key>
1804
+ <string>#escaped_unicode_char</string>
1805
+ </dict>
1806
+ <dict>
1807
+ <key>include</key>
1808
+ <string>#escaped_char</string>
1809
+ </dict>
1810
+ </array>
1811
+ </dict>
1812
+ <dict>
1813
+ <key>begin</key>
1814
+ <string>([uU]r)(")</string>
1815
+ <key>beginCaptures</key>
1816
+ <dict>
1817
+ <key>1</key>
1818
+ <dict>
1819
+ <key>name</key>
1820
+ <string>storage.type.string.python</string>
1821
+ </dict>
1822
+ <key>2</key>
1823
+ <dict>
1824
+ <key>name</key>
1825
+ <string>punctuation.definition.string.begin.python</string>
1826
+ </dict>
1827
+ </dict>
1828
+ <key>comment</key>
1829
+ <string>double-quoted raw string</string>
1830
+ <key>end</key>
1831
+ <string>((?&lt;=")(")|")|(\n)</string>
1832
+ <key>endCaptures</key>
1833
+ <dict>
1834
+ <key>1</key>
1835
+ <dict>
1836
+ <key>name</key>
1837
+ <string>punctuation.definition.string.end.python</string>
1838
+ </dict>
1839
+ <key>2</key>
1840
+ <dict>
1841
+ <key>name</key>
1842
+ <string>meta.empty-string.double.python</string>
1843
+ </dict>
1844
+ <key>3</key>
1845
+ <dict>
1846
+ <key>name</key>
1847
+ <string>invalid.illegal.unclosed-string.python</string>
1848
+ </dict>
1849
+ </dict>
1850
+ <key>name</key>
1851
+ <string>string.quoted.double.single-line.unicode-raw-regex.python</string>
1852
+ <key>patterns</key>
1853
+ <array>
1854
+ <dict>
1855
+ <key>include</key>
1856
+ <string>#constant_placeholder</string>
1857
+ </dict>
1858
+ <dict>
1859
+ <key>include</key>
1860
+ <string>#escaped_unicode_char</string>
1861
+ </dict>
1862
+ <dict>
1863
+ <key>include</key>
1864
+ <string>#escaped_char</string>
1865
+ </dict>
1866
+ <dict>
1867
+ <key>include</key>
1868
+ <string>#regular_expressions</string>
1869
+ </dict>
1870
+ </array>
1871
+ </dict>
1872
+ <dict>
1873
+ <key>begin</key>
1874
+ <string>([uU]R)(")</string>
1875
+ <key>beginCaptures</key>
1876
+ <dict>
1877
+ <key>1</key>
1878
+ <dict>
1879
+ <key>name</key>
1880
+ <string>storage.type.string.python</string>
1881
+ </dict>
1882
+ <key>2</key>
1883
+ <dict>
1884
+ <key>name</key>
1885
+ <string>punctuation.definition.string.begin.python</string>
1886
+ </dict>
1887
+ </dict>
1888
+ <key>comment</key>
1889
+ <string>double-quoted raw string</string>
1890
+ <key>end</key>
1891
+ <string>((?&lt;=")(")|")|(\n)</string>
1892
+ <key>endCaptures</key>
1893
+ <dict>
1894
+ <key>1</key>
1895
+ <dict>
1896
+ <key>name</key>
1897
+ <string>punctuation.definition.string.end.python</string>
1898
+ </dict>
1899
+ <key>2</key>
1900
+ <dict>
1901
+ <key>name</key>
1902
+ <string>meta.empty-string.double.python</string>
1903
+ </dict>
1904
+ <key>3</key>
1905
+ <dict>
1906
+ <key>name</key>
1907
+ <string>invalid.illegal.unclosed-string.python</string>
1908
+ </dict>
1909
+ </dict>
1910
+ <key>name</key>
1911
+ <string>string.quoted.double.single-line.unicode-raw.python</string>
1912
+ <key>patterns</key>
1913
+ <array>
1914
+ <dict>
1915
+ <key>include</key>
1916
+ <string>#constant_placeholder</string>
1917
+ </dict>
1918
+ <dict>
1919
+ <key>include</key>
1920
+ <string>#escaped_unicode_char</string>
1921
+ </dict>
1922
+ <dict>
1923
+ <key>include</key>
1924
+ <string>#escaped_char</string>
1925
+ </dict>
1926
+ </array>
1927
+ </dict>
1928
+ <dict>
1929
+ <key>begin</key>
1930
+ <string>(r)(")</string>
1931
+ <key>beginCaptures</key>
1932
+ <dict>
1933
+ <key>1</key>
1934
+ <dict>
1935
+ <key>name</key>
1936
+ <string>storage.type.string.python</string>
1937
+ </dict>
1938
+ <key>2</key>
1939
+ <dict>
1940
+ <key>name</key>
1941
+ <string>punctuation.definition.string.begin.python</string>
1942
+ </dict>
1943
+ </dict>
1944
+ <key>comment</key>
1945
+ <string>double-quoted raw string</string>
1946
+ <key>end</key>
1947
+ <string>((?&lt;=")(")|")|(\n)</string>
1948
+ <key>endCaptures</key>
1949
+ <dict>
1950
+ <key>1</key>
1951
+ <dict>
1952
+ <key>name</key>
1953
+ <string>punctuation.definition.string.end.python</string>
1954
+ </dict>
1955
+ <key>2</key>
1956
+ <dict>
1957
+ <key>name</key>
1958
+ <string>meta.empty-string.double.python</string>
1959
+ </dict>
1960
+ <key>3</key>
1961
+ <dict>
1962
+ <key>name</key>
1963
+ <string>invalid.illegal.unclosed-string.python</string>
1964
+ </dict>
1965
+ </dict>
1966
+ <key>name</key>
1967
+ <string>string.quoted.double.single-line.raw-regex.python</string>
1968
+ <key>patterns</key>
1969
+ <array>
1970
+ <dict>
1971
+ <key>include</key>
1972
+ <string>#constant_placeholder</string>
1973
+ </dict>
1974
+ <dict>
1975
+ <key>include</key>
1976
+ <string>#escaped_char</string>
1977
+ </dict>
1978
+ <dict>
1979
+ <key>include</key>
1980
+ <string>#regular_expressions</string>
1981
+ </dict>
1982
+ </array>
1983
+ </dict>
1984
+ <dict>
1985
+ <key>begin</key>
1986
+ <string>(R)(")</string>
1987
+ <key>beginCaptures</key>
1988
+ <dict>
1989
+ <key>1</key>
1990
+ <dict>
1991
+ <key>name</key>
1992
+ <string>storage.type.string.python</string>
1993
+ </dict>
1994
+ <key>2</key>
1995
+ <dict>
1996
+ <key>name</key>
1997
+ <string>punctuation.definition.string.begin.python</string>
1998
+ </dict>
1999
+ </dict>
2000
+ <key>comment</key>
2001
+ <string>double-quoted raw string</string>
2002
+ <key>end</key>
2003
+ <string>((?&lt;=")(")|")|(\n)</string>
2004
+ <key>endCaptures</key>
2005
+ <dict>
2006
+ <key>1</key>
2007
+ <dict>
2008
+ <key>name</key>
2009
+ <string>punctuation.definition.string.end.python</string>
2010
+ </dict>
2011
+ <key>2</key>
2012
+ <dict>
2013
+ <key>name</key>
2014
+ <string>meta.empty-string.double.python</string>
2015
+ </dict>
2016
+ <key>3</key>
2017
+ <dict>
2018
+ <key>name</key>
2019
+ <string>invalid.illegal.unclosed-string.python</string>
2020
+ </dict>
2021
+ </dict>
2022
+ <key>name</key>
2023
+ <string>string.quoted.double.single-line.raw.python</string>
2024
+ <key>patterns</key>
2025
+ <array>
2026
+ <dict>
2027
+ <key>include</key>
2028
+ <string>#constant_placeholder</string>
2029
+ </dict>
2030
+ <dict>
2031
+ <key>include</key>
2032
+ <string>#escaped_char</string>
2033
+ </dict>
2034
+ </array>
2035
+ </dict>
2036
+ <dict>
2037
+ <key>begin</key>
2038
+ <string>([uU])(")</string>
2039
+ <key>beginCaptures</key>
2040
+ <dict>
2041
+ <key>1</key>
2042
+ <dict>
2043
+ <key>name</key>
2044
+ <string>storage.type.string.python</string>
2045
+ </dict>
2046
+ <key>2</key>
2047
+ <dict>
2048
+ <key>name</key>
2049
+ <string>punctuation.definition.string.begin.python</string>
2050
+ </dict>
2051
+ </dict>
2052
+ <key>comment</key>
2053
+ <string>double quoted unicode string</string>
2054
+ <key>end</key>
2055
+ <string>((?&lt;=")(")|")|(\n)</string>
2056
+ <key>endCaptures</key>
2057
+ <dict>
2058
+ <key>1</key>
2059
+ <dict>
2060
+ <key>name</key>
2061
+ <string>punctuation.definition.string.end.python</string>
2062
+ </dict>
2063
+ <key>2</key>
2064
+ <dict>
2065
+ <key>name</key>
2066
+ <string>meta.empty-string.double.python</string>
2067
+ </dict>
2068
+ <key>3</key>
2069
+ <dict>
2070
+ <key>name</key>
2071
+ <string>invalid.illegal.unclosed-string.python</string>
2072
+ </dict>
2073
+ </dict>
2074
+ <key>name</key>
2075
+ <string>string.quoted.double.single-line.unicode.python</string>
2076
+ <key>patterns</key>
2077
+ <array>
2078
+ <dict>
2079
+ <key>include</key>
2080
+ <string>#constant_placeholder</string>
2081
+ </dict>
2082
+ <dict>
2083
+ <key>include</key>
2084
+ <string>#escaped_unicode_char</string>
2085
+ </dict>
2086
+ <dict>
2087
+ <key>include</key>
2088
+ <string>#escaped_char</string>
2089
+ </dict>
2090
+ </array>
2091
+ </dict>
2092
+ <dict>
2093
+ <key>begin</key>
2094
+ <string>(""")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
2095
+ <key>beginCaptures</key>
2096
+ <dict>
2097
+ <key>1</key>
2098
+ <dict>
2099
+ <key>name</key>
2100
+ <string>punctuation.definition.string.begin.python</string>
2101
+ </dict>
2102
+ </dict>
2103
+ <key>comment</key>
2104
+ <string>double quoted string</string>
2105
+ <key>end</key>
2106
+ <string>((?&lt;=""")(")""|""")</string>
2107
+ <key>endCaptures</key>
2108
+ <dict>
2109
+ <key>1</key>
2110
+ <dict>
2111
+ <key>name</key>
2112
+ <string>punctuation.definition.string.end.python</string>
2113
+ </dict>
2114
+ <key>2</key>
2115
+ <dict>
2116
+ <key>name</key>
2117
+ <string>meta.empty-string.double.python</string>
2118
+ </dict>
2119
+ </dict>
2120
+ <key>name</key>
2121
+ <string>string.quoted.double.block.sql.python</string>
2122
+ <key>patterns</key>
2123
+ <array>
2124
+ <dict>
2125
+ <key>include</key>
2126
+ <string>#constant_placeholder</string>
2127
+ </dict>
2128
+ <dict>
2129
+ <key>include</key>
2130
+ <string>#escaped_char</string>
2131
+ </dict>
2132
+ <dict>
2133
+ <key>include</key>
2134
+ <string>source.sql</string>
2135
+ </dict>
2136
+ </array>
2137
+ </dict>
2138
+ <dict>
2139
+ <key>begin</key>
2140
+ <string>(")(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
2141
+ <key>beginCaptures</key>
2142
+ <dict>
2143
+ <key>1</key>
2144
+ <dict>
2145
+ <key>name</key>
2146
+ <string>punctuation.definition.string.begin.python</string>
2147
+ </dict>
2148
+ </dict>
2149
+ <key>comment</key>
2150
+ <string>double quoted string</string>
2151
+ <key>end</key>
2152
+ <string>((?&lt;=")(")|")|(\n)</string>
2153
+ <key>endCaptures</key>
2154
+ <dict>
2155
+ <key>1</key>
2156
+ <dict>
2157
+ <key>name</key>
2158
+ <string>punctuation.definition.string.end.python</string>
2159
+ </dict>
2160
+ <key>2</key>
2161
+ <dict>
2162
+ <key>name</key>
2163
+ <string>meta.empty-string.double.python</string>
2164
+ </dict>
2165
+ <key>3</key>
2166
+ <dict>
2167
+ <key>name</key>
2168
+ <string>invalid.illegal.unclosed-string.python</string>
2169
+ </dict>
2170
+ </dict>
2171
+ <key>name</key>
2172
+ <string>string.quoted.double.single-line.sql.python</string>
2173
+ <key>patterns</key>
2174
+ <array>
2175
+ <dict>
2176
+ <key>include</key>
2177
+ <string>#constant_placeholder</string>
2178
+ </dict>
2179
+ <dict>
2180
+ <key>include</key>
2181
+ <string>#escaped_char</string>
2182
+ </dict>
2183
+ <dict>
2184
+ <key>include</key>
2185
+ <string>source.sql</string>
2186
+ </dict>
2187
+ </array>
2188
+ </dict>
2189
+ <dict>
2190
+ <key>begin</key>
2191
+ <string>(""")</string>
2192
+ <key>beginCaptures</key>
2193
+ <dict>
2194
+ <key>1</key>
2195
+ <dict>
2196
+ <key>name</key>
2197
+ <string>punctuation.definition.string.begin.python</string>
2198
+ </dict>
2199
+ </dict>
2200
+ <key>comment</key>
2201
+ <string>double quoted string</string>
2202
+ <key>end</key>
2203
+ <string>((?&lt;=""")(")""|""")</string>
2204
+ <key>endCaptures</key>
2205
+ <dict>
2206
+ <key>1</key>
2207
+ <dict>
2208
+ <key>name</key>
2209
+ <string>punctuation.definition.string.end.python</string>
2210
+ </dict>
2211
+ <key>2</key>
2212
+ <dict>
2213
+ <key>name</key>
2214
+ <string>meta.empty-string.double.python</string>
2215
+ </dict>
2216
+ </dict>
2217
+ <key>name</key>
2218
+ <string>string.quoted.double.block.python</string>
2219
+ <key>patterns</key>
2220
+ <array>
2221
+ <dict>
2222
+ <key>include</key>
2223
+ <string>#constant_placeholder</string>
2224
+ </dict>
2225
+ <dict>
2226
+ <key>include</key>
2227
+ <string>#escaped_char</string>
2228
+ </dict>
2229
+ </array>
2230
+ </dict>
2231
+ <dict>
2232
+ <key>begin</key>
2233
+ <string>(")</string>
2234
+ <key>beginCaptures</key>
2235
+ <dict>
2236
+ <key>1</key>
2237
+ <dict>
2238
+ <key>name</key>
2239
+ <string>punctuation.definition.string.begin.python</string>
2240
+ </dict>
2241
+ </dict>
2242
+ <key>comment</key>
2243
+ <string>double quoted string</string>
2244
+ <key>end</key>
2245
+ <string>((?&lt;=")(")|")|(\n)</string>
2246
+ <key>endCaptures</key>
2247
+ <dict>
2248
+ <key>1</key>
2249
+ <dict>
2250
+ <key>name</key>
2251
+ <string>punctuation.definition.string.end.python</string>
2252
+ </dict>
2253
+ <key>2</key>
2254
+ <dict>
2255
+ <key>name</key>
2256
+ <string>meta.empty-string.double.python</string>
2257
+ </dict>
2258
+ <key>3</key>
2259
+ <dict>
2260
+ <key>name</key>
2261
+ <string>invalid.illegal.unclosed-string.python</string>
2262
+ </dict>
2263
+ </dict>
2264
+ <key>name</key>
2265
+ <string>string.quoted.double.single-line.python</string>
2266
+ <key>patterns</key>
2267
+ <array>
2268
+ <dict>
2269
+ <key>include</key>
2270
+ <string>#constant_placeholder</string>
2271
+ </dict>
2272
+ <dict>
2273
+ <key>include</key>
2274
+ <string>#escaped_char</string>
2275
+ </dict>
2276
+ </array>
2277
+ </dict>
2278
+ </array>
2279
+ </dict>
2280
+ <key>string_quoted_single</key>
2281
+ <dict>
2282
+ <key>patterns</key>
2283
+ <array>
2284
+ <dict>
2285
+ <key>captures</key>
2286
+ <dict>
2287
+ <key>1</key>
2288
+ <dict>
2289
+ <key>name</key>
2290
+ <string>punctuation.definition.string.begin.python</string>
2291
+ </dict>
2292
+ <key>2</key>
2293
+ <dict>
2294
+ <key>name</key>
2295
+ <string>punctuation.definition.string.end.python</string>
2296
+ </dict>
2297
+ <key>3</key>
2298
+ <dict>
2299
+ <key>name</key>
2300
+ <string>meta.empty-string.single.python</string>
2301
+ </dict>
2302
+ </dict>
2303
+ <key>match</key>
2304
+ <string>(?&lt;!')(')(('))(?!')</string>
2305
+ <key>name</key>
2306
+ <string>string.quoted.single.single-line.python</string>
2307
+ </dict>
2308
+ <dict>
2309
+ <key>begin</key>
2310
+ <string>([uU]r)(''')</string>
2311
+ <key>beginCaptures</key>
2312
+ <dict>
2313
+ <key>1</key>
2314
+ <dict>
2315
+ <key>name</key>
2316
+ <string>storage.type.string.python</string>
2317
+ </dict>
2318
+ <key>2</key>
2319
+ <dict>
2320
+ <key>name</key>
2321
+ <string>punctuation.definition.string.begin.python</string>
2322
+ </dict>
2323
+ </dict>
2324
+ <key>comment</key>
2325
+ <string>single quoted unicode-raw string</string>
2326
+ <key>end</key>
2327
+ <string>((?&lt;=''')(')''|''')</string>
2328
+ <key>endCaptures</key>
2329
+ <dict>
2330
+ <key>1</key>
2331
+ <dict>
2332
+ <key>name</key>
2333
+ <string>punctuation.definition.string.end.python</string>
2334
+ </dict>
2335
+ <key>2</key>
2336
+ <dict>
2337
+ <key>name</key>
2338
+ <string>meta.empty-string.single.python</string>
2339
+ </dict>
2340
+ </dict>
2341
+ <key>name</key>
2342
+ <string>string.quoted.single.block.unicode-raw-regex.python</string>
2343
+ <key>patterns</key>
2344
+ <array>
2345
+ <dict>
2346
+ <key>include</key>
2347
+ <string>#constant_placeholder</string>
2348
+ </dict>
2349
+ <dict>
2350
+ <key>include</key>
2351
+ <string>#escaped_unicode_char</string>
2352
+ </dict>
2353
+ <dict>
2354
+ <key>include</key>
2355
+ <string>#escaped_char</string>
2356
+ </dict>
2357
+ <dict>
2358
+ <key>include</key>
2359
+ <string>#regular_expressions</string>
2360
+ </dict>
2361
+ </array>
2362
+ </dict>
2363
+ <dict>
2364
+ <key>begin</key>
2365
+ <string>([uU]R)(''')</string>
2366
+ <key>beginCaptures</key>
2367
+ <dict>
2368
+ <key>1</key>
2369
+ <dict>
2370
+ <key>name</key>
2371
+ <string>storage.type.string.python</string>
2372
+ </dict>
2373
+ <key>2</key>
2374
+ <dict>
2375
+ <key>name</key>
2376
+ <string>punctuation.definition.string.begin.python</string>
2377
+ </dict>
2378
+ </dict>
2379
+ <key>comment</key>
2380
+ <string>single quoted unicode-raw string</string>
2381
+ <key>end</key>
2382
+ <string>((?&lt;=''')(')''|''')</string>
2383
+ <key>endCaptures</key>
2384
+ <dict>
2385
+ <key>1</key>
2386
+ <dict>
2387
+ <key>name</key>
2388
+ <string>punctuation.definition.string.end.python</string>
2389
+ </dict>
2390
+ <key>2</key>
2391
+ <dict>
2392
+ <key>name</key>
2393
+ <string>meta.empty-string.single.python</string>
2394
+ </dict>
2395
+ </dict>
2396
+ <key>name</key>
2397
+ <string>string.quoted.single.block.unicode-raw.python</string>
2398
+ <key>patterns</key>
2399
+ <array>
2400
+ <dict>
2401
+ <key>include</key>
2402
+ <string>#constant_placeholder</string>
2403
+ </dict>
2404
+ <dict>
2405
+ <key>include</key>
2406
+ <string>#escaped_unicode_char</string>
2407
+ </dict>
2408
+ <dict>
2409
+ <key>include</key>
2410
+ <string>#escaped_char</string>
2411
+ </dict>
2412
+ </array>
2413
+ </dict>
2414
+ <dict>
2415
+ <key>begin</key>
2416
+ <string>(r)(''')</string>
2417
+ <key>beginCaptures</key>
2418
+ <dict>
2419
+ <key>1</key>
2420
+ <dict>
2421
+ <key>name</key>
2422
+ <string>storage.type.string.python</string>
2423
+ </dict>
2424
+ <key>2</key>
2425
+ <dict>
2426
+ <key>name</key>
2427
+ <string>punctuation.definition.string.begin.python</string>
2428
+ </dict>
2429
+ </dict>
2430
+ <key>comment</key>
2431
+ <string>single quoted raw string</string>
2432
+ <key>end</key>
2433
+ <string>((?&lt;=''')(')''|''')</string>
2434
+ <key>endCaptures</key>
2435
+ <dict>
2436
+ <key>1</key>
2437
+ <dict>
2438
+ <key>name</key>
2439
+ <string>punctuation.definition.string.end.python</string>
2440
+ </dict>
2441
+ <key>2</key>
2442
+ <dict>
2443
+ <key>name</key>
2444
+ <string>meta.empty-string.single.python</string>
2445
+ </dict>
2446
+ </dict>
2447
+ <key>name</key>
2448
+ <string>string.quoted.single.block.raw-regex.python</string>
2449
+ <key>patterns</key>
2450
+ <array>
2451
+ <dict>
2452
+ <key>include</key>
2453
+ <string>#constant_placeholder</string>
2454
+ </dict>
2455
+ <dict>
2456
+ <key>include</key>
2457
+ <string>#escaped_char</string>
2458
+ </dict>
2459
+ <dict>
2460
+ <key>include</key>
2461
+ <string>#regular_expressions</string>
2462
+ </dict>
2463
+ </array>
2464
+ </dict>
2465
+ <dict>
2466
+ <key>begin</key>
2467
+ <string>(R)(''')</string>
2468
+ <key>beginCaptures</key>
2469
+ <dict>
2470
+ <key>1</key>
2471
+ <dict>
2472
+ <key>name</key>
2473
+ <string>storage.type.string.python</string>
2474
+ </dict>
2475
+ <key>2</key>
2476
+ <dict>
2477
+ <key>name</key>
2478
+ <string>punctuation.definition.string.begin.python</string>
2479
+ </dict>
2480
+ </dict>
2481
+ <key>comment</key>
2482
+ <string>single quoted raw string</string>
2483
+ <key>end</key>
2484
+ <string>((?&lt;=''')(')''|''')</string>
2485
+ <key>endCaptures</key>
2486
+ <dict>
2487
+ <key>1</key>
2488
+ <dict>
2489
+ <key>name</key>
2490
+ <string>punctuation.definition.string.end.python</string>
2491
+ </dict>
2492
+ <key>2</key>
2493
+ <dict>
2494
+ <key>name</key>
2495
+ <string>meta.empty-string.single.python</string>
2496
+ </dict>
2497
+ </dict>
2498
+ <key>name</key>
2499
+ <string>string.quoted.single.block.raw.python</string>
2500
+ <key>patterns</key>
2501
+ <array>
2502
+ <dict>
2503
+ <key>include</key>
2504
+ <string>#constant_placeholder</string>
2505
+ </dict>
2506
+ <dict>
2507
+ <key>include</key>
2508
+ <string>#escaped_char</string>
2509
+ </dict>
2510
+ </array>
2511
+ </dict>
2512
+ <dict>
2513
+ <key>begin</key>
2514
+ <string>([uU])(''')</string>
2515
+ <key>beginCaptures</key>
2516
+ <dict>
2517
+ <key>1</key>
2518
+ <dict>
2519
+ <key>name</key>
2520
+ <string>storage.type.string.python</string>
2521
+ </dict>
2522
+ <key>2</key>
2523
+ <dict>
2524
+ <key>name</key>
2525
+ <string>punctuation.definition.string.begin.python</string>
2526
+ </dict>
2527
+ </dict>
2528
+ <key>comment</key>
2529
+ <string>single quoted unicode string</string>
2530
+ <key>end</key>
2531
+ <string>((?&lt;=''')(')''|''')</string>
2532
+ <key>endCaptures</key>
2533
+ <dict>
2534
+ <key>1</key>
2535
+ <dict>
2536
+ <key>name</key>
2537
+ <string>punctuation.definition.string.end.python</string>
2538
+ </dict>
2539
+ <key>2</key>
2540
+ <dict>
2541
+ <key>name</key>
2542
+ <string>meta.empty-string.single.python</string>
2543
+ </dict>
2544
+ </dict>
2545
+ <key>name</key>
2546
+ <string>string.quoted.single.block.unicode.python</string>
2547
+ <key>patterns</key>
2548
+ <array>
2549
+ <dict>
2550
+ <key>include</key>
2551
+ <string>#constant_placeholder</string>
2552
+ </dict>
2553
+ <dict>
2554
+ <key>include</key>
2555
+ <string>#escaped_unicode_char</string>
2556
+ </dict>
2557
+ <dict>
2558
+ <key>include</key>
2559
+ <string>#escaped_char</string>
2560
+ </dict>
2561
+ </array>
2562
+ </dict>
2563
+ <dict>
2564
+ <key>begin</key>
2565
+ <string>([uU]r)(')</string>
2566
+ <key>beginCaptures</key>
2567
+ <dict>
2568
+ <key>1</key>
2569
+ <dict>
2570
+ <key>name</key>
2571
+ <string>storage.type.string.python</string>
2572
+ </dict>
2573
+ <key>2</key>
2574
+ <dict>
2575
+ <key>name</key>
2576
+ <string>punctuation.definition.string.begin.python</string>
2577
+ </dict>
2578
+ </dict>
2579
+ <key>comment</key>
2580
+ <string>single quoted raw string</string>
2581
+ <key>end</key>
2582
+ <string>(')|(\n)</string>
2583
+ <key>endCaptures</key>
2584
+ <dict>
2585
+ <key>1</key>
2586
+ <dict>
2587
+ <key>name</key>
2588
+ <string>punctuation.definition.string.end.python</string>
2589
+ </dict>
2590
+ <key>2</key>
2591
+ <dict>
2592
+ <key>name</key>
2593
+ <string>invalid.illegal.unclosed-string.python</string>
2594
+ </dict>
2595
+ </dict>
2596
+ <key>name</key>
2597
+ <string>string.quoted.single.single-line.unicode-raw-regex.python</string>
2598
+ <key>patterns</key>
2599
+ <array>
2600
+ <dict>
2601
+ <key>include</key>
2602
+ <string>#constant_placeholder</string>
2603
+ </dict>
2604
+ <dict>
2605
+ <key>include</key>
2606
+ <string>#escaped_unicode_char</string>
2607
+ </dict>
2608
+ <dict>
2609
+ <key>include</key>
2610
+ <string>#escaped_char</string>
2611
+ </dict>
2612
+ <dict>
2613
+ <key>include</key>
2614
+ <string>#regular_expressions</string>
2615
+ </dict>
2616
+ </array>
2617
+ </dict>
2618
+ <dict>
2619
+ <key>begin</key>
2620
+ <string>([uU]R)(')</string>
2621
+ <key>beginCaptures</key>
2622
+ <dict>
2623
+ <key>1</key>
2624
+ <dict>
2625
+ <key>name</key>
2626
+ <string>storage.type.string.python</string>
2627
+ </dict>
2628
+ <key>2</key>
2629
+ <dict>
2630
+ <key>name</key>
2631
+ <string>punctuation.definition.string.begin.python</string>
2632
+ </dict>
2633
+ </dict>
2634
+ <key>comment</key>
2635
+ <string>single quoted raw string</string>
2636
+ <key>end</key>
2637
+ <string>(')|(\n)</string>
2638
+ <key>endCaptures</key>
2639
+ <dict>
2640
+ <key>1</key>
2641
+ <dict>
2642
+ <key>name</key>
2643
+ <string>punctuation.definition.string.end.python</string>
2644
+ </dict>
2645
+ <key>2</key>
2646
+ <dict>
2647
+ <key>name</key>
2648
+ <string>invalid.illegal.unclosed-string.python</string>
2649
+ </dict>
2650
+ </dict>
2651
+ <key>name</key>
2652
+ <string>string.quoted.single.single-line.unicode-raw.python</string>
2653
+ <key>patterns</key>
2654
+ <array>
2655
+ <dict>
2656
+ <key>include</key>
2657
+ <string>#constant_placeholder</string>
2658
+ </dict>
2659
+ <dict>
2660
+ <key>include</key>
2661
+ <string>#escaped_unicode_char</string>
2662
+ </dict>
2663
+ <dict>
2664
+ <key>include</key>
2665
+ <string>#escaped_char</string>
2666
+ </dict>
2667
+ </array>
2668
+ </dict>
2669
+ <dict>
2670
+ <key>begin</key>
2671
+ <string>(r)(')</string>
2672
+ <key>beginCaptures</key>
2673
+ <dict>
2674
+ <key>1</key>
2675
+ <dict>
2676
+ <key>name</key>
2677
+ <string>storage.type.string.python</string>
2678
+ </dict>
2679
+ <key>2</key>
2680
+ <dict>
2681
+ <key>name</key>
2682
+ <string>punctuation.definition.string.begin.python</string>
2683
+ </dict>
2684
+ </dict>
2685
+ <key>comment</key>
2686
+ <string>single quoted raw string</string>
2687
+ <key>end</key>
2688
+ <string>(')|(\n)</string>
2689
+ <key>endCaptures</key>
2690
+ <dict>
2691
+ <key>1</key>
2692
+ <dict>
2693
+ <key>name</key>
2694
+ <string>punctuation.definition.string.end.python</string>
2695
+ </dict>
2696
+ <key>2</key>
2697
+ <dict>
2698
+ <key>name</key>
2699
+ <string>invalid.illegal.unclosed-string.python</string>
2700
+ </dict>
2701
+ </dict>
2702
+ <key>name</key>
2703
+ <string>string.quoted.single.single-line.raw-regex.python</string>
2704
+ <key>patterns</key>
2705
+ <array>
2706
+ <dict>
2707
+ <key>include</key>
2708
+ <string>#constant_placeholder</string>
2709
+ </dict>
2710
+ <dict>
2711
+ <key>include</key>
2712
+ <string>#escaped_char</string>
2713
+ </dict>
2714
+ <dict>
2715
+ <key>include</key>
2716
+ <string>#regular_expressions</string>
2717
+ </dict>
2718
+ </array>
2719
+ </dict>
2720
+ <dict>
2721
+ <key>begin</key>
2722
+ <string>(R)(')</string>
2723
+ <key>beginCaptures</key>
2724
+ <dict>
2725
+ <key>1</key>
2726
+ <dict>
2727
+ <key>name</key>
2728
+ <string>storage.type.string.python</string>
2729
+ </dict>
2730
+ <key>2</key>
2731
+ <dict>
2732
+ <key>name</key>
2733
+ <string>punctuation.definition.string.begin.python</string>
2734
+ </dict>
2735
+ </dict>
2736
+ <key>comment</key>
2737
+ <string>single quoted raw string</string>
2738
+ <key>end</key>
2739
+ <string>(')|(\n)</string>
2740
+ <key>endCaptures</key>
2741
+ <dict>
2742
+ <key>1</key>
2743
+ <dict>
2744
+ <key>name</key>
2745
+ <string>punctuation.definition.string.end.python</string>
2746
+ </dict>
2747
+ <key>2</key>
2748
+ <dict>
2749
+ <key>name</key>
2750
+ <string>invalid.illegal.unclosed-string.python</string>
2751
+ </dict>
2752
+ </dict>
2753
+ <key>name</key>
2754
+ <string>string.quoted.single.single-line.raw.python</string>
2755
+ <key>patterns</key>
2756
+ <array>
2757
+ <dict>
2758
+ <key>include</key>
2759
+ <string>#constant_placeholder</string>
2760
+ </dict>
2761
+ <dict>
2762
+ <key>include</key>
2763
+ <string>#escaped_char</string>
2764
+ </dict>
2765
+ </array>
2766
+ </dict>
2767
+ <dict>
2768
+ <key>begin</key>
2769
+ <string>([uU])(')</string>
2770
+ <key>beginCaptures</key>
2771
+ <dict>
2772
+ <key>1</key>
2773
+ <dict>
2774
+ <key>name</key>
2775
+ <string>storage.type.string.python</string>
2776
+ </dict>
2777
+ <key>2</key>
2778
+ <dict>
2779
+ <key>name</key>
2780
+ <string>punctuation.definition.string.begin.python</string>
2781
+ </dict>
2782
+ </dict>
2783
+ <key>comment</key>
2784
+ <string>single quoted unicode string</string>
2785
+ <key>end</key>
2786
+ <string>(')|(\n)</string>
2787
+ <key>endCaptures</key>
2788
+ <dict>
2789
+ <key>1</key>
2790
+ <dict>
2791
+ <key>name</key>
2792
+ <string>punctuation.definition.string.end.python</string>
2793
+ </dict>
2794
+ <key>2</key>
2795
+ <dict>
2796
+ <key>name</key>
2797
+ <string>invalid.illegal.unclosed-string.python</string>
2798
+ </dict>
2799
+ </dict>
2800
+ <key>name</key>
2801
+ <string>string.quoted.single.single-line.unicode.python</string>
2802
+ <key>patterns</key>
2803
+ <array>
2804
+ <dict>
2805
+ <key>include</key>
2806
+ <string>#constant_placeholder</string>
2807
+ </dict>
2808
+ <dict>
2809
+ <key>include</key>
2810
+ <string>#escaped_unicode_char</string>
2811
+ </dict>
2812
+ <dict>
2813
+ <key>include</key>
2814
+ <string>#escaped_char</string>
2815
+ </dict>
2816
+ </array>
2817
+ </dict>
2818
+ <dict>
2819
+ <key>begin</key>
2820
+ <string>(''')(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
2821
+ <key>beginCaptures</key>
2822
+ <dict>
2823
+ <key>1</key>
2824
+ <dict>
2825
+ <key>name</key>
2826
+ <string>punctuation.definition.string.begin.python</string>
2827
+ </dict>
2828
+ </dict>
2829
+ <key>comment</key>
2830
+ <string>single quoted string</string>
2831
+ <key>end</key>
2832
+ <string>((?&lt;=''')(')''|''')</string>
2833
+ <key>endCaptures</key>
2834
+ <dict>
2835
+ <key>1</key>
2836
+ <dict>
2837
+ <key>name</key>
2838
+ <string>punctuation.definition.string.end.python</string>
2839
+ </dict>
2840
+ <key>2</key>
2841
+ <dict>
2842
+ <key>name</key>
2843
+ <string>meta.empty-string.single.python</string>
2844
+ </dict>
2845
+ </dict>
2846
+ <key>name</key>
2847
+ <string>string.quoted.single.block.python</string>
2848
+ <key>patterns</key>
2849
+ <array>
2850
+ <dict>
2851
+ <key>include</key>
2852
+ <string>#constant_placeholder</string>
2853
+ </dict>
2854
+ <dict>
2855
+ <key>include</key>
2856
+ <string>#escaped_char</string>
2857
+ </dict>
2858
+ <dict>
2859
+ <key>include</key>
2860
+ <string>source.sql</string>
2861
+ </dict>
2862
+ </array>
2863
+ </dict>
2864
+ <dict>
2865
+ <key>begin</key>
2866
+ <string>(')(?=\s*(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER))</string>
2867
+ <key>beginCaptures</key>
2868
+ <dict>
2869
+ <key>1</key>
2870
+ <dict>
2871
+ <key>name</key>
2872
+ <string>punctuation.definition.string.begin.python</string>
2873
+ </dict>
2874
+ </dict>
2875
+ <key>comment</key>
2876
+ <string>single quoted string</string>
2877
+ <key>end</key>
2878
+ <string>(')|(\n)</string>
2879
+ <key>endCaptures</key>
2880
+ <dict>
2881
+ <key>1</key>
2882
+ <dict>
2883
+ <key>name</key>
2884
+ <string>punctuation.definition.string.end.python</string>
2885
+ </dict>
2886
+ <key>2</key>
2887
+ <dict>
2888
+ <key>name</key>
2889
+ <string>invalid.illegal.unclosed-string.python</string>
2890
+ </dict>
2891
+ </dict>
2892
+ <key>name</key>
2893
+ <string>string.quoted.single.single-line.python</string>
2894
+ <key>patterns</key>
2895
+ <array>
2896
+ <dict>
2897
+ <key>include</key>
2898
+ <string>#constant_placeholder</string>
2899
+ </dict>
2900
+ <dict>
2901
+ <key>include</key>
2902
+ <string>#escaped_char</string>
2903
+ </dict>
2904
+ <dict>
2905
+ <key>include</key>
2906
+ <string>source.sql</string>
2907
+ </dict>
2908
+ </array>
2909
+ </dict>
2910
+ <dict>
2911
+ <key>begin</key>
2912
+ <string>(''')</string>
2913
+ <key>beginCaptures</key>
2914
+ <dict>
2915
+ <key>1</key>
2916
+ <dict>
2917
+ <key>name</key>
2918
+ <string>punctuation.definition.string.begin.python</string>
2919
+ </dict>
2920
+ </dict>
2921
+ <key>comment</key>
2922
+ <string>single quoted string</string>
2923
+ <key>end</key>
2924
+ <string>((?&lt;=''')(')''|''')</string>
2925
+ <key>endCaptures</key>
2926
+ <dict>
2927
+ <key>1</key>
2928
+ <dict>
2929
+ <key>name</key>
2930
+ <string>punctuation.definition.string.end.python</string>
2931
+ </dict>
2932
+ <key>2</key>
2933
+ <dict>
2934
+ <key>name</key>
2935
+ <string>meta.empty-string.single.python</string>
2936
+ </dict>
2937
+ </dict>
2938
+ <key>name</key>
2939
+ <string>string.quoted.single.block.python</string>
2940
+ <key>patterns</key>
2941
+ <array>
2942
+ <dict>
2943
+ <key>include</key>
2944
+ <string>#constant_placeholder</string>
2945
+ </dict>
2946
+ <dict>
2947
+ <key>include</key>
2948
+ <string>#escaped_char</string>
2949
+ </dict>
2950
+ </array>
2951
+ </dict>
2952
+ <dict>
2953
+ <key>begin</key>
2954
+ <string>(')</string>
2955
+ <key>beginCaptures</key>
2956
+ <dict>
2957
+ <key>1</key>
2958
+ <dict>
2959
+ <key>name</key>
2960
+ <string>punctuation.definition.string.begin.python</string>
2961
+ </dict>
2962
+ </dict>
2963
+ <key>comment</key>
2964
+ <string>single quoted string</string>
2965
+ <key>end</key>
2966
+ <string>(')|(\n)</string>
2967
+ <key>endCaptures</key>
2968
+ <dict>
2969
+ <key>1</key>
2970
+ <dict>
2971
+ <key>name</key>
2972
+ <string>punctuation.definition.string.end.python</string>
2973
+ </dict>
2974
+ <key>2</key>
2975
+ <dict>
2976
+ <key>name</key>
2977
+ <string>invalid.illegal.unclosed-string.python</string>
2978
+ </dict>
2979
+ </dict>
2980
+ <key>name</key>
2981
+ <string>string.quoted.single.single-line.python</string>
2982
+ <key>patterns</key>
2983
+ <array>
2984
+ <dict>
2985
+ <key>include</key>
2986
+ <string>#constant_placeholder</string>
2987
+ </dict>
2988
+ <dict>
2989
+ <key>include</key>
2990
+ <string>#escaped_char</string>
2991
+ </dict>
2992
+ </array>
2993
+ </dict>
2994
+ </array>
2995
+ </dict>
2996
+ <key>strings</key>
2997
+ <dict>
2998
+ <key>patterns</key>
2999
+ <array>
3000
+ <dict>
3001
+ <key>include</key>
3002
+ <string>#string_quoted_double</string>
3003
+ </dict>
3004
+ <dict>
3005
+ <key>include</key>
3006
+ <string>#string_quoted_single</string>
3007
+ </dict>
3008
+ </array>
3009
+ </dict>
3010
+ </dict>
3011
+ <key>scopeName</key>
3012
+ <string>source.python</string>
3013
+ <key>uuid</key>
3014
+ <string>F23DB5B2-7D08-11D9-A709-000D93B6E43C</string>
3015
+ </dict>
3016
+ </plist>