redcar 0.3.1dev → 0.3.2dev

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,52 @@
1
+ module Redcar
2
+ class AutoCompleter
3
+ class DocumentController
4
+ include Redcar::Document::Controller
5
+ include Redcar::Document::Controller::ModificationCallbacks
6
+
7
+ def start_completion
8
+ @in_completion = true
9
+ end
10
+
11
+ def end_completion
12
+ @in_completion = false
13
+ end
14
+
15
+ def in_completion?
16
+ @in_completion
17
+ end
18
+
19
+ def start_modification
20
+ @in_modification = true
21
+ end
22
+
23
+ def end_modification
24
+ @in_modification = false
25
+ end
26
+
27
+ def in_modification?
28
+ @in_modification
29
+ end
30
+
31
+ attr_accessor :index
32
+ attr_accessor :length_of_previous
33
+ attr_accessor :word_list, :word, :left, :right
34
+
35
+ def before_modify(*_)
36
+ end
37
+
38
+ def after_modify(*_)
39
+ unless in_modification?
40
+ @in_completion = false
41
+ @index = 0
42
+ @length_of_previous = nil
43
+ @word_list = nil
44
+ @word = nil
45
+ @left = nil
46
+ @right = nil
47
+ end
48
+ end
49
+
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,48 @@
1
+
2
+ module Redcar
3
+ class AutoCompleter
4
+ class WordIterator
5
+ def initialize(document, word_chars)
6
+ @document = document
7
+ @word_chars = word_chars
8
+ end
9
+
10
+ # word_chars is a regex, that defines word characters
11
+ def each_word_with_offset(prefix)
12
+ inside_word = false
13
+ text = @document.to_s
14
+ char_offset = 0
15
+ word_offset = 0
16
+ word = []
17
+
18
+ text.each_char do |char|
19
+ # p [inside_word, char, word]
20
+ if char =~ @word_chars
21
+ unless inside_word
22
+ word_offset = char_offset
23
+ inside_word = true
24
+ end
25
+ word << char
26
+ else
27
+ if inside_word
28
+ joined = word.join
29
+ if joined =~ /^#{prefix}/
30
+ # p [:yield, joined]
31
+ yield joined, word_offset
32
+ end
33
+ inside_word = false
34
+ word = []
35
+ end
36
+ end
37
+ char_offset += 1
38
+ end
39
+
40
+ # also yield the last word of the document if it matches
41
+ if word.join =~ /^#{prefix}/
42
+ #p [:yield, word.join]
43
+ yield word.join, word_offset
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,40 @@
1
+
2
+ module Redcar
3
+ class AutoCompleter
4
+ # the list of words plus their relative distance (beginning of the word to the cursor)
5
+ # this information can just be updated, as long as the cursor is moving through the document.
6
+ # as soon as typing happens, a word will have to be added or replaced.
7
+ class WordList
8
+ include Enumerable
9
+
10
+ attr_reader :words
11
+
12
+ def initialize
13
+ @words = Hash.new
14
+ @offset = 0
15
+ end
16
+
17
+ # adds a new word, iff it doesn't yet exist.
18
+ # if the word exists, the distance will be adjusted, if it's lower.
19
+ def add_word(word, distance)
20
+ if @words.include?(word)
21
+ if distance < @words[word]
22
+ @words[word] = distance
23
+ end
24
+ else
25
+ @words[word] = distance
26
+ end
27
+ end
28
+
29
+ # yield the completions for the given prefix
30
+ def completions
31
+ filtered = @words.keys
32
+ return filtered.sort!{|a,b| @words[a] <=> @words[b] }
33
+ end
34
+
35
+ def each
36
+ @words.each {|word,distance| yield word, distance }
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,10 @@
1
+
2
+ Plugin.define do
3
+ name "Auto Completer"
4
+ version "0.3.2"
5
+ object "Redcar::AutoCompleter"
6
+ file "lib", "auto_completer"
7
+
8
+ dependencies "core", ">0",
9
+ "edit_view", ">0"
10
+ end
@@ -4,7 +4,7 @@ require 'auto_indenter/document_controller'
4
4
  module Redcar
5
5
  class AutoIndenter
6
6
 
7
- def self.load
7
+ def self.start
8
8
  Document.register_controller_type(AutoIndenter::DocumentController)
9
9
  end
10
10
  end
@@ -7,7 +7,7 @@ module Redcar
7
7
 
8
8
  def after_newline(line_ix)
9
9
  if line_ix > 0
10
- previous_line = document.get_line(line_ix - 1)
10
+ previous_line = document.get_line(line_ix - 1).gsub("\n", "")
11
11
  whitespace_prefix = whitespace_prefix(previous_line)
12
12
  offset = document.offset_at_line(line_ix)
13
13
  document.insert(offset, whitespace_prefix)
