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,54 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>fileTypes</key>
6
+ <array>
7
+ <string>properties</string>
8
+ </array>
9
+ <key>keyEquivalent</key>
10
+ <string>^~S</string>
11
+ <key>name</key>
12
+ <string>Scala Properties</string>
13
+ <key>patterns</key>
14
+ <array>
15
+ <dict>
16
+ <key>captures</key>
17
+ <dict>
18
+ <key>1</key>
19
+ <dict>
20
+ <key>name</key>
21
+ <string>punctuation.definition.comment.scala-props</string>
22
+ </dict>
23
+ </dict>
24
+ <key>match</key>
25
+ <string>([#!])(.+)?$\n?</string>
26
+ <key>name</key>
27
+ <string>comment.line.number-sign.scala-props</string>
28
+ </dict>
29
+ <dict>
30
+ <key>captures</key>
31
+ <dict>
32
+ <key>1</key>
33
+ <dict>
34
+ <key>name</key>
35
+ <string>keyword.other.scala-props</string>
36
+ </dict>
37
+ <key>2</key>
38
+ <dict>
39
+ <key>name</key>
40
+ <string>punctuation.separator.key-value.scala-props</string>
41
+ </dict>
42
+ </dict>
43
+ <key>comment</key>
44
+ <string>Not compliant with the properties file spec, but this works for me, and I'm the one who counts around here.</string>
45
+ <key>match</key>
46
+ <string>^([^:=]+)([:=])(.*)$</string>
47
+ </dict>
48
+ </array>
49
+ <key>scopeName</key>
50
+ <string>source.scala-props</string>
51
+ <key>uuid</key>
52
+ <string>2A28E50A-6B1D-11D9-8689-000D93589AF6</string>
53
+ </dict>
54
+ </plist>
@@ -0,0 +1,1855 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>fileTypes</key>
6
+ <array>
7
+ <string>sh</string>
8
+ <string>ss</string>
9
+ <string>bashrc</string>
10
+ <string>bash_profile</string>
11
+ <string>bash_login</string>
12
+ <string>profile</string>
13
+ <string>bash_logout</string>
14
+ <string>.textmate_init</string>
15
+ </array>
16
+ <key>firstLineMatch</key>
17
+ <string>^#!.*\b(bash|zsh|sh|tcsh)</string>
18
+ <key>foldingStartMarker</key>
19
+ <string>\b(if|case)\b|(\{|\b(do)\b)$</string>
20
+ <key>foldingStopMarker</key>
21
+ <string>^\s*(\}|(done|fi|esac)\b)</string>
22
+ <key>keyEquivalent</key>
23
+ <string>^~S</string>
24
+ <key>name</key>
25
+ <string>Shell Script (Bash)</string>
26
+ <key>patterns</key>
27
+ <array>
28
+ <dict>
29
+ <key>include</key>
30
+ <string>#comment</string>
31
+ </dict>
32
+ <dict>
33
+ <key>include</key>
34
+ <string>#pipeline</string>
35
+ </dict>
36
+ <dict>
37
+ <key>include</key>
38
+ <string>#list</string>
39
+ </dict>
40
+ <dict>
41
+ <key>include</key>
42
+ <string>#compound-command</string>
43
+ </dict>
44
+ <dict>
45
+ <key>include</key>
46
+ <string>#loop</string>
47
+ </dict>
48
+ <dict>
49
+ <key>include</key>
50
+ <string>#function-definition</string>
51
+ </dict>
52
+ <dict>
53
+ <key>include</key>
54
+ <string>#string</string>
55
+ </dict>
56
+ <dict>
57
+ <key>include</key>
58
+ <string>#variable</string>
59
+ </dict>
60
+ <dict>
61
+ <key>include</key>
62
+ <string>#interpolation</string>
63
+ </dict>
64
+ <dict>
65
+ <key>include</key>
66
+ <string>#heredoc</string>
67
+ </dict>
68
+ <dict>
69
+ <key>include</key>
70
+ <string>#herestring</string>
71
+ </dict>
72
+ <dict>
73
+ <key>include</key>
74
+ <string>#redirection</string>
75
+ </dict>
76
+ <dict>
77
+ <key>include</key>
78
+ <string>#pathname</string>
79
+ </dict>
80
+ <dict>
81
+ <key>include</key>
82
+ <string>#keyword</string>
83
+ </dict>
84
+ <dict>
85
+ <key>include</key>
86
+ <string>#support</string>
87
+ </dict>
88
+ </array>
89
+ <key>repository</key>
90
+ <dict>
91
+ <key>case-clause</key>
92
+ <dict>
93
+ <key>patterns</key>
94
+ <array>
95
+ <dict>
96
+ <key>begin</key>
97
+ <string>(?=\S)</string>
98
+ <key>end</key>
99
+ <string>;;</string>
100
+ <key>endCaptures</key>
101
+ <dict>
102
+ <key>0</key>
103
+ <dict>
104
+ <key>name</key>
105
+ <string>punctuation.terminator.case-clause.shell</string>
106
+ </dict>
107
+ </dict>
108
+ <key>name</key>
109
+ <string>meta.scope.case-clause.shell</string>
110
+ <key>patterns</key>
111
+ <array>
112
+ <dict>
113
+ <key>begin</key>
114
+ <string>(\(|(?=\S))</string>
115
+ <key>captures</key>
116
+ <dict>
117
+ <key>0</key>
118
+ <dict>
119
+ <key>name</key>
120
+ <string>punctuation.definition.case-pattern.shell</string>
121
+ </dict>
122
+ </dict>
123
+ <key>end</key>
124
+ <string>\)</string>
125
+ <key>name</key>
126
+ <string>meta.scope.case-pattern.shell</string>
127
+ <key>patterns</key>
128
+ <array>
129
+ <dict>
130
+ <key>match</key>
131
+ <string>\|</string>
132
+ <key>name</key>
133
+ <string>punctuation.separator.pipe-sign.shell</string>
134
+ </dict>
135
+ <dict>
136
+ <key>include</key>
137
+ <string>#string</string>
138
+ </dict>
139
+ <dict>
140
+ <key>include</key>
141
+ <string>#variable</string>
142
+ </dict>
143
+ <dict>
144
+ <key>include</key>
145
+ <string>#interpolation</string>
146
+ </dict>
147
+ <dict>
148
+ <key>include</key>
149
+ <string>#pathname</string>
150
+ </dict>
151
+ </array>
152
+ </dict>
153
+ <dict>
154
+ <key>begin</key>
155
+ <string>(?&lt;=\))</string>
156
+ <key>end</key>
157
+ <string>(?=;;)</string>
158
+ <key>name</key>
159
+ <string>meta.scope.case-clause-body.shell</string>
160
+ <key>patterns</key>
161
+ <array>
162
+ <dict>
163
+ <key>include</key>
164
+ <string>$self</string>
165
+ </dict>
166
+ </array>
167
+ </dict>
168
+ </array>
169
+ </dict>
170
+ </array>
171
+ </dict>
172
+ <key>comment</key>
173
+ <dict>
174
+ <key>patterns</key>
175
+ <array>
176
+ <dict>
177
+ <key>captures</key>
178
+ <dict>
179
+ <key>1</key>
180
+ <dict>
181
+ <key>name</key>
182
+ <string>punctuation.definition.comment.shell</string>
183
+ </dict>
184
+ </dict>
185
+ <key>match</key>
186
+ <string>(?&lt;!\$)(#)(?!\{).*$\n?</string>
187
+ <key>name</key>
188
+ <string>comment.line.number-sign.shell</string>
189
+ </dict>
190
+ </array>
191
+ </dict>
192
+ <key>compound-command</key>
193
+ <dict>
194
+ <key>patterns</key>
195
+ <array>
196
+ <dict>
197
+ <key>begin</key>
198
+ <string>(\[{2})</string>
199
+ <key>captures</key>
200
+ <dict>
201
+ <key>1</key>
202
+ <dict>
203
+ <key>name</key>
204
+ <string>punctuation.definition.logical-expression.shell</string>
205
+ </dict>
206
+ </dict>
207
+ <key>end</key>
208
+ <string>(\]{2})</string>
209
+ <key>name</key>
210
+ <string>meta.scope.logical-expression.shell</string>
211
+ <key>patterns</key>
212
+ <array>
213
+ <dict>
214
+ <key>include</key>
215
+ <string>#logical-expression</string>
216
+ </dict>
217
+ <dict>
218
+ <key>include</key>
219
+ <string>$self</string>
220
+ </dict>
221
+ </array>
222
+ </dict>
223
+ <dict>
224
+ <key>begin</key>
225
+ <string>(\({2})</string>
226
+ <key>beginCaptures</key>
227
+ <dict>
228
+ <key>0</key>
229
+ <dict>
230
+ <key>name</key>
231
+ <string>punctuation.definition.string.begin.shell</string>
232
+ </dict>
233
+ </dict>
234
+ <key>end</key>
235
+ <string>(\){2})</string>
236
+ <key>endCaptures</key>
237
+ <dict>
238
+ <key>0</key>
239
+ <dict>
240
+ <key>name</key>
241
+ <string>punctuation.definition.string.end.shell</string>
242
+ </dict>
243
+ </dict>
244
+ <key>name</key>
245
+ <string>string.other.math.shell</string>
246
+ <key>patterns</key>
247
+ <array>
248
+ <dict>
249
+ <key>include</key>
250
+ <string>#math</string>
251
+ </dict>
252
+ </array>
253
+ </dict>
254
+ <dict>
255
+ <key>begin</key>
256
+ <string>(\()</string>
257
+ <key>captures</key>
258
+ <dict>
259
+ <key>1</key>
260
+ <dict>
261
+ <key>name</key>
262
+ <string>punctuation.definition.subshell.shell</string>
263
+ </dict>
264
+ </dict>
265
+ <key>end</key>
266
+ <string>(\))</string>
267
+ <key>name</key>
268
+ <string>meta.scope.subshell.shell</string>
269
+ <key>patterns</key>
270
+ <array>
271
+ <dict>
272
+ <key>include</key>
273
+ <string>$self</string>
274
+ </dict>
275
+ </array>
276
+ </dict>
277
+ <dict>
278
+ <key>begin</key>
279
+ <string>(?&lt;=\s|^)(\{)(?=\s|$)</string>
280
+ <key>captures</key>
281
+ <dict>
282
+ <key>1</key>
283
+ <dict>
284
+ <key>name</key>
285
+ <string>punctuation.definition.group.shell</string>
286
+ </dict>
287
+ </dict>
288
+ <key>end</key>
289
+ <string>(?&lt;=^|;)\s*(\})</string>
290
+ <key>name</key>
291
+ <string>meta.scope.group.shell</string>
292
+ <key>patterns</key>
293
+ <array>
294
+ <dict>
295
+ <key>include</key>
296
+ <string>$self</string>
297
+ </dict>
298
+ </array>
299
+ </dict>
300
+ </array>
301
+ </dict>
302
+ <key>function-definition</key>
303
+ <dict>
304
+ <key>patterns</key>
305
+ <array>
306
+ <dict>
307
+ <key>begin</key>
308
+ <string>\b(function)\s+([^\s\\]+)(?:\s*(\(\)))?</string>
309
+ <key>beginCaptures</key>
310
+ <dict>
311
+ <key>1</key>
312
+ <dict>
313
+ <key>name</key>
314
+ <string>storage.type.function.shell</string>
315
+ </dict>
316
+ <key>2</key>
317
+ <dict>
318
+ <key>name</key>
319
+ <string>entity.name.function.shell</string>
320
+ </dict>
321
+ <key>3</key>
322
+ <dict>
323
+ <key>name</key>
324
+ <string>punctuation.definition.arguments.shell</string>
325
+ </dict>
326
+ </dict>
327
+ <key>end</key>
328
+ <string>;|&amp;|$</string>
329
+ <key>endCaptures</key>
330
+ <dict>
331
+ <key>0</key>
332
+ <dict>
333
+ <key>name</key>
334
+ <string>punctuation.definition.function.shell</string>
335
+ </dict>
336
+ </dict>
337
+ <key>name</key>
338
+ <string>meta.function.shell</string>
339
+ <key>patterns</key>
340
+ <array>
341
+ <dict>
342
+ <key>include</key>
343
+ <string>$self</string>
344
+ </dict>
345
+ </array>
346
+ </dict>
347
+ <dict>
348
+ <key>begin</key>
349
+ <string>\b([^\s\\=]+)\s*(\(\))</string>
350
+ <key>beginCaptures</key>
351
+ <dict>
352
+ <key>1</key>
353
+ <dict>
354
+ <key>name</key>
355
+ <string>entity.name.function.shell</string>
356
+ </dict>
357
+ <key>2</key>
358
+ <dict>
359
+ <key>name</key>
360
+ <string>punctuation.definition.arguments.shell</string>
361
+ </dict>
362
+ </dict>
363
+ <key>end</key>
364
+ <string>;|&amp;|$</string>
365
+ <key>endCaptures</key>
366
+ <dict>
367
+ <key>0</key>
368
+ <dict>
369
+ <key>name</key>
370
+ <string>punctuation.definition.function.shell</string>
371
+ </dict>
372
+ </dict>
373
+ <key>name</key>
374
+ <string>meta.function.shell</string>
375
+ <key>patterns</key>
376
+ <array>
377
+ <dict>
378
+ <key>include</key>
379
+ <string>$self</string>
380
+ </dict>
381
+ </array>
382
+ </dict>
383
+ </array>
384
+ </dict>
385
+ <key>heredoc</key>
386
+ <dict>
387
+ <key>patterns</key>
388
+ <array>
389
+ <dict>
390
+ <key>begin</key>
391
+ <string>(&lt;&lt;)-("|'|)(RUBY)\2</string>
392
+ <key>beginCaptures</key>
393
+ <dict>
394
+ <key>1</key>
395
+ <dict>
396
+ <key>name</key>
397
+ <string>keyword.operator.heredoc.shell</string>
398
+ </dict>
399
+ <key>3</key>
400
+ <dict>
401
+ <key>name</key>
402
+ <string>keyword.control.heredoc-token.shell</string>
403
+ </dict>
404
+ </dict>
405
+ <key>captures</key>
406
+ <dict>
407
+ <key>0</key>
408
+ <dict>
409
+ <key>name</key>
410
+ <string>punctuation.definition.string.shell</string>
411
+ </dict>
412
+ </dict>
413
+ <key>contentName</key>
414
+ <string>source.ruby.embedded.shell</string>
415
+ <key>end</key>
416
+ <string>^\t*(RUBY)$</string>
417
+ <key>endCaptures</key>
418
+ <dict>
419
+ <key>1</key>
420
+ <dict>
421
+ <key>name</key>
422
+ <string>keyword.control.heredoc-token.shell</string>
423
+ </dict>
424
+ </dict>
425
+ <key>name</key>
426
+ <string>string.unquoted.heredoc.no-indent.ruby.shell</string>
427
+ <key>patterns</key>
428
+ <array>
429
+ <dict>
430
+ <key>include</key>
431
+ <string>source.ruby</string>
432
+ </dict>
433
+ </array>
434
+ </dict>
435
+ <dict>
436
+ <key>begin</key>
437
+ <string>(&lt;&lt;)("|'|)(RUBY)\2</string>
438
+ <key>beginCaptures</key>
439
+ <dict>
440
+ <key>1</key>
441
+ <dict>
442
+ <key>name</key>
443
+ <string>keyword.operator.heredoc.shell</string>
444
+ </dict>
445
+ <key>3</key>
446
+ <dict>
447
+ <key>name</key>
448
+ <string>keyword.control.heredoc-token.shell</string>
449
+ </dict>
450
+ </dict>
451
+ <key>captures</key>
452
+ <dict>
453
+ <key>0</key>
454
+ <dict>
455
+ <key>name</key>
456
+ <string>punctuation.definition.string.shell</string>
457
+ </dict>
458
+ </dict>
459
+ <key>contentName</key>
460
+ <string>source.ruby.embedded.shell</string>
461
+ <key>end</key>
462
+ <string>^(RUBY)$</string>
463
+ <key>endCaptures</key>
464
+ <dict>
465
+ <key>1</key>
466
+ <dict>
467
+ <key>name</key>
468
+ <string>keyword.control.heredoc-token.shell</string>
469
+ </dict>
470
+ </dict>
471
+ <key>name</key>
472
+ <string>string.unquoted.heredoc.ruby.shell</string>
473
+ <key>patterns</key>
474
+ <array>
475
+ <dict>
476
+ <key>include</key>
477
+ <string>source.ruby</string>
478
+ </dict>
479
+ </array>
480
+ </dict>
481
+ <dict>
482
+ <key>begin</key>
483
+ <string>(&lt;&lt;)-("|'|)(PYTHON)\2</string>
484
+ <key>beginCaptures</key>
485
+ <dict>
486
+ <key>1</key>
487
+ <dict>
488
+ <key>name</key>
489
+ <string>keyword.operator.heredoc.shell</string>
490
+ </dict>
491
+ <key>3</key>
492
+ <dict>
493
+ <key>name</key>
494
+ <string>keyword.control.heredoc-token.shell</string>
495
+ </dict>
496
+ </dict>
497
+ <key>captures</key>
498
+ <dict>
499
+ <key>0</key>
500
+ <dict>
501
+ <key>name</key>
502
+ <string>punctuation.definition.string.shell</string>
503
+ </dict>
504
+ </dict>
505
+ <key>contentName</key>
506
+ <string>source.python.embedded.shell</string>
507
+ <key>end</key>
508
+ <string>^\t*(PYTHON)$</string>
509
+ <key>endCaptures</key>
510
+ <dict>
511
+ <key>1</key>
512
+ <dict>
513
+ <key>name</key>
514
+ <string>keyword.control.heredoc-token.shell</string>
515
+ </dict>
516
+ </dict>
517
+ <key>name</key>
518
+ <string>string.unquoted.heredoc.no-indent.python.shell</string>
519
+ <key>patterns</key>
520
+ <array>
521
+ <dict>
522
+ <key>include</key>
523
+ <string>source.python</string>
524
+ </dict>
525
+ </array>
526
+ </dict>
527
+ <dict>
528
+ <key>begin</key>
529
+ <string>(&lt;&lt;)("|'|)(PYTHON)\2</string>
530
+ <key>beginCaptures</key>
531
+ <dict>
532
+ <key>1</key>
533
+ <dict>
534
+ <key>name</key>
535
+ <string>keyword.operator.heredoc.shell</string>
536
+ </dict>
537
+ <key>3</key>
538
+ <dict>
539
+ <key>name</key>
540
+ <string>keyword.control.heredoc-token.shell</string>
541
+ </dict>
542
+ </dict>
543
+ <key>captures</key>
544
+ <dict>
545
+ <key>0</key>
546
+ <dict>
547
+ <key>name</key>
548
+ <string>punctuation.definition.string.shell</string>
549
+ </dict>
550
+ </dict>
551
+ <key>contentName</key>
552
+ <string>source.python.embedded.shell</string>
553
+ <key>end</key>
554
+ <string>^(PYTHON)$</string>
555
+ <key>endCaptures</key>
556
+ <dict>
557
+ <key>1</key>
558
+ <dict>
559
+ <key>name</key>
560
+ <string>keyword.control.heredoc-token.shell</string>
561
+ </dict>
562
+ </dict>
563
+ <key>name</key>
564
+ <string>string.unquoted.heredoc.python.shell</string>
565
+ <key>patterns</key>
566
+ <array>
567
+ <dict>
568
+ <key>include</key>
569
+ <string>source.python</string>
570
+ </dict>
571
+ </array>
572
+ </dict>
573
+ <dict>
574
+ <key>begin</key>
575
+ <string>(&lt;&lt;)-("|'|)(APPLESCRIPT)\2</string>
576
+ <key>beginCaptures</key>
577
+ <dict>
578
+ <key>1</key>
579
+ <dict>
580
+ <key>name</key>
581
+ <string>keyword.operator.heredoc.shell</string>
582
+ </dict>
583
+ <key>3</key>
584
+ <dict>
585
+ <key>name</key>
586
+ <string>keyword.control.heredoc-token.shell</string>
587
+ </dict>
588
+ </dict>
589
+ <key>captures</key>
590
+ <dict>
591
+ <key>0</key>
592
+ <dict>
593
+ <key>name</key>
594
+ <string>punctuation.definition.string.shell</string>
595
+ </dict>
596
+ </dict>
597
+ <key>contentName</key>
598
+ <string>source.applescript.embedded.shell</string>
599
+ <key>end</key>
600
+ <string>^\t*(APPLESCRIPT)$</string>
601
+ <key>endCaptures</key>
602
+ <dict>
603
+ <key>1</key>
604
+ <dict>
605
+ <key>name</key>
606
+ <string>keyword.control.heredoc-token.shell</string>
607
+ </dict>
608
+ </dict>
609
+ <key>name</key>
610
+ <string>string.unquoted.heredoc.no-indent.applescript.shell</string>
611
+ <key>patterns</key>
612
+ <array>
613
+ <dict>
614
+ <key>include</key>
615
+ <string>source.applescript</string>
616
+ </dict>
617
+ </array>
618
+ </dict>
619
+ <dict>
620
+ <key>begin</key>
621
+ <string>(&lt;&lt;)("|'|)(APPLESCRIPT)\2</string>
622
+ <key>beginCaptures</key>
623
+ <dict>
624
+ <key>1</key>
625
+ <dict>
626
+ <key>name</key>
627
+ <string>keyword.operator.heredoc.shell</string>
628
+ </dict>
629
+ <key>3</key>
630
+ <dict>
631
+ <key>name</key>
632
+ <string>keyword.control.heredoc-token.shell</string>
633
+ </dict>
634
+ </dict>
635
+ <key>captures</key>
636
+ <dict>
637
+ <key>0</key>
638
+ <dict>
639
+ <key>name</key>
640
+ <string>punctuation.definition.string.shell</string>
641
+ </dict>
642
+ </dict>
643
+ <key>contentName</key>
644
+ <string>source.applescript.embedded.shell</string>
645
+ <key>end</key>
646
+ <string>^(APPLESCRIPT)$</string>
647
+ <key>endCaptures</key>
648
+ <dict>
649
+ <key>1</key>
650
+ <dict>
651
+ <key>name</key>
652
+ <string>keyword.control.heredoc-token.shell</string>
653
+ </dict>
654
+ </dict>
655
+ <key>name</key>
656
+ <string>string.unquoted.heredoc.applescript.shell</string>
657
+ <key>patterns</key>
658
+ <array>
659
+ <dict>
660
+ <key>include</key>
661
+ <string>source.applescript</string>
662
+ </dict>
663
+ </array>
664
+ </dict>
665
+ <dict>
666
+ <key>begin</key>
667
+ <string>(&lt;&lt;)-("|'|)(HTML)\2</string>
668
+ <key>beginCaptures</key>
669
+ <dict>
670
+ <key>1</key>
671
+ <dict>
672
+ <key>name</key>
673
+ <string>keyword.operator.heredoc.shell</string>
674
+ </dict>
675
+ <key>3</key>
676
+ <dict>
677
+ <key>name</key>
678
+ <string>keyword.control.heredoc-token.shell</string>
679
+ </dict>
680
+ </dict>
681
+ <key>captures</key>
682
+ <dict>
683
+ <key>0</key>
684
+ <dict>
685
+ <key>name</key>
686
+ <string>punctuation.definition.string.shell</string>
687
+ </dict>
688
+ </dict>
689
+ <key>contentName</key>
690
+ <string>text.html.embedded.shell</string>
691
+ <key>end</key>
692
+ <string>^\t*(HTML)$</string>
693
+ <key>endCaptures</key>
694
+ <dict>
695
+ <key>1</key>
696
+ <dict>
697
+ <key>name</key>
698
+ <string>keyword.control.heredoc-token.shell</string>
699
+ </dict>
700
+ </dict>
701
+ <key>name</key>
702
+ <string>string.unquoted.heredoc.no-indent.html.shell</string>
703
+ <key>patterns</key>
704
+ <array>
705
+ <dict>
706
+ <key>include</key>
707
+ <string>text.html.basic</string>
708
+ </dict>
709
+ </array>
710
+ </dict>
711
+ <dict>
712
+ <key>begin</key>
713
+ <string>(&lt;&lt;)("|'|)(HTML)\2</string>
714
+ <key>beginCaptures</key>
715
+ <dict>
716
+ <key>1</key>
717
+ <dict>
718
+ <key>name</key>
719
+ <string>keyword.operator.heredoc.shell</string>
720
+ </dict>
721
+ <key>3</key>
722
+ <dict>
723
+ <key>name</key>
724
+ <string>keyword.control.heredoc-token.shell</string>
725
+ </dict>
726
+ </dict>
727
+ <key>captures</key>
728
+ <dict>
729
+ <key>0</key>
730
+ <dict>
731
+ <key>name</key>
732
+ <string>punctuation.definition.string.shell</string>
733
+ </dict>
734
+ </dict>
735
+ <key>contentName</key>
736
+ <string>text.html.embedded.shell</string>
737
+ <key>end</key>
738
+ <string>^(HTML)$</string>
739
+ <key>endCaptures</key>
740
+ <dict>
741
+ <key>1</key>
742
+ <dict>
743
+ <key>name</key>
744
+ <string>keyword.control.heredoc-token.shell</string>
745
+ </dict>
746
+ </dict>
747
+ <key>name</key>
748
+ <string>string.unquoted.heredoc.html.shell</string>
749
+ <key>patterns</key>
750
+ <array>
751
+ <dict>
752
+ <key>include</key>
753
+ <string>text.html.basic</string>
754
+ </dict>
755
+ </array>
756
+ </dict>
757
+ <dict>
758
+ <key>begin</key>
759
+ <string>(&lt;&lt;)-("|'|)(MARKDOWN)\2</string>
760
+ <key>beginCaptures</key>
761
+ <dict>
762
+ <key>1</key>
763
+ <dict>
764
+ <key>name</key>
765
+ <string>keyword.operator.heredoc.shell</string>
766
+ </dict>
767
+ <key>3</key>
768
+ <dict>
769
+ <key>name</key>
770
+ <string>keyword.control.heredoc-token.shell</string>
771
+ </dict>
772
+ </dict>
773
+ <key>captures</key>
774
+ <dict>
775
+ <key>0</key>
776
+ <dict>
777
+ <key>name</key>
778
+ <string>punctuation.definition.string.shell</string>
779
+ </dict>
780
+ </dict>
781
+ <key>contentName</key>
782
+ <string>text.html.markdown.embedded.shell</string>
783
+ <key>end</key>
784
+ <string>^\t*(MARKDOWN)$</string>
785
+ <key>endCaptures</key>
786
+ <dict>
787
+ <key>1</key>
788
+ <dict>
789
+ <key>name</key>
790
+ <string>keyword.control.heredoc-token.shell</string>
791
+ </dict>
792
+ </dict>
793
+ <key>name</key>
794
+ <string>string.unquoted.heredoc.no-indent.markdown.shell</string>
795
+ <key>patterns</key>
796
+ <array>
797
+ <dict>
798
+ <key>include</key>
799
+ <string>text.html.markdown</string>
800
+ </dict>
801
+ </array>
802
+ </dict>
803
+ <dict>
804
+ <key>begin</key>
805
+ <string>(&lt;&lt;)("|'|)(MARKDOWN)\2</string>
806
+ <key>beginCaptures</key>
807
+ <dict>
808
+ <key>1</key>
809
+ <dict>
810
+ <key>name</key>
811
+ <string>keyword.operator.heredoc.shell</string>
812
+ </dict>
813
+ <key>3</key>
814
+ <dict>
815
+ <key>name</key>
816
+ <string>keyword.control.heredoc-token.shell</string>
817
+ </dict>
818
+ </dict>
819
+ <key>captures</key>
820
+ <dict>
821
+ <key>0</key>
822
+ <dict>
823
+ <key>name</key>
824
+ <string>punctuation.definition.string.shell</string>
825
+ </dict>
826
+ </dict>
827
+ <key>contentName</key>
828
+ <string>text.html.markdown.embedded.shell</string>
829
+ <key>end</key>
830
+ <string>^(MARKDOWN)$</string>
831
+ <key>endCaptures</key>
832
+ <dict>
833
+ <key>1</key>
834
+ <dict>
835
+ <key>name</key>
836
+ <string>keyword.control.heredoc-token.shell</string>
837
+ </dict>
838
+ </dict>
839
+ <key>name</key>
840
+ <string>string.unquoted.heredoc.markdown.shell</string>
841
+ <key>patterns</key>
842
+ <array>
843
+ <dict>
844
+ <key>include</key>
845
+ <string>text.html.markdown</string>
846
+ </dict>
847
+ </array>
848
+ </dict>
849
+ <dict>
850
+ <key>begin</key>
851
+ <string>(&lt;&lt;)-("|'|)(TEXTILE)\2</string>
852
+ <key>beginCaptures</key>
853
+ <dict>
854
+ <key>1</key>
855
+ <dict>
856
+ <key>name</key>
857
+ <string>keyword.operator.heredoc.shell</string>
858
+ </dict>
859
+ <key>3</key>
860
+ <dict>
861
+ <key>name</key>
862
+ <string>keyword.control.heredoc-token.shell</string>
863
+ </dict>
864
+ </dict>
865
+ <key>captures</key>
866
+ <dict>
867
+ <key>0</key>
868
+ <dict>
869
+ <key>name</key>
870
+ <string>punctuation.definition.string.shell</string>
871
+ </dict>
872
+ </dict>
873
+ <key>contentName</key>
874
+ <string>text.html.textile.embedded.shell</string>
875
+ <key>end</key>
876
+ <string>^\t*(TEXTILE)$</string>
877
+ <key>endCaptures</key>
878
+ <dict>
879
+ <key>1</key>
880
+ <dict>
881
+ <key>name</key>
882
+ <string>keyword.control.heredoc-token.shell</string>
883
+ </dict>
884
+ </dict>
885
+ <key>name</key>
886
+ <string>string.unquoted.heredoc.no-indent.textile.shell</string>
887
+ <key>patterns</key>
888
+ <array>
889
+ <dict>
890
+ <key>include</key>
891
+ <string>text.html.textile</string>
892
+ </dict>
893
+ </array>
894
+ </dict>
895
+ <dict>
896
+ <key>begin</key>
897
+ <string>(&lt;&lt;)("|'|)(TEXTILE)\2</string>
898
+ <key>beginCaptures</key>
899
+ <dict>
900
+ <key>1</key>
901
+ <dict>
902
+ <key>name</key>
903
+ <string>keyword.operator.heredoc.shell</string>
904
+ </dict>
905
+ <key>3</key>
906
+ <dict>
907
+ <key>name</key>
908
+ <string>keyword.control.heredoc-token.shell</string>
909
+ </dict>
910
+ </dict>
911
+ <key>captures</key>
912
+ <dict>
913
+ <key>0</key>
914
+ <dict>
915
+ <key>name</key>
916
+ <string>punctuation.definition.string.shell</string>
917
+ </dict>
918
+ </dict>
919
+ <key>contentName</key>
920
+ <string>text.html.textile.embedded.shell</string>
921
+ <key>end</key>
922
+ <string>^(TEXTILE)$</string>
923
+ <key>endCaptures</key>
924
+ <dict>
925
+ <key>1</key>
926
+ <dict>
927
+ <key>name</key>
928
+ <string>keyword.control.heredoc-token.shell</string>
929
+ </dict>
930
+ </dict>
931
+ <key>name</key>
932
+ <string>string.unquoted.heredoc.textile.shell</string>
933
+ <key>patterns</key>
934
+ <array>
935
+ <dict>
936
+ <key>include</key>
937
+ <string>text.html.textile</string>
938
+ </dict>
939
+ </array>
940
+ </dict>
941
+ <dict>
942
+ <key>begin</key>
943
+ <string>(&lt;&lt;)-("|'|)\\?(\w+)\2</string>
944
+ <key>beginCaptures</key>
945
+ <dict>
946
+ <key>1</key>
947
+ <dict>
948
+ <key>name</key>
949
+ <string>keyword.operator.heredoc.shell</string>
950
+ </dict>
951
+ <key>3</key>
952
+ <dict>
953
+ <key>name</key>
954
+ <string>keyword.control.heredoc-token.shell</string>
955
+ </dict>
956
+ </dict>
957
+ <key>captures</key>
958
+ <dict>
959
+ <key>0</key>
960
+ <dict>
961
+ <key>name</key>
962
+ <string>punctuation.definition.string.shell</string>
963
+ </dict>
964
+ </dict>
965
+ <key>end</key>
966
+ <string>^\t*(\3)$</string>
967
+ <key>endCaptures</key>
968
+ <dict>
969
+ <key>1</key>
970
+ <dict>
971
+ <key>name</key>
972
+ <string>keyword.control.heredoc-token.shell</string>
973
+ </dict>
974
+ </dict>
975
+ <key>name</key>
976
+ <string>string.unquoted.heredoc.no-indent.shell</string>
977
+ </dict>
978
+ <dict>
979
+ <key>begin</key>
980
+ <string>(&lt;&lt;)("|'|)\\?(\w+)\2</string>
981
+ <key>beginCaptures</key>
982
+ <dict>
983
+ <key>1</key>
984
+ <dict>
985
+ <key>name</key>
986
+ <string>keyword.operator.heredoc.shell</string>
987
+ </dict>
988
+ <key>3</key>
989
+ <dict>
990
+ <key>name</key>
991
+ <string>keyword.control.heredoc-token.shell</string>
992
+ </dict>
993
+ </dict>
994
+ <key>captures</key>
995
+ <dict>
996
+ <key>0</key>
997
+ <dict>
998
+ <key>name</key>
999
+ <string>punctuation.definition.string.shell</string>
1000
+ </dict>
1001
+ </dict>
1002
+ <key>end</key>
1003
+ <string>^(\3)$</string>
1004
+ <key>endCaptures</key>
1005
+ <dict>
1006
+ <key>1</key>
1007
+ <dict>
1008
+ <key>name</key>
1009
+ <string>keyword.control.heredoc-token.shell</string>
1010
+ </dict>
1011
+ </dict>
1012
+ <key>name</key>
1013
+ <string>string.unquoted.heredoc.shell</string>
1014
+ </dict>
1015
+ </array>
1016
+ </dict>
1017
+ <key>herestring</key>
1018
+ <dict>
1019
+ <key>patterns</key>
1020
+ <array>
1021
+ <dict>
1022
+ <key>captures</key>
1023
+ <dict>
1024
+ <key>1</key>
1025
+ <dict>
1026
+ <key>name</key>
1027
+ <string>keyword.operator.herestring.shell</string>
1028
+ </dict>
1029
+ <key>2</key>
1030
+ <dict>
1031
+ <key>name</key>
1032
+ <string>string.quoted.single.herestring.shell</string>
1033
+ </dict>
1034
+ <key>3</key>
1035
+ <dict>
1036
+ <key>name</key>
1037
+ <string>punctuation.definition.string.begin.shell</string>
1038
+ </dict>
1039
+ <key>4</key>
1040
+ <dict>
1041
+ <key>name</key>
1042
+ <string>punctuation.definition.string.end.shell</string>
1043
+ </dict>
1044
+ </dict>
1045
+ <key>match</key>
1046
+ <string>(&lt;&lt;&lt;)((')[^']*('))</string>
1047
+ <key>name</key>
1048
+ <string>meta.herestring.shell</string>
1049
+ </dict>
1050
+ <dict>
1051
+ <key>captures</key>
1052
+ <dict>
1053
+ <key>1</key>
1054
+ <dict>
1055
+ <key>name</key>
1056
+ <string>keyword.operator.herestring.shell</string>
1057
+ </dict>
1058
+ <key>2</key>
1059
+ <dict>
1060
+ <key>name</key>
1061
+ <string>string.quoted.double.herestring.shell</string>
1062
+ </dict>
1063
+ <key>3</key>
1064
+ <dict>
1065
+ <key>name</key>
1066
+ <string>punctuation.definition.string.begin.shell</string>
1067
+ </dict>
1068
+ <key>6</key>
1069
+ <dict>
1070
+ <key>name</key>
1071
+ <string>punctuation.definition.string.end.shell</string>
1072
+ </dict>
1073
+ </dict>
1074
+ <key>match</key>
1075
+ <string>(&lt;&lt;&lt;)((")(\\("|\\)|[^"])*("))</string>
1076
+ <key>name</key>
1077
+ <string>meta.herestring.shell</string>
1078
+ </dict>
1079
+ <dict>
1080
+ <key>captures</key>
1081
+ <dict>
1082
+ <key>1</key>
1083
+ <dict>
1084
+ <key>name</key>
1085
+ <string>keyword.operator.herestring.shell</string>
1086
+ </dict>
1087
+ <key>2</key>
1088
+ <dict>
1089
+ <key>name</key>
1090
+ <string>string.unquoted.herestring.shell</string>
1091
+ </dict>
1092
+ </dict>
1093
+ <key>match</key>
1094
+ <string>(&lt;&lt;&lt;)(([^\s\\]|\\.)+)</string>
1095
+ <key>name</key>
1096
+ <string>meta.herestring.shell</string>
1097
+ </dict>
1098
+ </array>
1099
+ </dict>
1100
+ <key>interpolation</key>
1101
+ <dict>
1102
+ <key>patterns</key>
1103
+ <array>
1104
+ <dict>
1105
+ <key>begin</key>
1106
+ <string>\$\({2}</string>
1107
+ <key>beginCaptures</key>
1108
+ <dict>
1109
+ <key>0</key>
1110
+ <dict>
1111
+ <key>name</key>
1112
+ <string>punctuation.definition.string.begin.shell</string>
1113
+ </dict>
1114
+ </dict>
1115
+ <key>end</key>
1116
+ <string>\){2}</string>
1117
+ <key>endCaptures</key>
1118
+ <dict>
1119
+ <key>0</key>
1120
+ <dict>
1121
+ <key>name</key>
1122
+ <string>punctuation.definition.string.end.shell</string>
1123
+ </dict>
1124
+ </dict>
1125
+ <key>name</key>
1126
+ <string>string.other.math.shell</string>
1127
+ <key>patterns</key>
1128
+ <array>
1129
+ <dict>
1130
+ <key>include</key>
1131
+ <string>#math</string>
1132
+ </dict>
1133
+ </array>
1134
+ </dict>
1135
+ <dict>
1136
+ <key>begin</key>
1137
+ <string>`</string>
1138
+ <key>beginCaptures</key>
1139
+ <dict>
1140
+ <key>0</key>
1141
+ <dict>
1142
+ <key>name</key>
1143
+ <string>punctuation.definition.string.begin.shell</string>
1144
+ </dict>
1145
+ </dict>
1146
+ <key>end</key>
1147
+ <string>`</string>
1148
+ <key>endCaptures</key>
1149
+ <dict>
1150
+ <key>0</key>
1151
+ <dict>
1152
+ <key>name</key>
1153
+ <string>punctuation.definition.string.end.shell</string>
1154
+ </dict>
1155
+ </dict>
1156
+ <key>name</key>
1157
+ <string>string.interpolated.backtick.shell</string>
1158
+ <key>patterns</key>
1159
+ <array>
1160
+ <dict>
1161
+ <key>match</key>
1162
+ <string>\\[`\\$]</string>
1163
+ <key>name</key>
1164
+ <string>constant.character.escape.shell</string>
1165
+ </dict>
1166
+ <dict>
1167
+ <key>include</key>
1168
+ <string>$self</string>
1169
+ </dict>
1170
+ </array>
1171
+ </dict>
1172
+ <dict>
1173
+ <key>begin</key>
1174
+ <string>\$\(</string>
1175
+ <key>beginCaptures</key>
1176
+ <dict>
1177
+ <key>0</key>
1178
+ <dict>
1179
+ <key>name</key>
1180
+ <string>punctuation.definition.string.begin.shell</string>
1181
+ </dict>
1182
+ </dict>
1183
+ <key>end</key>
1184
+ <string>\)</string>
1185
+ <key>endCaptures</key>
1186
+ <dict>
1187
+ <key>0</key>
1188
+ <dict>
1189
+ <key>name</key>
1190
+ <string>punctuation.definition.string.end.shell</string>
1191
+ </dict>
1192
+ </dict>
1193
+ <key>name</key>
1194
+ <string>string.interpolated.dollar.shell</string>
1195
+ <key>patterns</key>
1196
+ <array>
1197
+ <dict>
1198
+ <key>include</key>
1199
+ <string>$self</string>
1200
+ </dict>
1201
+ </array>
1202
+ </dict>
1203
+ </array>
1204
+ </dict>
1205
+ <key>keyword</key>
1206
+ <dict>
1207
+ <key>patterns</key>
1208
+ <array>
1209
+ <dict>
1210
+ <key>match</key>
1211
+ <string>\b(?:if|then|else|elif|fi|for|in|do|done|select|case|continue|esac|while|until|return)\b</string>
1212
+ <key>name</key>
1213
+ <string>keyword.control.shell</string>
1214
+ </dict>
1215
+ <dict>
1216
+ <key>match</key>
1217
+ <string>\b(?:export|declare|typeset|local|readonly)\b</string>
1218
+ <key>name</key>
1219
+ <string>storage.modifier.shell</string>
1220
+ </dict>
1221
+ </array>
1222
+ </dict>
1223
+ <key>list</key>
1224
+ <dict>
1225
+ <key>patterns</key>
1226
+ <array>
1227
+ <dict>
1228
+ <key>match</key>
1229
+ <string>;|&amp;&amp;|&amp;|\|\|</string>
1230
+ <key>name</key>
1231
+ <string>keyword.operator.list.shell</string>
1232
+ </dict>
1233
+ </array>
1234
+ </dict>
1235
+ <key>logical-expression</key>
1236
+ <dict>
1237
+ <key>patterns</key>
1238
+ <array>
1239
+ <dict>
1240
+ <key>comment</key>
1241
+ <string>do we want a special rule for ( expr )?</string>
1242
+ <key>match</key>
1243
+ <string>=[=~]?|!=?|&lt;|&gt;|&amp;&amp;|\|\|</string>
1244
+ <key>name</key>
1245
+ <string>keyword.operator.logical.shell</string>
1246
+ </dict>
1247
+ <dict>
1248
+ <key>match</key>
1249
+ <string>-(nt|ot|ef|eq|ne|l[te]|g[te]|[a-hknoprstuwxzOGLSN])</string>
1250
+ <key>name</key>
1251
+ <string>keyword.operator.logical.shell</string>
1252
+ </dict>
1253
+ </array>
1254
+ </dict>
1255
+ <key>loop</key>
1256
+ <dict>
1257
+ <key>patterns</key>
1258
+ <array>
1259
+ <dict>
1260
+ <key>begin</key>
1261
+ <string>\b(for)\s+(?=\({2})</string>
1262
+ <key>captures</key>
1263
+ <dict>
1264
+ <key>1</key>
1265
+ <dict>
1266
+ <key>name</key>
1267
+ <string>keyword.control.shell</string>
1268
+ </dict>
1269
+ </dict>
1270
+ <key>end</key>
1271
+ <string>\b(done)\b</string>
1272
+ <key>name</key>
1273
+ <string>meta.scope.for-loop.shell</string>
1274
+ <key>patterns</key>
1275
+ <array>
1276
+ <dict>
1277
+ <key>include</key>
1278
+ <string>$self</string>
1279
+ </dict>
1280
+ </array>
1281
+ </dict>
1282
+ <dict>
1283
+ <key>begin</key>
1284
+ <string>\b(for)\s+((?:[^\s\\]|\\.)+)\b</string>
1285
+ <key>beginCaptures</key>
1286
+ <dict>
1287
+ <key>1</key>
1288
+ <dict>
1289
+ <key>name</key>
1290
+ <string>keyword.control.shell</string>
1291
+ </dict>
1292
+ <key>2</key>
1293
+ <dict>
1294
+ <key>name</key>
1295
+ <string>variable.other.loop.shell</string>
1296
+ </dict>
1297
+ </dict>
1298
+ <key>end</key>
1299
+ <string>\b(done)\b</string>
1300
+ <key>endCaptures</key>
1301
+ <dict>
1302
+ <key>1</key>
1303
+ <dict>
1304
+ <key>name</key>
1305
+ <string>keyword.control.shell</string>
1306
+ </dict>
1307
+ </dict>
1308
+ <key>name</key>
1309
+ <string>meta.scope.for-in-loop.shell</string>
1310
+ <key>patterns</key>
1311
+ <array>
1312
+ <dict>
1313
+ <key>include</key>
1314
+ <string>$self</string>
1315
+ </dict>
1316
+ </array>
1317
+ </dict>
1318
+ <dict>
1319
+ <key>begin</key>
1320
+ <string>\b(while|until)\b</string>
1321
+ <key>captures</key>
1322
+ <dict>
1323
+ <key>1</key>
1324
+ <dict>
1325
+ <key>name</key>
1326
+ <string>keyword.control.shell</string>
1327
+ </dict>
1328
+ </dict>
1329
+ <key>end</key>
1330
+ <string>\b(done)\b</string>
1331
+ <key>name</key>
1332
+ <string>meta.scope.while-loop.shell</string>
1333
+ <key>patterns</key>
1334
+ <array>
1335
+ <dict>
1336
+ <key>include</key>
1337
+ <string>$self</string>
1338
+ </dict>
1339
+ </array>
1340
+ </dict>
1341
+ <dict>
1342
+ <key>begin</key>
1343
+ <string>\b(select)\s+((?:[^\s\\]|\\.)+)\b</string>
1344
+ <key>beginCaptures</key>
1345
+ <dict>
1346
+ <key>1</key>
1347
+ <dict>
1348
+ <key>name</key>
1349
+ <string>keyword.control.shell</string>
1350
+ </dict>
1351
+ <key>2</key>
1352
+ <dict>
1353
+ <key>name</key>
1354
+ <string>variable.other.loop.shell</string>
1355
+ </dict>
1356
+ </dict>
1357
+ <key>end</key>
1358
+ <string>\b(done)\b</string>
1359
+ <key>endCaptures</key>
1360
+ <dict>
1361
+ <key>1</key>
1362
+ <dict>
1363
+ <key>name</key>
1364
+ <string>keyword.control.shell</string>
1365
+ </dict>
1366
+ </dict>
1367
+ <key>name</key>
1368
+ <string>meta.scope.select-block.shell</string>
1369
+ <key>patterns</key>
1370
+ <array>
1371
+ <dict>
1372
+ <key>include</key>
1373
+ <string>$self</string>
1374
+ </dict>
1375
+ </array>
1376
+ </dict>
1377
+ <dict>
1378
+ <key>begin</key>
1379
+ <string>\b(case)\b</string>
1380
+ <key>captures</key>
1381
+ <dict>
1382
+ <key>1</key>
1383
+ <dict>
1384
+ <key>name</key>
1385
+ <string>keyword.control.shell</string>
1386
+ </dict>
1387
+ </dict>
1388
+ <key>end</key>
1389
+ <string>\b(esac)\b</string>
1390
+ <key>name</key>
1391
+ <string>meta.scope.case-block.shell</string>
1392
+ <key>patterns</key>
1393
+ <array>
1394
+ <dict>
1395
+ <key>begin</key>
1396
+ <string>\b(?:in)\b</string>
1397
+ <key>beginCaptures</key>
1398
+ <dict>
1399
+ <key>1</key>
1400
+ <dict>
1401
+ <key>name</key>
1402
+ <string>keyword.control.shell</string>
1403
+ </dict>
1404
+ </dict>
1405
+ <key>end</key>
1406
+ <string>(?=\b(?:esac)\b)</string>
1407
+ <key>name</key>
1408
+ <string>meta.scope.case-body.shell</string>
1409
+ <key>patterns</key>
1410
+ <array>
1411
+ <dict>
1412
+ <key>include</key>
1413
+ <string>#comment</string>
1414
+ </dict>
1415
+ <dict>
1416
+ <key>include</key>
1417
+ <string>#case-clause</string>
1418
+ </dict>
1419
+ <dict>
1420
+ <key>include</key>
1421
+ <string>$self</string>
1422
+ </dict>
1423
+ </array>
1424
+ </dict>
1425
+ <dict>
1426
+ <key>include</key>
1427
+ <string>$self</string>
1428
+ </dict>
1429
+ </array>
1430
+ </dict>
1431
+ <dict>
1432
+ <key>begin</key>
1433
+ <string>\b(if)\b</string>
1434
+ <key>captures</key>
1435
+ <dict>
1436
+ <key>1</key>
1437
+ <dict>
1438
+ <key>name</key>
1439
+ <string>keyword.control.shell</string>
1440
+ </dict>
1441
+ </dict>
1442
+ <key>end</key>
1443
+ <string>\b(fi)\b</string>
1444
+ <key>name</key>
1445
+ <string>meta.scope.if-block.shell</string>
1446
+ <key>patterns</key>
1447
+ <array>
1448
+ <dict>
1449
+ <key>include</key>
1450
+ <string>$self</string>
1451
+ </dict>
1452
+ </array>
1453
+ </dict>
1454
+ </array>
1455
+ </dict>
1456
+ <key>math</key>
1457
+ <dict>
1458
+ <key>patterns</key>
1459
+ <array>
1460
+ <dict>
1461
+ <key>include</key>
1462
+ <string>#variable</string>
1463
+ </dict>
1464
+ <dict>
1465
+ <key>match</key>
1466
+ <string>\+{1,2}|-{1,2}|!|~|\*{1,2}|/|%|&lt;[&lt;=]?|&gt;[&gt;=]?|==|!=|^|\|{1,2}|&amp;{1,2}|\?|\:|,|=|[*/%+\-&amp;^|]=|&lt;&lt;=|&gt;&gt;=</string>
1467
+ <key>name</key>
1468
+ <string>keyword.operator.arithmetic.shell</string>
1469
+ </dict>
1470
+ <dict>
1471
+ <key>match</key>
1472
+ <string>0[xX]\h+</string>
1473
+ <key>name</key>
1474
+ <string>constant.numeric.hex.shell</string>
1475
+ </dict>
1476
+ <dict>
1477
+ <key>match</key>
1478
+ <string>0\d+</string>
1479
+ <key>name</key>
1480
+ <string>constant.numeric.octal.shell</string>
1481
+ </dict>
1482
+ <dict>
1483
+ <key>match</key>
1484
+ <string>\d{1,2}#[0-9a-zA-Z@_]+</string>
1485
+ <key>name</key>
1486
+ <string>constant.numeric.other.shell</string>
1487
+ </dict>
1488
+ <dict>
1489
+ <key>match</key>
1490
+ <string>\d+</string>
1491
+ <key>name</key>
1492
+ <string>constant.numeric.integer.shell</string>
1493
+ </dict>
1494
+ </array>
1495
+ </dict>
1496
+ <key>pathname</key>
1497
+ <dict>
1498
+ <key>patterns</key>
1499
+ <array>
1500
+ <dict>
1501
+ <key>match</key>
1502
+ <string>(?&lt;=\s|:|=|^)~</string>
1503
+ <key>name</key>
1504
+ <string>keyword.operator.tilde.shell</string>
1505
+ </dict>
1506
+ <dict>
1507
+ <key>match</key>
1508
+ <string>\*|\?</string>
1509
+ <key>name</key>
1510
+ <string>keyword.operator.glob.shell</string>
1511
+ </dict>
1512
+ <dict>
1513
+ <key>begin</key>
1514
+ <string>([?*+@!])(\()</string>
1515
+ <key>beginCaptures</key>
1516
+ <dict>
1517
+ <key>1</key>
1518
+ <dict>
1519
+ <key>name</key>
1520
+ <string>keyword.operator.extglob.shell</string>
1521
+ </dict>
1522
+ <key>2</key>
1523
+ <dict>
1524
+ <key>name</key>
1525
+ <string>punctuation.definition.extglob.shell</string>
1526
+ </dict>
1527
+ </dict>
1528
+ <key>end</key>
1529
+ <string>(\))</string>
1530
+ <key>endCaptures</key>
1531
+ <dict>
1532
+ <key>1</key>
1533
+ <dict>
1534
+ <key>name</key>
1535
+ <string>punctuation.definition.extglob.shell</string>
1536
+ </dict>
1537
+ </dict>
1538
+ <key>name</key>
1539
+ <string>meta.structure.extglob.shell</string>
1540
+ <key>patterns</key>
1541
+ <array>
1542
+ <dict>
1543
+ <key>include</key>
1544
+ <string>$self</string>
1545
+ </dict>
1546
+ </array>
1547
+ </dict>
1548
+ </array>
1549
+ </dict>
1550
+ <key>pipeline</key>
1551
+ <dict>
1552
+ <key>patterns</key>
1553
+ <array>
1554
+ <dict>
1555
+ <key>match</key>
1556
+ <string>\b(time)\b</string>
1557
+ <key>name</key>
1558
+ <string>keyword.other.shell</string>
1559
+ </dict>
1560
+ <dict>
1561
+ <key>match</key>
1562
+ <string>[|!]</string>
1563
+ <key>name</key>
1564
+ <string>keyword.operator.pipe.shell</string>
1565
+ </dict>
1566
+ </array>
1567
+ </dict>
1568
+ <key>redirection</key>
1569
+ <dict>
1570
+ <key>patterns</key>
1571
+ <array>
1572
+ <dict>
1573
+ <key>begin</key>
1574
+ <string>[&gt;&lt;]\(</string>
1575
+ <key>beginCaptures</key>
1576
+ <dict>
1577
+ <key>0</key>
1578
+ <dict>
1579
+ <key>name</key>
1580
+ <string>punctuation.definition.string.begin.shell</string>
1581
+ </dict>
1582
+ </dict>
1583
+ <key>end</key>
1584
+ <string>\)</string>
1585
+ <key>endCaptures</key>
1586
+ <dict>
1587
+ <key>0</key>
1588
+ <dict>
1589
+ <key>name</key>
1590
+ <string>punctuation.definition.string.end.shell</string>
1591
+ </dict>
1592
+ </dict>
1593
+ <key>name</key>
1594
+ <string>string.interpolated.process-substitution.shell</string>
1595
+ <key>patterns</key>
1596
+ <array>
1597
+ <dict>
1598
+ <key>include</key>
1599
+ <string>$self</string>
1600
+ </dict>
1601
+ </array>
1602
+ </dict>
1603
+ <dict>
1604
+ <key>comment</key>
1605
+ <string>valid: &amp;&gt;word &gt;&amp;word &gt;word [n]&gt;&amp;[n] [n]&lt;word [n]&gt;word [n]&gt;&gt;word [n]&lt;&amp;word (last one is duplicate)</string>
1606
+ <key>match</key>
1607
+ <string>&amp;&gt;|\d*&gt;&amp;\d*|\d*(&gt;&gt;|&gt;|&lt;)|\d*&lt;&amp;|\d*&lt;&gt;</string>
1608
+ <key>name</key>
1609
+ <string>keyword.operator.redirect.shell</string>
1610
+ </dict>
1611
+ </array>
1612
+ </dict>
1613
+ <key>string</key>
1614
+ <dict>
1615
+ <key>patterns</key>
1616
+ <array>
1617
+ <dict>
1618
+ <key>match</key>
1619
+ <string>\\.</string>
1620
+ <key>name</key>
1621
+ <string>constant.character.escape.shell</string>
1622
+ </dict>
1623
+ <dict>
1624
+ <key>begin</key>
1625
+ <string>'</string>
1626
+ <key>beginCaptures</key>
1627
+ <dict>
1628
+ <key>0</key>
1629
+ <dict>
1630
+ <key>name</key>
1631
+ <string>punctuation.definition.string.begin.shell</string>
1632
+ </dict>
1633
+ </dict>
1634
+ <key>end</key>
1635
+ <string>'</string>
1636
+ <key>endCaptures</key>
1637
+ <dict>
1638
+ <key>0</key>
1639
+ <dict>
1640
+ <key>name</key>
1641
+ <string>punctuation.definition.string.end.shell</string>
1642
+ </dict>
1643
+ </dict>
1644
+ <key>name</key>
1645
+ <string>string.quoted.single.shell</string>
1646
+ </dict>
1647
+ <dict>
1648
+ <key>begin</key>
1649
+ <string>\$?"</string>
1650
+ <key>beginCaptures</key>
1651
+ <dict>
1652
+ <key>0</key>
1653
+ <dict>
1654
+ <key>name</key>
1655
+ <string>punctuation.definition.string.begin.shell</string>
1656
+ </dict>
1657
+ </dict>
1658
+ <key>end</key>
1659
+ <string>"</string>
1660
+ <key>endCaptures</key>
1661
+ <dict>
1662
+ <key>0</key>
1663
+ <dict>
1664
+ <key>name</key>
1665
+ <string>punctuation.definition.string.end.shell</string>
1666
+ </dict>
1667
+ </dict>
1668
+ <key>name</key>
1669
+ <string>string.quoted.double.shell</string>
1670
+ <key>patterns</key>
1671
+ <array>
1672
+ <dict>
1673
+ <key>match</key>
1674
+ <string>\\[\$`"\\\n]</string>
1675
+ <key>name</key>
1676
+ <string>constant.character.escape.shell</string>
1677
+ </dict>
1678
+ <dict>
1679
+ <key>include</key>
1680
+ <string>#variable</string>
1681
+ </dict>
1682
+ <dict>
1683
+ <key>include</key>
1684
+ <string>#interpolation</string>
1685
+ </dict>
1686
+ </array>
1687
+ </dict>
1688
+ <dict>
1689
+ <key>begin</key>
1690
+ <string>\$'</string>
1691
+ <key>beginCaptures</key>
1692
+ <dict>
1693
+ <key>0</key>
1694
+ <dict>
1695
+ <key>name</key>
1696
+ <string>punctuation.definition.string.begin.shell</string>
1697
+ </dict>
1698
+ </dict>
1699
+ <key>end</key>
1700
+ <string>'</string>
1701
+ <key>endCaptures</key>
1702
+ <dict>
1703
+ <key>0</key>
1704
+ <dict>
1705
+ <key>name</key>
1706
+ <string>punctuation.definition.string.end.shell</string>
1707
+ </dict>
1708
+ </dict>
1709
+ <key>name</key>
1710
+ <string>string.quoted.single.dollar.shell</string>
1711
+ <key>patterns</key>
1712
+ <array>
1713
+ <dict>
1714
+ <key>match</key>
1715
+ <string>\\(a|b|e|f|n|r|t|v|\\|')</string>
1716
+ <key>name</key>
1717
+ <string>constant.character.escape.ansi-c.shell</string>
1718
+ </dict>
1719
+ <dict>
1720
+ <key>match</key>
1721
+ <string>\\[0-9]{3}</string>
1722
+ <key>name</key>
1723
+ <string>constant.character.escape.octal.shell</string>
1724
+ </dict>
1725
+ <dict>
1726
+ <key>match</key>
1727
+ <string>\\x[0-9a-fA-F]{2}</string>
1728
+ <key>name</key>
1729
+ <string>constant.character.escape.hex.shell</string>
1730
+ </dict>
1731
+ <dict>
1732
+ <key>match</key>
1733
+ <string>\\c.</string>
1734
+ <key>name</key>
1735
+ <string>constant.character.escape.control-char.shell</string>
1736
+ </dict>
1737
+ </array>
1738
+ </dict>
1739
+ </array>
1740
+ </dict>
1741
+ <key>support</key>
1742
+ <dict>
1743
+ <key>patterns</key>
1744
+ <array>
1745
+ <dict>
1746
+ <key>match</key>
1747
+ <string>(?&lt;=^|\s)(?::|\.)(?=\s|;|&amp;|$)</string>
1748
+ <key>name</key>
1749
+ <string>support.function.builtin.shell</string>
1750
+ </dict>
1751
+ <dict>
1752
+ <key>match</key>
1753
+ <string>\b(?:alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|dirs|disown|echo|enable|eval|exec|exit|false|fc|fg|getopts|hash|help|history|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|times|trap|true|type|ulimit|umask|unalias|unset|wait)\b</string>
1754
+ <key>name</key>
1755
+ <string>support.function.builtin.shell</string>
1756
+ </dict>
1757
+ </array>
1758
+ </dict>
1759
+ <key>variable</key>
1760
+ <dict>
1761
+ <key>patterns</key>
1762
+ <array>
1763
+ <dict>
1764
+ <key>captures</key>
1765
+ <dict>
1766
+ <key>1</key>
1767
+ <dict>
1768
+ <key>name</key>
1769
+ <string>punctuation.definition.variable.shell</string>
1770
+ </dict>
1771
+ </dict>
1772
+ <key>match</key>
1773
+ <string>(\$)[-*@#?$!0_]</string>
1774
+ <key>name</key>
1775
+ <string>variable.other.special.shell</string>
1776
+ </dict>
1777
+ <dict>
1778
+ <key>captures</key>
1779
+ <dict>
1780
+ <key>1</key>
1781
+ <dict>
1782
+ <key>name</key>
1783
+ <string>punctuation.definition.variable.shell</string>
1784
+ </dict>
1785
+ </dict>
1786
+ <key>match</key>
1787
+ <string>(\$)[1-9]</string>
1788
+ <key>name</key>
1789
+ <string>variable.other.positional.shell</string>
1790
+ </dict>
1791
+ <dict>
1792
+ <key>captures</key>
1793
+ <dict>
1794
+ <key>1</key>
1795
+ <dict>
1796
+ <key>name</key>
1797
+ <string>punctuation.definition.variable.shell</string>
1798
+ </dict>
1799
+ </dict>
1800
+ <key>match</key>
1801
+ <string>(\$)[a-zA-Z_][a-zA-Z0-9_]*</string>
1802
+ <key>name</key>
1803
+ <string>variable.other.normal.shell</string>
1804
+ </dict>
1805
+ <dict>
1806
+ <key>begin</key>
1807
+ <string>\$\{</string>
1808
+ <key>captures</key>
1809
+ <dict>
1810
+ <key>0</key>
1811
+ <dict>
1812
+ <key>name</key>
1813
+ <string>punctuation.definition.variable.shell</string>
1814
+ </dict>
1815
+ </dict>
1816
+ <key>end</key>
1817
+ <string>\}</string>
1818
+ <key>name</key>
1819
+ <string>variable.other.bracket.shell</string>
1820
+ <key>patterns</key>
1821
+ <array>
1822
+ <dict>
1823
+ <key>match</key>
1824
+ <string>!|:[-=?]?|\*|@|#{1,2}|%{1,2}|/</string>
1825
+ <key>name</key>
1826
+ <string>keyword.operator.expansion.shell</string>
1827
+ </dict>
1828
+ <dict>
1829
+ <key>captures</key>
1830
+ <dict>
1831
+ <key>1</key>
1832
+ <dict>
1833
+ <key>name</key>
1834
+ <string>punctuation.section.array.shell</string>
1835
+ </dict>
1836
+ <key>3</key>
1837
+ <dict>
1838
+ <key>name</key>
1839
+ <string>punctuation.section.array.shell</string>
1840
+ </dict>
1841
+ </dict>
1842
+ <key>match</key>
1843
+ <string>(\[)([^\]]+)(\])</string>
1844
+ </dict>
1845
+ </array>
1846
+ </dict>
1847
+ </array>
1848
+ </dict>
1849
+ </dict>
1850
+ <key>scopeName</key>
1851
+ <string>source.shell</string>
1852
+ <key>uuid</key>
1853
+ <string>DDEEA3ED-6B1C-11D9-8B10-000D93589AF6</string>
1854
+ </dict>
1855
+ </plist>