@@ -0,0 +1,8 @@
1
+
2
+ Plugin.define do
3
+ name "auto_indenter"
4
+ version "1.0"
5
+ file "lib", "auto_indenter"
6
+ object "Redcar::AutoIndenter"
7
+ dependencies "edit_view", ">0"
8
+ end
@@ -1,4 +1,6 @@
1
1
 
2
+ require 'fileutils'
3
+
2
4
  require "core/logger"
3
5
  require "core/controller"
4
6
  require "core/gui"
@@ -11,38 +13,12 @@ module Redcar
11
13
  class Core
12
14
  include HasLogger
13
15
 
14
- def self.load
16
+ def self.loaded
15
17
  Core::Logger.init
16
- end
17
-
18
- # Platform symbol
19
- #
20
- # @return [:osx/:windows/:linux]
21
- def self.platform
22
- case Config::CONFIG["target_os"]
23
- when /darwin/
24
- :osx
25
- when /mswin/
26
- :windows
27
- when /linux/
28
- :linux
29
- end
30
- end
31
-
32
- # Platform specific ~/.redcar
33
- #
34
- # @return [String] expanded path
35
- def self.user_dir
36
- if platform == :windows
37
- if ENV['USERPROFILE'].nil?
38
- userdir = "C:/My Documents/.redcar/"
39
- else
40
- userdir = File.join(ENV['USERPROFILE'], "redcar")
41
- end
42
- else
43
- userdir = File.join(ENV['HOME'], ".redcar") unless ENV['HOME'].nil?
18
+ unless File.exist?(Redcar.user_dir)
19
+ FileUtils.mkdir(Redcar.user_dir)
44
20
  end
45
- File.expand_path(userdir)
21
+
46
22
  end
47
23
 
48
24
  end
@@ -31,8 +31,13 @@ module Redcar
31
31
 
32
32
  # Starts the event loop for this gui.
33
33
  def start
34
- logger.info("Starting event loop")
35
- @event_loop.start
34
+ if ARGV.include?("--quit-immediately")
35
+ logger.info("Quitting straight away")
36
+ exit
37
+ else
38
+ logger.info("Starting event loop")
39
+ @event_loop.start
40
+ end
36
41
  end
37
42
 
38
43
  # Stops the event loop for this gui.
@@ -1,3 +1,5 @@
1
+ require 'logger'
2
+
1
3
  module Redcar
2
4
  def self.logger
3
5
  Core::Logger.root_logger
@@ -6,19 +8,20 @@ module Redcar
6
8
  class Core
7
9
  module HasLogger
8
10
  def logger
9
- Logging::Logger[self.class.name]
11
+ Core::Logger.root_logger
10
12
  end
11
13
  end
12
14
 
13
15
  module Logger
14
16
  def self.init
15
17
  level = ENV["REDCAR_LOG"] || "error"
16
- appender = Logging::Appenders.stdout(:level => level)
17
- root_logger.add_appenders(appender)
18
+ root_logger.level = ::Logger::ERROR
19
+ # appender = Logging::Appenders.stdout(:level => level)
20
+ # root_logger.add_appenders(appender)
18
21
  end
19
22
 
20
23
  def self.root_logger
21
- Logging::Logger[:root]
24
+ @logger ||= ::Logger.new(STDOUT)
22
25
  end
23
26
  end
24
27
  end
@@ -2,13 +2,9 @@
2
2
  module Redcar
3
3
  class Plugin
4
4
  class Storage
5
-
6
- extend Forwardable
7
-
8
- def_delegators :@storage, :[], :[]=, :keys
9
5
 
10
6
  def self.storage_dir
11
- Core.user_dir
7
+ Redcar.user_dir
12
8
  end
13
9
 
14
10
  # Open a storage file or create it if it doesn't exist.
@@ -37,6 +33,20 @@ module Redcar
37
33
  self
38
34
  end
39
35
 
36
+ def [](key)
37
+ @storage[key]
38
+ end
39
+
40
+ def []=(key, value)
41
+ @storage[key] = value
42
+ save
43
+ value
44
+ end
45
+
46
+ def keys
47
+ @storage.keys
48
+ end
49
+
40
50
  private
41
51
 
42
52
  def path
@@ -0,0 +1,7 @@
1
+
2
+ Plugin.define do
3
+ name "core"
4
+ version "1.0"
5
+ object "Redcar::Core"
6
+ file "lib", "core"
7
+ end
@@ -10,18 +10,9 @@ describe Redcar::Plugin::Storage do
10
10
  storage[:some_key].should == "some other value"
11
11
  end
12
12
 
13
- it "rolls back to an empty hash if it hasn't been saved" do
14
- storage = Redcar::Plugin::Storage.new('test')
15
- storage[:some_key] = "some value"
16
- storage[:some_key].should == "some value"
17
- storage.rollback
18
- storage[:some_key].should be_nil
19
- end
20
-
21
13
  it "saves to disk" do
22
14
  storage = Redcar::Plugin::Storage.new('test_storage_saved')
23
15
  storage[:some_key] = "some value"
24
- storage.save
25
16
  storage = Redcar::Plugin::Storage.new('test_storage_saved')
26
17
  storage[:some_key].should == "some value"
27
18
 
@@ -0,0 +1,45 @@
1
+ Feature: Cut and Paste
2
+
3
+ Scenario: Cut removes the text
4
+ When I open a new edit tab
5
+ And I replace the contents with "Frank"
6
+ And I select from 0 to 3
7
+ And I cut text
8
+ Then I should not see "Fra" in the edit tab
9
+ And I should see "nk" in the edit tab
10
+
11
+ Scenario: Copy leaves the text
12
+ When I open a new edit tab
13
+ And I replace the contents with "Frank"
14
+ And I select from 0 to 3
15
+ And I copy text
16
+ Then I should see "Frank" in the edit tab
17
+
18
+ Scenario: Paste inserts the cut text
19
+ When I open a new edit tab
20
+ And I replace the contents with "Frank"
21
+ And I select from 0 to 3
22
+ And I cut text
23
+ And I move the cursor to 2
24
+ And I paste text
25
+ Then I should see "nkFra" in the edit tab
26
+
27
+ Scenario: Paste inserts the copied text
28
+ When I open a new edit tab
29
+ And I replace the contents with "Frank"
30
+ And I select from 0 to 3
31
+ And I copy text
32
+ And I move the cursor to 2
33
+ And I paste text
34
+ Then I should see "FrFraank" in the edit tab
35
+
36
+ Scenario: Paste pastes the most recent copy
37
+ When I open a new edit tab
38
+ And I replace the contents with "Frank"
39
+ And I select from 0 to 3
40
+ And I copy text
41
+ And I select from 3 to 5
42
+ And I copy text
43
+ And I move the cursor to 0
44
+ And I paste text
45
+ Then I should see "nkFrank" in the edit tab
@@ -5,3 +5,25 @@ end
5
5
  When /^I redo$/ do
6
6
  Redcar::Top::RedoCommand.new.run
7
7
  end
8
+
9
+ When /^I select from (\d+) to (\d+)$/ do |start_offset, end_offset|
10
+ doc = Redcar.app.focussed_window.focussed_notebook.focussed_tab.edit_view.document
11
+ doc.set_selection_range((start_offset.to_i)..(end_offset.to_i))
12
+ end
13
+
14
+ When /^I copy text$/ do
15
+ Redcar::Top::CopyCommand.new.run
16
+ end
17
+
18
+ When /^I cut text$/ do
19
+ Redcar::Top::CutCommand.new.run
20
+ end
21
+
22
+ When /^I paste text$/ do
23
+ Redcar::Top::PasteCommand.new.run
24
+ end
25
+
26
+ When /^I move the cursor to (\d+)$/ do |offset|
27
+ doc = Redcar.app.focussed_window.focussed_notebook.focussed_tab.edit_view.document
28
+ doc.cursor_offset = offset.to_i
29
+ end
@@ -32,7 +32,7 @@ end
32
32
  World(SwtKeyHelper)
33
33
 
34
34
  When /^I press m"([^\"]*)" l"([^\"]*)" w"([^\"]*)"$/ do |key_mac, key_linux, key_windows|
35
- case Redcar::Core.platform
35
+ case Redcar.platform
36
36
  when :osx
37
37
  key = key_mac
38
38
  when :linux
@@ -5,7 +5,7 @@ module NotebookSwtHelper
5
5
  end
6
6
 
7
7
  def ctab_folders
8
- sash.children.to_a[1].children.to_a.select do |c|
8
+ sash.children.to_a[1].children.to_a[0].children.to_a.select do |c|
9
9
  c.class == Java::OrgEclipseSwtCustom::CTabFolder
10
10
  end
11
11
  end
@@ -19,6 +19,7 @@ When /^I close the focussed tab$/ do
19
19
  end
20
20
 
21
21
  When /^I replace the contents with "([^\"]*)"$/ do |arg1|
22
+ arg1 = arg1.gsub("\\n", "\n")
22
23
  win = Redcar.app.windows.first
23
24
  tab = win.focussed_notebook.focussed_tab
24
25
  tab.edit_view.document.text = arg1
@@ -76,6 +77,7 @@ Then /^the tab should have the keyboard focus$/ do
76
77
  end
77
78
 
78
79
  Then /^I should (not )?see "(.*)" in the edit tab$/ do |bool, content|
80
+ content = content.gsub("\\n", "\n")
79
81
  bool = !bool
80
82
  matcher = bool ? be_true : be_false
81
83
  focussed_tab.edit_view.document.to_s.include?(content).should matcher