redcar-dev 0.12.17dev

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 (655) hide show
  1. data/CHANGES +664 -0
  2. data/LICENSE +32 -0
  3. data/README.md +119 -0
  4. data/Rakefile +283 -0
  5. data/bin/redcar +29 -0
  6. data/lib/redcar.rb +307 -0
  7. data/lib/redcar/installer.rb +178 -0
  8. data/lib/redcar/instance_exec.rb +25 -0
  9. data/lib/redcar/logger.rb +64 -0
  10. data/lib/redcar/plist.rb +83 -0
  11. data/lib/redcar/ruby_extensions.rb +201 -0
  12. data/lib/redcar/runner.rb +130 -0
  13. data/lib/redcar/usage.rb +42 -0
  14. data/lib/redcar_quick_start.rb +100 -0
  15. data/lib/regex_replace.rb +221 -0
  16. data/lib/tasks/app-bundle.rake +63 -0
  17. data/plugins/application/features/main_menu.feature +9 -0
  18. data/plugins/application/features/navigation_history.feature +66 -0
  19. data/plugins/application/features/step_definitions/command_steps.rb +10 -0
  20. data/plugins/application/features/step_definitions/dialog_steps.rb +25 -0
  21. data/plugins/application/features/step_definitions/filter_list_dialog_steps.rb +42 -0
  22. data/plugins/application/features/step_definitions/key_steps.rb +18 -0
  23. data/plugins/application/features/step_definitions/menu_steps.rb +42 -0
  24. data/plugins/application/features/step_definitions/navigation_history_steps.rb +4 -0
  25. data/plugins/application/features/step_definitions/speedbar_steps.rb +88 -0
  26. data/plugins/application/features/step_definitions/tree_steps.rb +107 -0
  27. data/plugins/application/features/step_definitions/window_steps.rb +17 -0
  28. data/plugins/application/features/support/env.rb +257 -0
  29. data/plugins/application/features/support/fake_event.rb +26 -0
  30. data/plugins/application/lib/application.rb +425 -0
  31. data/plugins/application/lib/application/assets/file.png +0 -0
  32. data/plugins/application/lib/application/clipboard.rb +95 -0
  33. data/plugins/application/lib/application/command.rb +108 -0
  34. data/plugins/application/lib/application/command/executor.rb +80 -0
  35. data/plugins/application/lib/application/command/history.rb +54 -0
  36. data/plugins/application/lib/application/commands/application_commands.rb +21 -0
  37. data/plugins/application/lib/application/commands/notebook_commands.rb +73 -0
  38. data/plugins/application/lib/application/commands/tab_commands.rb +105 -0
  39. data/plugins/application/lib/application/commands/treebook_commands.rb +117 -0
  40. data/plugins/application/lib/application/commands/window_commands.rb +68 -0
  41. data/plugins/application/lib/application/dialog.rb +170 -0
  42. data/plugins/application/lib/application/dialogs/filter_list_dialog.rb +123 -0
  43. data/plugins/application/lib/application/dialogs/modeless_list_dialog.rb +85 -0
  44. data/plugins/application/lib/application/event_spewer.rb +32 -0
  45. data/plugins/application/lib/application/keymap.rb +41 -0
  46. data/plugins/application/lib/application/keymap/builder.rb +23 -0
  47. data/plugins/application/lib/application/menu.rb +117 -0
  48. data/plugins/application/lib/application/menu/builder.rb +80 -0
  49. data/plugins/application/lib/application/menu/builder/group.rb +47 -0
  50. data/plugins/application/lib/application/menu/item.rb +79 -0
  51. data/plugins/application/lib/application/menu/lazy_menu.rb +25 -0
  52. data/plugins/application/lib/application/navigation_history.rb +71 -0
  53. data/plugins/application/lib/application/notebook.rb +163 -0
  54. data/plugins/application/lib/application/sensitive.rb +57 -0
  55. data/plugins/application/lib/application/sensitivity.rb +82 -0
  56. data/plugins/application/lib/application/speedbar.rb +100 -0
  57. data/plugins/application/lib/application/tab.rb +92 -0
  58. data/plugins/application/lib/application/tab/command.rb +5 -0
  59. data/plugins/application/lib/application/toolbar.rb +83 -0
  60. data/plugins/application/lib/application/toolbar/builder.rb +80 -0
  61. data/plugins/application/lib/application/toolbar/builder/group.rb +47 -0
  62. data/plugins/application/lib/application/toolbar/item.rb +71 -0
  63. data/plugins/application/lib/application/toolbar/lazy_toolbar.rb +25 -0
  64. data/plugins/application/lib/application/tree.rb +94 -0
  65. data/plugins/application/lib/application/tree/command.rb +5 -0
  66. data/plugins/application/lib/application/tree/controller.rb +64 -0
  67. data/plugins/application/lib/application/tree/mirror.rb +132 -0
  68. data/plugins/application/lib/application/treebook.rb +83 -0
  69. data/plugins/application/lib/application/window.rb +274 -0
  70. data/plugins/application/plugin.rb +8 -0
  71. data/plugins/application/spec/application/application_spec.rb +23 -0
  72. data/plugins/application/spec/application/clipboard_spec.rb +55 -0
  73. data/plugins/application/spec/application/command/executor_spec.rb +78 -0
  74. data/plugins/application/spec/application/command/history_spec.rb +49 -0
  75. data/plugins/application/spec/application/command_spec.rb +78 -0
  76. data/plugins/application/spec/application/controllers/application_controller.rb +4 -0
  77. data/plugins/application/spec/application/controllers/notebook_controller.rb +4 -0
  78. data/plugins/application/spec/application/controllers/window_controller.rb +5 -0
  79. data/plugins/application/spec/application/keymap/builder_spec.rb +17 -0
  80. data/plugins/application/spec/application/menu/builder_spec.rb +61 -0
  81. data/plugins/application/spec/application/menu/menu_item_spec.rb +17 -0
  82. data/plugins/application/spec/application/menu_spec.rb +171 -0
  83. data/plugins/application/spec/application/navigation_history_spec.rb +96 -0
  84. data/plugins/application/spec/application/notebook_spec.rb +31 -0
  85. data/plugins/application/spec/application/sensitive_spec.rb +156 -0
  86. data/plugins/application/spec/application/speedbar_spec.rb +77 -0
  87. data/plugins/application/spec/application/treebook_spec.rb +27 -0
  88. data/plugins/application/spec/application/window_spec.rb +24 -0
  89. data/plugins/application/spec/spec_helper.rb +18 -0
  90. data/plugins/application_swt/build.xml +74 -0
  91. data/plugins/application_swt/lib/application_swt.rb +218 -0
  92. data/plugins/application_swt/lib/application_swt/bring_to_front.rb +53 -0
  93. data/plugins/application_swt/lib/application_swt/clipboard.rb +42 -0
  94. data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +180 -0
  95. data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +233 -0
  96. data/plugins/application_swt/lib/application_swt/dialogs/input_dialog.rb +46 -0
  97. data/plugins/application_swt/lib/application_swt/dialogs/modeless_dialog.rb +113 -0
  98. data/plugins/application_swt/lib/application_swt/dialogs/modeless_html_dialog.rb +85 -0
  99. data/plugins/application_swt/lib/application_swt/dialogs/modeless_list_dialog_controller.rb +143 -0
  100. data/plugins/application_swt/lib/application_swt/dialogs/no_buttons_dialog.rb +24 -0
  101. data/plugins/application_swt/lib/application_swt/dialogs/text_and_file_dialog.rb +118 -0
  102. data/plugins/application_swt/lib/application_swt/gradient.rb +61 -0
  103. data/plugins/application_swt/lib/application_swt/html_tab.rb +79 -0
  104. data/plugins/application_swt/lib/application_swt/icon.rb +35 -0
  105. data/plugins/application_swt/lib/application_swt/listener_helpers.rb +20 -0
  106. data/plugins/application_swt/lib/application_swt/menu.rb +167 -0
  107. data/plugins/application_swt/lib/application_swt/menu/binding_translator.rb +94 -0
  108. data/plugins/application_swt/lib/application_swt/notebook.rb +148 -0
  109. data/plugins/application_swt/lib/application_swt/notebook/tab_drag_and_drop_listener.rb +124 -0
  110. data/plugins/application_swt/lib/application_swt/notebook/tab_transfer.rb +83 -0
  111. data/plugins/application_swt/lib/application_swt/speedbar.rb +185 -0
  112. data/plugins/application_swt/lib/application_swt/speedbar/button_item.rb +20 -0
  113. data/plugins/application_swt/lib/application_swt/speedbar/combo_item.rb +55 -0
  114. data/plugins/application_swt/lib/application_swt/speedbar/label_item.rb +15 -0
  115. data/plugins/application_swt/lib/application_swt/speedbar/slider_item.rb +32 -0
  116. data/plugins/application_swt/lib/application_swt/speedbar/text_box_item.rb +36 -0
  117. data/plugins/application_swt/lib/application_swt/speedbar/toggle_item.rb +29 -0
  118. data/plugins/application_swt/lib/application_swt/tab.rb +84 -0
  119. data/plugins/application_swt/lib/application_swt/toolbar.rb +138 -0
  120. data/plugins/application_swt/lib/application_swt/toolbar/binding_translator.rb +94 -0
  121. data/plugins/application_swt/lib/application_swt/treebook.rb +78 -0
  122. data/plugins/application_swt/lib/application_swt/window.rb +419 -0
  123. data/plugins/application_swt/lib/dist/application_swt.jar +0 -0
  124. data/plugins/application_swt/lib/swt/graphics_utils.rb +193 -0
  125. data/plugins/application_swt/lib/swt/vtab_folder.rb +177 -0
  126. data/plugins/application_swt/lib/swt/vtab_item.rb +78 -0
  127. data/plugins/application_swt/lib/swt/vtab_label.rb +127 -0
  128. data/plugins/application_swt/plugin.rb +8 -0
  129. data/plugins/application_swt/spec/application_swt/gradient_spec.rb +133 -0
  130. data/plugins/application_swt/spec/application_swt/menu/binding_translator_spec.rb +73 -0
  131. data/plugins/application_swt/spec/application_swt/menu_spec.rb +7 -0
  132. data/plugins/application_swt/spec/spec_helper.rb +20 -0
  133. data/plugins/application_swt/src/com/redcareditor/application_swt/CocoaUIEnhancer.java +313 -0
  134. data/plugins/auto_completer/features/auto_complete.feature +65 -0
  135. data/plugins/auto_completer/features/step_definitions/auto_complete_steps.rb +4 -0
  136. data/plugins/auto_completer/features/support/env.rb +2 -0
  137. data/plugins/auto_completer/lib/auto_completer.rb +129 -0
  138. data/plugins/auto_completer/lib/auto_completer/current_document_completion_source.rb +19 -0
  139. data/plugins/auto_completer/lib/auto_completer/document_controller.rb +52 -0
  140. data/plugins/auto_completer/lib/auto_completer/list_dialog.rb +21 -0
  141. data/plugins/auto_completer/lib/auto_completer/word_iterator.rb +48 -0
  142. data/plugins/auto_completer/lib/auto_completer/word_list.rb +47 -0
  143. data/plugins/auto_completer/plugin.rb +10 -0
  144. data/plugins/auto_indenter/features/java_style_indentation.feature +36 -0
  145. data/plugins/auto_indenter/features/ruby_style_indentation.feature +42 -0
  146. data/plugins/auto_indenter/features/step_definitions/indentation_steps.rb +15 -0
  147. data/plugins/auto_indenter/features/support/env.rb +1 -0
  148. data/plugins/auto_indenter/lib/auto_indenter.rb +108 -0
  149. data/plugins/auto_indenter/lib/auto_indenter/analyzer.rb +100 -0
  150. data/plugins/auto_indenter/lib/auto_indenter/commands.rb +66 -0
  151. data/plugins/auto_indenter/lib/auto_indenter/document_controller.rb +103 -0
  152. data/plugins/auto_indenter/lib/auto_indenter/rules.rb +41 -0
  153. data/plugins/auto_indenter/plugin.rb +9 -0
  154. data/plugins/auto_indenter/spec/auto_indenter/analyzer_spec.rb +151 -0
  155. data/plugins/auto_indenter/spec/spec_helper.rb +5 -0
  156. data/plugins/auto_pairer/features/auto_pairer.feature +92 -0
  157. data/plugins/auto_pairer/features/step_definitions/auto_pairer_steps.rb +0 -0
  158. data/plugins/auto_pairer/features/support/env.rb +1 -0
  159. data/plugins/auto_pairer/lib/auto_pairer.rb +12 -0
  160. data/plugins/auto_pairer/lib/auto_pairer/document_controller.rb +168 -0
  161. data/plugins/auto_pairer/lib/auto_pairer/pairs_for_scope.rb +57 -0
  162. data/plugins/auto_pairer/plugin.rb +9 -0
  163. data/plugins/clipboard-viewer/Screenshot.png +0 -0
  164. data/plugins/clipboard-viewer/lib/clipboard_viewer.rb +50 -0
  165. data/plugins/clipboard-viewer/lib/clipboard_viewer/browser_controller.rb +27 -0
  166. data/plugins/clipboard-viewer/lib/clipboard_viewer/clipboard_bar.rb +67 -0
  167. data/plugins/clipboard-viewer/plugin.rb +9 -0
  168. data/plugins/clipboard-viewer/views/clipboard.html.erb +19 -0
  169. data/plugins/clipboard-viewer/views/default.css +43 -0
  170. data/plugins/clipboard-viewer/views/redcar_small_icon.png +0 -0
  171. data/plugins/comment/features/line_comment.feature +249 -0
  172. data/plugins/comment/features/selection_comment.feature +21 -0
  173. data/plugins/comment/features/step_definitions/comment_steps.rb +7 -0
  174. data/plugins/comment/lib/comment.rb +268 -0
  175. data/plugins/comment/plugin.rb +7 -0
  176. data/plugins/comment/vendor/comment_lib.json +47 -0
  177. data/plugins/connection_manager/lib/connection_manager.rb +57 -0
  178. data/plugins/connection_manager/lib/connection_manager/commands.rb +14 -0
  179. data/plugins/connection_manager/lib/connection_manager/connection_store.rb +87 -0
  180. data/plugins/connection_manager/lib/connection_manager/controller.rb +100 -0
  181. data/plugins/connection_manager/lib/connection_manager/filter_dialog.rb +38 -0
  182. data/plugins/connection_manager/lib/connection_manager/private_key_store.rb +93 -0
  183. data/plugins/connection_manager/plugin.rb +12 -0
  184. data/plugins/connection_manager/views/index.html.erb +284 -0
  185. data/plugins/core/lib/core.rb +41 -0
  186. data/plugins/core/lib/core/controller.rb +23 -0
  187. data/plugins/core/lib/core/gui.rb +100 -0
  188. data/plugins/core/lib/core/has_spi.rb +10 -0
  189. data/plugins/core/lib/core/interface.rb +73 -0
  190. data/plugins/core/lib/core/model.rb +11 -0
  191. data/plugins/core/lib/core/observable.rb +115 -0
  192. data/plugins/core/lib/core/observable_struct.rb +34 -0
  193. data/plugins/core/lib/core/persistent_cache.rb +57 -0
  194. data/plugins/core/lib/core/plugin.rb +12 -0
  195. data/plugins/core/lib/core/plugin/storage.rb +133 -0
  196. data/plugins/core/lib/core/reentry_helpers.rb +13 -0
  197. data/plugins/core/lib/core/resource.rb +86 -0
  198. data/plugins/core/lib/core/task.rb +62 -0
  199. data/plugins/core/lib/core/task_queue.rb +72 -0
  200. data/plugins/core/plugin.rb +7 -0
  201. data/plugins/core/spec/core/base_storage_spec.rb +81 -0
  202. data/plugins/core/spec/core/gui_spec.rb +27 -0
  203. data/plugins/core/spec/core/observable_spec.rb +104 -0
  204. data/plugins/core/spec/core/persistent_cache_spec.rb +100 -0
  205. data/plugins/core/spec/core/resource_spec.rb +125 -0
  206. data/plugins/core/spec/core/shared_storage_spec.rb +49 -0
  207. data/plugins/core/spec/core/storage_spec.rb +27 -0
  208. data/plugins/core/spec/core/task_queue_spec.rb +199 -0
  209. data/plugins/core/spec/spec_helper.rb +27 -0
  210. data/plugins/declarations/lib/declarations.rb +159 -0
  211. data/plugins/declarations/lib/declarations/completion_source.rb +22 -0
  212. data/plugins/declarations/lib/declarations/file.rb +68 -0
  213. data/plugins/declarations/lib/declarations/parser.rb +186 -0
  214. data/plugins/declarations/lib/declarations/select_tag_dialog.rb +45 -0
  215. data/plugins/declarations/plugin.rb +7 -0
  216. data/plugins/declarations/spec/declarations/file_spec.rb +62 -0
  217. data/plugins/declarations/spec/fixtures/federalist.rb +15 -0
  218. data/plugins/declarations/spec/spec_helper.rb +5 -0
  219. data/plugins/document_search/Readme.md +14 -0
  220. data/plugins/document_search/features/find.feature +541 -0
  221. data/plugins/document_search/features/incremental_search.feature +351 -0
  222. data/plugins/document_search/features/replace.feature +178 -0
  223. data/plugins/document_search/features/step_definitions/find_steps.rb +16 -0
  224. data/plugins/document_search/features/support/env.rb +14 -0
  225. data/plugins/document_search/lib/document_search.rb +191 -0
  226. data/plugins/document_search/lib/document_search/commands.rb +307 -0
  227. data/plugins/document_search/lib/document_search/find_speedbar.rb +162 -0
  228. data/plugins/document_search/lib/document_search/incremental_search_speedbar.rb +70 -0
  229. data/plugins/document_search/lib/document_search/query_options.rb +21 -0
  230. data/plugins/document_search/plugin.rb +8 -0
  231. data/plugins/edit_view/features/align_assignment.feature +106 -0
  232. data/plugins/edit_view/features/case_change.feature +67 -0
  233. data/plugins/edit_view/features/cursor_navigation.feature +36 -0
  234. data/plugins/edit_view/features/cut_and_paste.feature +45 -0
  235. data/plugins/edit_view/features/grammar.feature +11 -0
  236. data/plugins/edit_view/features/indentation_commands.feature +49 -0
  237. data/plugins/edit_view/features/line_delimiter.feature +47 -0
  238. data/plugins/edit_view/features/multiple_notebooks.feature +52 -0
  239. data/plugins/edit_view/features/multiple_windows.feature +48 -0
  240. data/plugins/edit_view/features/new_tab.feature +11 -0
  241. data/plugins/edit_view/features/soft_tabs.feature +243 -0
  242. data/plugins/edit_view/features/sort_lines.feature +15 -0
  243. data/plugins/edit_view/features/step_definitions/editing_steps.rb +350 -0
  244. data/plugins/edit_view/features/step_definitions/grammar_steps.rb +4 -0
  245. data/plugins/edit_view/features/step_definitions/key_steps.rb +48 -0
  246. data/plugins/edit_view/features/step_definitions/notebook_steps.rb +59 -0
  247. data/plugins/edit_view/features/step_definitions/tab_steps.rb +113 -0
  248. data/plugins/edit_view/features/step_definitions/window_steps.rb +86 -0
  249. data/plugins/edit_view/features/support/env.rb +59 -0
  250. data/plugins/edit_view/features/switch_tabs.feature +106 -0
  251. data/plugins/edit_view/features/tabs.feature +146 -0
  252. data/plugins/edit_view/features/undo_and_redo.feature +73 -0
  253. data/plugins/edit_view/features/word_matching.feature +67 -0
  254. data/plugins/edit_view/lib/edit_view.rb +659 -0
  255. data/plugins/edit_view/lib/edit_view/actions/arrow_keys.rb +170 -0
  256. data/plugins/edit_view/lib/edit_view/actions/cmd_enter.rb +11 -0
  257. data/plugins/edit_view/lib/edit_view/actions/deletion.rb +40 -0
  258. data/plugins/edit_view/lib/edit_view/actions/esc.rb +15 -0
  259. data/plugins/edit_view/lib/edit_view/actions/tab.rb +70 -0
  260. data/plugins/edit_view/lib/edit_view/command.rb +14 -0
  261. data/plugins/edit_view/lib/edit_view/commands/align_assignment_command.rb +55 -0
  262. data/plugins/edit_view/lib/edit_view/commands/text_conversion_commands.rb +85 -0
  263. data/plugins/edit_view/lib/edit_view/document.rb +796 -0
  264. data/plugins/edit_view/lib/edit_view/document/command.rb +25 -0
  265. data/plugins/edit_view/lib/edit_view/document/controller.rb +43 -0
  266. data/plugins/edit_view/lib/edit_view/document/history.rb +41 -0
  267. data/plugins/edit_view/lib/edit_view/document/indentation.rb +40 -0
  268. data/plugins/edit_view/lib/edit_view/document/mirror.rb +42 -0
  269. data/plugins/edit_view/lib/edit_view/edit_tab.rb +59 -0
  270. data/plugins/edit_view/lib/edit_view/grammar.rb +58 -0
  271. data/plugins/edit_view/lib/edit_view/grammars/default.rb +10 -0
  272. data/plugins/edit_view/lib/edit_view/grammars/ruby.rb +10 -0
  273. data/plugins/edit_view/lib/edit_view/grammars/ruby_on_rails.rb +7 -0
  274. data/plugins/edit_view/lib/edit_view/info_speedbar.rb +98 -0
  275. data/plugins/edit_view/lib/edit_view/modified_tabs_checker.rb +35 -0
  276. data/plugins/edit_view/lib/edit_view/select_font_dialog.rb +45 -0
  277. data/plugins/edit_view/lib/edit_view/select_theme_dialog.rb +42 -0
  278. data/plugins/edit_view/lib/edit_view/tab_settings.rb +135 -0
  279. data/plugins/edit_view/plugin.rb +9 -0
  280. data/plugins/edit_view/spec/edit_view/document/indentation_spec.rb +112 -0
  281. data/plugins/edit_view/spec/edit_view/document_spec.rb +130 -0
  282. data/plugins/edit_view/spec/spec_helper.rb +5 -0
  283. data/plugins/edit_view_swt/lib/edit_view_swt.rb +621 -0
  284. data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +224 -0
  285. data/plugins/edit_view_swt/lib/edit_view_swt/edit_tab.rb +50 -0
  286. data/plugins/edit_view_swt/lib/edit_view_swt/word_movement.rb +68 -0
  287. data/plugins/edit_view_swt/plugin.rb +9 -0
  288. data/plugins/edit_view_swt/spec/edit_view_swt/word_movement_spec.rb +29 -0
  289. data/plugins/edit_view_swt/spec/spec_helper.rb +5 -0
  290. data/plugins/encryption/encryption.rb +52 -0
  291. data/plugins/encryption/ezcrypto.rb +652 -0
  292. data/plugins/encryption/jarmor-1.1.jar +0 -0
  293. data/plugins/encryption/plugin.rb +9 -0
  294. data/plugins/execute_current_tab/lib/execute_current_tab.rb +68 -0
  295. data/plugins/execute_current_tab/plugin.rb +8 -0
  296. data/plugins/help/lib/help.rb +64 -0
  297. data/plugins/help/lib/help/help_tab.rb +11 -0
  298. data/plugins/help/lib/help/view_controller.rb +30 -0
  299. data/plugins/help/plugin.rb +9 -0
  300. data/plugins/help/views/default.css +31 -0
  301. data/plugins/help/views/index.html.erb +41 -0
  302. data/plugins/help/views/redcar_small_icon.png +0 -0
  303. data/plugins/html_view/assets/blueprint/ie.css +35 -0
  304. data/plugins/html_view/assets/blueprint/print.css +29 -0
  305. data/plugins/html_view/assets/blueprint/screen.css +257 -0
  306. data/plugins/html_view/assets/blueprint/src/forms.css +65 -0
  307. data/plugins/html_view/assets/blueprint/src/grid.css +281 -0
  308. data/plugins/html_view/assets/blueprint/src/grid.png +0 -0
  309. data/plugins/html_view/assets/blueprint/src/ie.css +76 -0
  310. data/plugins/html_view/assets/blueprint/src/print.css +85 -0
  311. data/plugins/html_view/assets/blueprint/src/reset.css +38 -0
  312. data/plugins/html_view/assets/blueprint/src/typography.css +106 -0
  313. data/plugins/html_view/assets/jquery-1.4.min.js +151 -0
  314. data/plugins/html_view/assets/json2.js +476 -0
  315. data/plugins/html_view/assets/redcar.css +44 -0
  316. data/plugins/html_view/features/browser_bar.feature +47 -0
  317. data/plugins/html_view/features/fixtures/other.html +1 -0
  318. data/plugins/html_view/features/fixtures/sample.html +1 -0
  319. data/plugins/html_view/features/step_definitions/html_view_steps.rb +64 -0
  320. data/plugins/html_view/features/step_definitions/web_view_steps.rb +12 -0
  321. data/plugins/html_view/features/support/env.rb +27 -0
  322. data/plugins/html_view/features/web_preview.feature +21 -0
  323. data/plugins/html_view/lib/html_controller.rb +50 -0
  324. data/plugins/html_view/lib/html_view.rb +170 -0
  325. data/plugins/html_view/lib/html_view/browser_bar.rb +82 -0
  326. data/plugins/html_view/lib/html_view/commands.rb +64 -0
  327. data/plugins/html_view/lib/html_view/default_controller.rb +23 -0
  328. data/plugins/html_view/lib/html_view/html_tab.rb +40 -0
  329. data/plugins/html_view/plugin.rb +13 -0
  330. data/plugins/html_view/views/default.css +117 -0
  331. data/plugins/html_view/views/index.html.erb +5 -0
  332. data/plugins/html_view/views/watermark-48.png +0 -0
  333. data/plugins/java/features/fixtures/lib/classes.jar +0 -0
  334. data/plugins/java/features/fixtures/test.java +0 -0
  335. data/plugins/java/features/support/env.rb +27 -0
  336. data/plugins/java/features/syntax_check_java.feature +86 -0
  337. data/plugins/java/lib/syntax_check/java.rb +86 -0
  338. data/plugins/java/plugin.rb +7 -0
  339. data/plugins/key_bindings/lib/key_bindings.rb +34 -0
  340. data/plugins/key_bindings/plugin.rb +8 -0
  341. data/plugins/key_bindings/spec/spec_helper.rb +5 -0
  342. data/plugins/line_tools/features/clear_line.feature +25 -0
  343. data/plugins/line_tools/features/kill_line.feature +25 -0
  344. data/plugins/line_tools/features/lower_text.feature +54 -0
  345. data/plugins/line_tools/features/raise_text.feature +50 -0
  346. data/plugins/line_tools/features/replace_line.feature +33 -0
  347. data/plugins/line_tools/features/step_definitions/line_tools_steps.rb +23 -0
  348. data/plugins/line_tools/features/support/env.rb +0 -0
  349. data/plugins/line_tools/features/trim_line.feature +73 -0
  350. data/plugins/line_tools/lib/line_tools.rb +217 -0
  351. data/plugins/line_tools/plugin.rb +9 -0
  352. data/plugins/macros/features/block_selection_in_macros.feature +48 -0
  353. data/plugins/macros/features/predictive_macros.feature +79 -0
  354. data/plugins/macros/features/record_and_run_macro.feature +87 -0
  355. data/plugins/macros/features/step_definitions/macro_steps.rb +11 -0
  356. data/plugins/macros/features/step_definitions/prediction_steps.rb +8 -0
  357. data/plugins/macros/features/support/env.rb +0 -0
  358. data/plugins/macros/lib/macros.rb +167 -0
  359. data/plugins/macros/lib/macros/action_sequence.rb +30 -0
  360. data/plugins/macros/lib/macros/commands.rb +108 -0
  361. data/plugins/macros/lib/macros/macro.rb +37 -0
  362. data/plugins/macros/lib/macros/manager_controller.rb +67 -0
  363. data/plugins/macros/lib/macros/predictive/document_controller.rb +69 -0
  364. data/plugins/macros/lib/macros/predictive/sequence_finder.rb +112 -0
  365. data/plugins/macros/plugin.rb +9 -0
  366. data/plugins/macros/spec/macros/predictive/sequence_finder_spec.rb +142 -0
  367. data/plugins/macros/spec/spec_helper.rb +6 -0
  368. data/plugins/macros/views/macro_manager.html.erb +92 -0
  369. data/plugins/my_plugin/lib/my_plugin.rb +47 -0
  370. data/plugins/my_plugin/plugin.rb +8 -0
  371. data/plugins/open_default_app/lib/open_default_app.rb +61 -0
  372. data/plugins/open_default_app/plugin.rb +8 -0
  373. data/plugins/open_default_app/screenshot.png +0 -0
  374. data/plugins/outline_view/features/outline_view.feature +79 -0
  375. data/plugins/outline_view/features/step_definitions/outline_steps.rb +45 -0
  376. data/plugins/outline_view/lib/outline_view.rb +66 -0
  377. data/plugins/outline_view/lib/outline_view/commands.rb +13 -0
  378. data/plugins/outline_view/plugin.rb +10 -0
  379. data/plugins/outline_view/spec/fixtures/some_project/javascript.js +10 -0
  380. data/plugins/outline_view/spec/fixtures/some_project/nothing_to_see.rb +0 -0
  381. data/plugins/outline_view/spec/fixtures/some_project/one_lonely_class.rb +2 -0
  382. data/plugins/outline_view/spec/fixtures/some_project/similar_names.rb +18 -0
  383. data/plugins/outline_view/spec/fixtures/some_project/something_fancy.rb +736 -0
  384. data/plugins/outline_view/spec/fixtures/some_project/trailing_space.rb +5 -0
  385. data/plugins/outline_view_swt/lib/outline_view_swt.rb +79 -0
  386. data/plugins/outline_view_swt/plugin.rb +7 -0
  387. data/plugins/pair_highlighter/lib/pair_highlighter.rb +34 -0
  388. data/plugins/pair_highlighter/lib/pair_highlighter/document_controller.rb +185 -0
  389. data/plugins/pair_highlighter/plugin.rb +9 -0
  390. data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +122 -0
  391. data/plugins/plugin_manager_ui/plugin.rb +13 -0
  392. data/plugins/plugin_manager_ui/views/index.html.erb +62 -0
  393. data/plugins/project/features/close_directory_tree.feature +28 -0
  394. data/plugins/project/features/find_file.feature +119 -0
  395. data/plugins/project/features/highlight_focussed_tab.feature +53 -0
  396. data/plugins/project/features/move_and_rename_files.feature +25 -0
  397. data/plugins/project/features/open_and_save_files.feature +85 -0
  398. data/plugins/project/features/open_directory_tree.feature +93 -0
  399. data/plugins/project/features/refresh_directory_tree.feature +44 -0
  400. data/plugins/project/features/step_definitions/directory_steps.rb +35 -0
  401. data/plugins/project/features/step_definitions/drb_steps.rb +40 -0
  402. data/plugins/project/features/step_definitions/file_steps.rb +66 -0
  403. data/plugins/project/features/step_definitions/find_file_steps.rb +7 -0
  404. data/plugins/project/features/step_definitions/project_tree_steps.rb +7 -0
  405. data/plugins/project/features/sub_project.feature +15 -0
  406. data/plugins/project/features/support/env.rb +35 -0
  407. data/plugins/project/features/watch_for_modified_files.feature +109 -0
  408. data/plugins/project/lib/project.rb +266 -0
  409. data/plugins/project/lib/project/adapters/local.rb +82 -0
  410. data/plugins/project/lib/project/adapters/remote.rb +96 -0
  411. data/plugins/project/lib/project/adapters/remote_protocols/ftp.rb +93 -0
  412. data/plugins/project/lib/project/adapters/remote_protocols/protocol.rb +94 -0
  413. data/plugins/project/lib/project/adapters/remote_protocols/sftp.rb +181 -0
  414. data/plugins/project/lib/project/commands.rb +449 -0
  415. data/plugins/project/lib/project/dir_controller.rb +275 -0
  416. data/plugins/project/lib/project/dir_mirror.rb +176 -0
  417. data/plugins/project/lib/project/drb_service.rb +86 -0
  418. data/plugins/project/lib/project/file_list.rb +164 -0
  419. data/plugins/project/lib/project/file_mirror.rb +85 -0
  420. data/plugins/project/lib/project/find_file_dialog.rb +118 -0
  421. data/plugins/project/lib/project/find_recent_dialog.rb +30 -0
  422. data/plugins/project/lib/project/manager.rb +545 -0
  423. data/plugins/project/lib/project/project_tree_controller.rb +24 -0
  424. data/plugins/project/lib/project/recent.rb +64 -0
  425. data/plugins/project/lib/project/sub_project.rb +17 -0
  426. data/plugins/project/lib/project/support/recycle.js +2 -0
  427. data/plugins/project/lib/project/support/trash.rb +73 -0
  428. data/plugins/project/plugin.rb +11 -0
  429. data/plugins/project/spec/fixture_helper.rb +30 -0
  430. data/plugins/project/spec/project/adapters/remote_protocols/ftp_spec.rb +75 -0
  431. data/plugins/project/spec/project/adapters/remote_protocols/sftp_spec.rb +121 -0
  432. data/plugins/project/spec/project/adapters/remote_spec.rb +136 -0
  433. data/plugins/project/spec/project/dir_mirror_spec.rb +65 -0
  434. data/plugins/project/spec/project/file_list_spec.rb +151 -0
  435. data/plugins/project/spec/project/file_mirror_spec.rb +97 -0
  436. data/plugins/project/spec/spec_helper.rb +26 -0
  437. data/plugins/project/views/bulk_rename.html.erb +162 -0
  438. data/plugins/project_search/features/support/env.rb +6 -0
  439. data/plugins/project_search/features/word_search.feature +34 -0
  440. data/plugins/project_search/lib/project_search.rb +82 -0
  441. data/plugins/project_search/lib/project_search/binary_data_detector.rb +46 -0
  442. data/plugins/project_search/lib/project_search/commands.rb +50 -0
  443. data/plugins/project_search/lib/project_search/hit.rb +21 -0
  444. data/plugins/project_search/lib/project_search/images/spinner.gif +0 -0
  445. data/plugins/project_search/lib/project_search/lucene_index.rb +81 -0
  446. data/plugins/project_search/lib/project_search/lucene_refresh.rb +22 -0
  447. data/plugins/project_search/lib/project_search/project.rb +14 -0
  448. data/plugins/project_search/lib/project_search/query.rb +29 -0
  449. data/plugins/project_search/lib/project_search/stylesheets/style.css +279 -0
  450. data/plugins/project_search/lib/project_search/views/_file.html.erb +58 -0
  451. data/plugins/project_search/lib/project_search/views/index.html.erb +156 -0
  452. data/plugins/project_search/lib/project_search/word_search.rb +143 -0
  453. data/plugins/project_search/lib/project_search/word_search_controller.rb +219 -0
  454. data/plugins/project_search/plugin.rb +8 -0
  455. data/plugins/project_search/spec/fixtures/project/binary_file.bin +0 -0
  456. data/plugins/project_search/spec/fixtures/project/foo.txt +43 -0
  457. data/plugins/project_search/spec/fixtures/project/qux.rb +3 -0
  458. data/plugins/project_search/spec/project_search/binary_data_detector_spec.rb +24 -0
  459. data/plugins/project_search/spec/project_search/word_search_spec.rb +157 -0
  460. data/plugins/project_search/spec/spec_helper.rb +27 -0
  461. data/plugins/redcar/features/alter_font_size.feature +26 -0
  462. data/plugins/redcar/features/goto_line_command.feature +20 -0
  463. data/plugins/redcar/features/step_definitions/env.rb +5 -0
  464. data/plugins/redcar/features/step_definitions/font_steps.rb +34 -0
  465. data/plugins/redcar/features/text_editing.feature +34 -0
  466. data/plugins/redcar/features/text_navigation.feature +30 -0
  467. data/plugins/redcar/plugin.rb +17 -0
  468. data/plugins/redcar/redcar.rb +1097 -0
  469. data/plugins/redcar_debug/lib/redcar_debug.rb +91 -0
  470. data/plugins/redcar_debug/plugin.rb +8 -0
  471. data/plugins/redcar_debug/views/history.html.erb +34 -0
  472. data/plugins/redcar_debug/views/index.html.erb +36 -0
  473. data/plugins/repl/features/command_editing.feature +55 -0
  474. data/plugins/repl/features/command_history.feature +75 -0
  475. data/plugins/repl/features/step_definitions/repl_steps.rb +19 -0
  476. data/plugins/repl/features/support/env.rb +24 -0
  477. data/plugins/repl/features/support/fake_repl.rb +16 -0
  478. data/plugins/repl/lib/repl.rb +40 -0
  479. data/plugins/repl/lib/repl/repl_command.rb +20 -0
  480. data/plugins/repl/lib/repl/repl_mirror.rb +255 -0
  481. data/plugins/repl/lib/repl/repl_tab.rb +154 -0
  482. data/plugins/repl/plugin.rb +8 -0
  483. data/plugins/repl/spec/repl/repl_mirror_spec.rb +72 -0
  484. data/plugins/repl/spec/spec_helper.rb +5 -0
  485. data/plugins/repl_swt/lib/repl_swt.rb +7 -0
  486. data/plugins/repl_swt/lib/repl_swt/key_listener.rb +43 -0
  487. data/plugins/repl_swt/plugin.rb +8 -0
  488. data/plugins/ruby/features/fixtures/test.rb +0 -0
  489. data/plugins/ruby/features/support/env.rb +4 -0
  490. data/plugins/ruby/features/syntax_check_ruby.feature +26 -0
  491. data/plugins/ruby/lib/ruby.rb +35 -0
  492. data/plugins/ruby/lib/ruby/repl_mirror.rb +46 -0
  493. data/plugins/ruby/lib/ruby/syntax_checker.rb +30 -0
  494. data/plugins/ruby/plugin.rb +8 -0
  495. data/plugins/ruby/spec/ruby/repl_mirror_spec.rb +202 -0
  496. data/plugins/ruby/spec/spec_helper.rb +5 -0
  497. data/plugins/runnables/features/command_tree.feature +63 -0
  498. data/plugins/runnables/features/file_runner_input.feature +21 -0
  499. data/plugins/runnables/features/parameter_input.feature +43 -0
  500. data/plugins/runnables/features/run_alternate_command.feature +15 -0
  501. data/plugins/runnables/features/run_command_tab.feature +47 -0
  502. data/plugins/runnables/features/step_definitions/runnable_steps.rb +28 -0
  503. data/plugins/runnables/features/support/env.rb +124 -0
  504. data/plugins/runnables/lib/runnables.rb +180 -0
  505. data/plugins/runnables/lib/runnables/command_output_controller.rb +183 -0
  506. data/plugins/runnables/lib/runnables/commands.rb +82 -0
  507. data/plugins/runnables/lib/runnables/output_processor.rb +74 -0
  508. data/plugins/runnables/lib/runnables/running_process_checker.rb +34 -0
  509. data/plugins/runnables/lib/runnables/tree_mirror/nodes/runnable.rb +62 -0
  510. data/plugins/runnables/lib/runnables/tree_mirror/nodes/runnable_group.rb +45 -0
  511. data/plugins/runnables/lib/runnables/tree_mirror/nodes/runnable_type_group.rb +30 -0
  512. data/plugins/runnables/lib/runnables/tree_mirror/tree_controller.rb +36 -0
  513. data/plugins/runnables/lib/runnables/tree_mirror/tree_mirror.rb +66 -0
  514. data/plugins/runnables/plugin.rb +9 -0
  515. data/plugins/runnables/spec/runnables/output_processor_spec.rb +57 -0
  516. data/plugins/runnables/spec/spec_helper.rb +5 -0
  517. data/plugins/runnables/views/basic_ansi.css +34 -0
  518. data/plugins/runnables/views/color_tester.html +50 -0
  519. data/plugins/runnables/views/command_output.html.erb +32 -0
  520. data/plugins/runnables/views/default.css +79 -0
  521. data/plugins/runnables/views/indicator.gif +0 -0
  522. data/plugins/runnables/views/redcar_small_icon.png +0 -0
  523. data/plugins/runnables/views/reset.css +53 -0
  524. data/plugins/runnables/views/running_test.html +41 -0
  525. data/plugins/runnables/views/wedgeDown.png +0 -0
  526. data/plugins/runnables/views/wedgeRight.png +0 -0
  527. data/plugins/scm/lib/scm.rb +296 -0
  528. data/plugins/scm/lib/scm/commands.rb +48 -0
  529. data/plugins/scm/lib/scm/commit_mirror.rb +72 -0
  530. data/plugins/scm/lib/scm/diff_mirror.rb +31 -0
  531. data/plugins/scm/lib/scm/errors.rb +8 -0
  532. data/plugins/scm/lib/scm/model.rb +275 -0
  533. data/plugins/scm/lib/scm/scm_changes_controller.rb +107 -0
  534. data/plugins/scm/lib/scm/scm_changes_mirror.rb +51 -0
  535. data/plugins/scm/lib/scm/scm_changes_mirror/change.rb +63 -0
  536. data/plugins/scm/lib/scm/scm_changes_mirror/changes_node.rb +47 -0
  537. data/plugins/scm/lib/scm/scm_changes_mirror/drag_controller.rb +78 -0
  538. data/plugins/scm/lib/scm/scm_commits_controller.rb +49 -0
  539. data/plugins/scm/lib/scm/scm_commits_mirror.rb +36 -0
  540. data/plugins/scm/lib/scm/scm_commits_mirror/commit.rb +26 -0
  541. data/plugins/scm/lib/scm/scm_commits_mirror/commits_node.rb +38 -0
  542. data/plugins/scm/plugin.rb +8 -0
  543. data/plugins/scm/spec/spec_helper.rb +5 -0
  544. data/plugins/scm_git/lib/scm_git.rb +543 -0
  545. data/plugins/scm_git/lib/scm_git/change.rb +137 -0
  546. data/plugins/scm_git/lib/scm_git/commit.rb +18 -0
  547. data/plugins/scm_git/lib/scm_git/config_file.rb +31 -0
  548. data/plugins/scm_git/plugin.rb +7 -0
  549. data/plugins/scm_hg/lib/scm_hg.rb +30 -0
  550. data/plugins/scm_hg/plugin.rb +7 -0
  551. data/plugins/scm_svn/LICENSE +48 -0
  552. data/plugins/scm_svn/features/add_and_commit.feature +18 -0
  553. data/plugins/scm_svn/features/checkout.feature +5 -0
  554. data/plugins/scm_svn/features/edit_and_index.feature +12 -0
  555. data/plugins/scm_svn/features/ignore_files.feature +14 -0
  556. data/plugins/scm_svn/features/merge.feature +34 -0
  557. data/plugins/scm_svn/features/resolve_conflict.feature +23 -0
  558. data/plugins/scm_svn/features/revert_and_delete.feature +21 -0
  559. data/plugins/scm_svn/features/step_definitions/branch_and_merge_steps.rb +27 -0
  560. data/plugins/scm_svn/features/step_definitions/checkout_steps.rb +25 -0
  561. data/plugins/scm_svn/features/step_definitions/edit_and_index_steps.rb +50 -0
  562. data/plugins/scm_svn/features/step_definitions/scm_svn_steps.rb +57 -0
  563. data/plugins/scm_svn/features/support/env.rb +71 -0
  564. data/plugins/scm_svn/features/switch_branches.feature +53 -0
  565. data/plugins/scm_svn/features/update.feature +16 -0
  566. data/plugins/scm_svn/lib/scm_svn.rb +445 -0
  567. data/plugins/scm_svn/lib/scm_svn/change.rb +116 -0
  568. data/plugins/scm_svn/plugin.rb +7 -0
  569. data/plugins/snippets/features/snippet_indenting.feature +87 -0
  570. data/plugins/snippets/features/snippets.feature +398 -0
  571. data/plugins/snippets/features/step_definitions/snippet_steps.rb +16 -0
  572. data/plugins/snippets/features/support/env.rb +1 -0
  573. data/plugins/snippets/lib/snippets.rb +111 -0
  574. data/plugins/snippets/lib/snippets/document_controller.rb +591 -0
  575. data/plugins/snippets/lib/snippets/explorer.rb +48 -0
  576. data/plugins/snippets/lib/snippets/tab_handler.rb +117 -0
  577. data/plugins/snippets/plugin.rb +9 -0
  578. data/plugins/splash_screen/plugin.rb +8 -0
  579. data/plugins/splash_screen/splash_screen.rb +62 -0
  580. data/plugins/strip_trailing_spaces/features/fixtures/test.txt +3 -0
  581. data/plugins/strip_trailing_spaces/features/strip_trailing_spaces.feature +34 -0
  582. data/plugins/strip_trailing_spaces/lib/strip_trailing_spaces.rb +60 -0
  583. data/plugins/strip_trailing_spaces/plugin.rb +8 -0
  584. data/plugins/syntax_check/README +6 -0
  585. data/plugins/syntax_check/features/step_definitions/syntax_check_steps.rb +11 -0
  586. data/plugins/syntax_check/features/support/env.rb +3 -0
  587. data/plugins/syntax_check/lib/syntax_check.rb +100 -0
  588. data/plugins/syntax_check/lib/syntax_check/annotation.rb +61 -0
  589. data/plugins/syntax_check/lib/syntax_check/checker.rb +47 -0
  590. data/plugins/syntax_check/lib/syntax_check/error.rb +24 -0
  591. data/plugins/syntax_check/plugin.rb +7 -0
  592. data/plugins/task_manager/lib/task_manager.rb +30 -0
  593. data/plugins/task_manager/plugin.rb +11 -0
  594. data/plugins/task_manager/views/index.html.erb +70 -0
  595. data/plugins/test_runner/lib/test_runner.rb +40 -0
  596. data/plugins/test_runner/lib/test_runner/jasmine_test_runner.rb +15 -0
  597. data/plugins/test_runner/lib/test_runner/rspec_runner.rb +20 -0
  598. data/plugins/test_runner/lib/test_runner/run_test_command.rb +63 -0
  599. data/plugins/test_runner/lib/test_runner/runnable_test_runner.rb +42 -0
  600. data/plugins/test_runner/plugin.rb +8 -0
  601. data/plugins/test_runner/spec/run_test_command_spec.rb +51 -0
  602. data/plugins/test_runner/spec/spec_helper.rb +5 -0
  603. data/plugins/textmate/features/bundle_tree.feature +23 -0
  604. data/plugins/textmate/features/step_definitions/tree_steps.rb +57 -0
  605. data/plugins/textmate/features/support/env.rb +19 -0
  606. data/plugins/textmate/features/support/test_bundle.tmbundle/Snippets/If.tmSnippet +18 -0
  607. data/plugins/textmate/features/support/test_bundle.tmbundle/Snippets/If__Else.tmSnippet +20 -0
  608. data/plugins/textmate/features/support/test_bundle.tmbundle/Snippets/Include.tmSnippet +16 -0
  609. data/plugins/textmate/features/support/test_bundle.tmbundle/Snippets/Loop.tmSnippet +18 -0
  610. data/plugins/textmate/features/support/test_bundle.tmbundle/Snippets/Unless.tmSnippet +18 -0
  611. data/plugins/textmate/features/support/test_bundle.tmbundle/Snippets/Var.tmSnippet +16 -0
  612. data/plugins/textmate/features/support/test_bundle.tmbundle/Snippets/next_If__Else.tmSnippet +20 -0
  613. data/plugins/textmate/features/support/test_bundle.tmbundle/info.plist +26 -0
  614. data/plugins/textmate/lib/textmate.rb +202 -0
  615. data/plugins/textmate/lib/textmate/bundle.rb +100 -0
  616. data/plugins/textmate/lib/textmate/commands.rb +79 -0
  617. data/plugins/textmate/lib/textmate/environment.rb +76 -0
  618. data/plugins/textmate/lib/textmate/plist.rb +80 -0
  619. data/plugins/textmate/lib/textmate/preference.rb +125 -0
  620. data/plugins/textmate/lib/textmate/snippet.rb +47 -0
  621. data/plugins/textmate/lib/textmate/tree_mirror.rb +206 -0
  622. data/plugins/textmate/plugin.rb +8 -0
  623. data/plugins/textmate/views/installed_bundles.html.erb +24 -0
  624. data/plugins/todo_list/README.md +22 -0
  625. data/plugins/todo_list/features/support/env.rb +8 -0
  626. data/plugins/todo_list/features/todo_list.feature +26 -0
  627. data/plugins/todo_list/lib/todo_list.rb +49 -0
  628. data/plugins/todo_list/lib/todo_list/file_parser.rb +58 -0
  629. data/plugins/todo_list/lib/todo_list/todo_controller.rb +99 -0
  630. data/plugins/todo_list/plugin.rb +11 -0
  631. data/plugins/todo_list/spec/fixtures/project/FIXME.file +3 -0
  632. data/plugins/todo_list/spec/fixtures/project/NOTE.ignored.file +1 -0
  633. data/plugins/todo_list/spec/fixtures/project/OPTIMIZE_colon.file +1 -0
  634. data/plugins/todo_list/spec/fixtures/project/XXX.ignored +1 -0
  635. data/plugins/todo_list/spec/fixtures/project/ignored_directory/TODO.file +2 -0
  636. data/plugins/todo_list/spec/fixtures/settings.rb +11 -0
  637. data/plugins/todo_list/spec/spec_helper.rb +6 -0
  638. data/plugins/todo_list/spec/todo_list/file_parser_spec.rb +35 -0
  639. data/plugins/todo_list/views/default.css +15 -0
  640. data/plugins/todo_list/views/index.html.erb +19 -0
  641. data/plugins/todo_list/views/redcar_small_icon.png +0 -0
  642. data/plugins/tree_view_swt/lib/tree_view_swt.rb +496 -0
  643. data/plugins/tree_view_swt/plugin.rb +9 -0
  644. data/plugins/web_bookmarks/Screenshot.png +0 -0
  645. data/plugins/web_bookmarks/features/bookmark.feature +37 -0
  646. data/plugins/web_bookmarks/features/fixtures/other.html +1 -0
  647. data/plugins/web_bookmarks/features/fixtures/sample.html +1 -0
  648. data/plugins/web_bookmarks/features/step_definitions/web_steps.rb +4 -0
  649. data/plugins/web_bookmarks/features/support/env.rb +26 -0
  650. data/plugins/web_bookmarks/lib/web_bookmarks.rb +49 -0
  651. data/plugins/web_bookmarks/lib/web_bookmarks/bookmark.rb +52 -0
  652. data/plugins/web_bookmarks/lib/web_bookmarks/commands.rb +65 -0
  653. data/plugins/web_bookmarks/lib/web_bookmarks/tree.rb +74 -0
  654. data/plugins/web_bookmarks/plugin.rb +10 -0
  655. metadata +937 -0
@@ -0,0 +1,44 @@
1
+ @project-fixtures
2
+ Feature: Refresh directory tree
3
+
4
+ Scenario: Does not refresh instantly
5
+ Given I will choose "plugins/project/spec/fixtures/myproject" from the "open_directory" dialog
6
+ When I open a directory
7
+ Then I should see "lib,spec,README" in the tree
8
+ And I should not see "testyfile.txt" in the tree
9
+ When I touch the file "plugins/project/spec/fixtures/myproject/testyfile.txt"
10
+ Then I should not see "testyfile.txt" in the tree
11
+
12
+ Scenario: I can manually refresh the tree
13
+ Given I will choose "plugins/project/spec/fixtures/myproject" from the "open_directory" dialog
14
+ When I open a directory
15
+ Then I should see "lib,spec,README" in the tree
16
+ And I should not see "testyfile.txt" in the tree
17
+ When I touch the file "plugins/project/spec/fixtures/myproject/testyfile.txt"
18
+ And I refresh the directory tree
19
+ Then I should see "lib,spec,README,testyfile.txt" in the tree
20
+
21
+ Scenario: Changing windows refreshed the tree
22
+ Given I will choose "plugins/project/spec/fixtures/myproject" from the "open_directory" dialog
23
+ When I open a directory
24
+ Then I should see "lib,spec,README" in the tree
25
+ And I should not see "testyfile.txt" in the tree
26
+ When I touch the file "plugins/project/spec/fixtures/myproject/testyfile.txt"
27
+ When I open a new window
28
+ And I focus the window "myproject" with a command
29
+ Then I should see "lib,spec,README,testyfile.txt" in the tree
30
+
31
+ Scenario: Refreshing the tree leaves rows expanded as they were before
32
+ Given I will choose "plugins/project/spec/fixtures/myproject" from the "open_directory" dialog
33
+ When I open a directory
34
+ And I expand the tree row "lib"
35
+ Then I should see "lib,foo_lib.rb,vendor" in the tree
36
+ And I refresh the directory tree
37
+ Then I should see "lib,foo_lib.rb,vendor" in the tree
38
+
39
+ Scenario: Tree is moved
40
+ Given I will choose "plugins/project/spec/fixtures/myproject" from the "open_directory" dialog
41
+ When I open a directory
42
+ And I move the myproject fixture away
43
+ And I refresh the directory tree
44
+ Then I should not see "lib" in the tree
@@ -0,0 +1,35 @@
1
+
2
+ When /I open a directory/ do
3
+ Redcar::Project::DirectoryOpenCommand.new.run
4
+ end
5
+
6
+ When /I close the directory/ do
7
+ Redcar::Project::Manager.focussed_project.close
8
+ end
9
+
10
+ When /^I refresh the directory tree$/ do
11
+ Redcar::Project::Manager.focussed_project.refresh
12
+ end
13
+
14
+ When /^I move the myproject fixture away$/ do
15
+ FileUtils.mv("plugins/project/spec/fixtures/myproject",
16
+ "plugins/project/spec/fixtures/myproject.bak")
17
+ @put_myproject_fixture_back = true
18
+ end
19
+
20
+ When /^I open a "([^"]*)" as a subproject of the current directory$/ do |arg1|
21
+ path = Redcar::Project::Manager.focussed_project.path
22
+ Redcar::Project::Manager.open_subproject(path,path + arg1)
23
+ end
24
+
25
+ Then /^"([^"]*)" in the project configuration files$/ do |arg1|
26
+ project = Redcar::Project::Manager.focussed_project
27
+ project.config_files(arg1).each do |file|
28
+ File.exist?(file).should == true
29
+ end
30
+ end
31
+
32
+ When /^"([^"]*)" goes missing$/ do |arg1|
33
+ FileUtils.rm(arg1)
34
+ File.exists?(arg1).should == false
35
+ end
@@ -0,0 +1,40 @@
1
+ require 'timeout'
2
+ require 'drb'
3
+
4
+ def drb
5
+ DRbObject.new(nil, "druby://127.0.0.1:#{Redcar.drb_port}")
6
+ end
7
+
8
+ def tempfile(text)
9
+ f = Tempfile.open("drb_testing")
10
+ f << text
11
+ f.close
12
+ f.path
13
+ end
14
+
15
+ Given /^I open "([^"]*)" using the redcar command$/ do |path|
16
+ drb_answer = drb.open_item_drb(File.expand_path(path))
17
+ drb_answer.should == "ok"
18
+ end
19
+
20
+ Given /^I open "([^"]*)" using the redcar command with "-w"$/ do |path|
21
+ DrbShelloutHelper.drb_system_thread = Thread.new(path) do
22
+ drb_answer = drb.open_item_drb(File.expand_path(path), false, true)
23
+ end
24
+ end
25
+
26
+ Given /^I pipe "([^"]*)" into redcar with "-w"$/ do |text|
27
+ DrbShelloutHelper.drb_system_thread = Thread.new(text) do
28
+ drb_answer = drb.open_item_drb(tempfile(text), true, true)
29
+ end
30
+ end
31
+
32
+ Given /^I pipe "([^"]*)" into redcar$/ do |text|
33
+ drb_answer = drb.open_item_drb(tempfile(text), true)
34
+ drb_answer.should == "ok"
35
+ end
36
+
37
+ Then /^the redcar command should (not )?have returned$/ do |returned|
38
+ (!!DrbShelloutHelper.drb_system_thread.status).should be !!returned # status is false for returned thread
39
+ end
40
+
@@ -0,0 +1,66 @@
1
+
2
+ Given /^I have open a file$/ do
3
+ Redcar::Project::OpenFileCommand.new.run
4
+ end
5
+
6
+ Given /^I will open a large file from the "([^"]*)" dialog$/ do |arg1|
7
+ Given %Q|I will choose "plugins/project/spec/fixtures/winter.txt" from the "open_file" dialog|
8
+ Redcar::Project::Manager.file_size_limit = 1
9
+ end
10
+
11
+ When /^I open a file$/ do
12
+ Redcar::Project::OpenFileCommand.new.run
13
+ end
14
+
15
+ Given /^I have opened "([^\"]*)"$/ do |arg1|
16
+ Redcar::Project::OpenFileCommand.new(File.expand_path(arg1)).run
17
+ end
18
+
19
+ Given /^I have opened "([^\"]*)" from the project$/ do |arg1|
20
+ project = Redcar::Project::Manager.focussed_project
21
+ Redcar::Project::OpenFileCommand.new(project.path + "/" + arg1).run
22
+ end
23
+
24
+ When /^I save the tab$/ do
25
+ Redcar::Project::SaveFileCommand.new.run
26
+ end
27
+
28
+ When /^I touch the file "([^\"]*)"$/ do |fn|
29
+ FileUtils.touch(fn)
30
+ add_test_file(fn)
31
+ end
32
+
33
+ When /^I put "([^\"]*)" into the file "([^\"]*)"$/ do |contents, path|
34
+ File.open(path, "w") {|fout| fout.print contents }
35
+ end
36
+
37
+ When /^I save the tab as$/ do
38
+ Redcar::Project::SaveFileAsCommand.new.run
39
+ end
40
+
41
+ Then /^the file "([^"]*)" should be deletable$/ do |path|
42
+ File.delete path
43
+ raise if File.exist? path
44
+ end
45
+
46
+ Then /^the file "([^\"]*)" should contain "([^\"]*)"$/ do |arg1, arg2|
47
+ File.read(arg1).should == arg2
48
+ end
49
+
50
+ When /^I put a lot of lines into the file "([^\"]*)"$/ do |file|
51
+ File.open(file, "w") do |f|
52
+ 200.times { |i| f.puts(i * 20) }
53
+ end
54
+ end
55
+
56
+ def add_test_file(fn)
57
+ (@test_files ||= []) << File.expand_path(fn)
58
+ end
59
+
60
+ def remove_test_files
61
+ (@test_files||[]).each { |fn| FileUtils.rm_f(fn) }
62
+ end
63
+
64
+ After do
65
+ remove_test_files
66
+ end
@@ -0,0 +1,7 @@
1
+ When /^I prefer not to see files like "([^"]*)" in the find file dialog$/ do |pattern|
2
+ Redcar::Project::FileList.add_hide_file_pattern(/#{pattern}/)
3
+ end
4
+
5
+ When /^I open the find file dialog$/ do
6
+ Redcar::Project::FindFileCommand.new.run
7
+ end
@@ -0,0 +1,7 @@
1
+ Then /^"([^\"]*)" should be selected in the project tree$/ do |filename|
2
+ Redcar::Project::Manager.focussed_project.tree.selection.first.text == filename
3
+ end
4
+
5
+ When /^I prefer to not highlight the focussed tab$/ do
6
+ Redcar::Project::Manager.reveal_files = false
7
+ end
@@ -0,0 +1,15 @@
1
+ @project-fixtures
2
+ Feature: Opening subprojects with shared configuration files
3
+
4
+ Background:
5
+ Given I will choose "plugins/project/spec/fixtures/myproject" from the "open_directory" dialog
6
+ When I open a directory
7
+
8
+ Scenario: Opening a subproject
9
+ When I open a "/test1" as a subproject of the current directory
10
+ Then I should see "a.txt,b.txt,c.txt" in the tree
11
+ And "test_config" in the project configuration files
12
+
13
+ Scenario: Title of window reflects open subproject
14
+ When I open a "/test1" as a subproject of the current directory
15
+ Then the window should have title "Subproject: test1 in myproject"
@@ -0,0 +1,35 @@
1
+
2
+ module DrbShelloutHelper
3
+ def self.drb_system_thread
4
+ $drb_system_thread
5
+ end
6
+
7
+ def self.drb_system_thread= value
8
+ $drb_system_thread = value
9
+ end
10
+
11
+ def self.kill_thread
12
+ if !($drb_system_thread.nil?) and $drb_system_thread.status
13
+ $drb_system_thread.kill
14
+ end
15
+ end
16
+ end
17
+
18
+ require File.dirname(__FILE__) + "/../../spec/fixture_helper"
19
+
20
+ def filter_storage
21
+ Redcar::Project::FindFileDialog.storage
22
+ end
23
+
24
+ Before("@project-fixtures") do
25
+ ProjectFixtureHelper.create_project_fixtures
26
+ ProjectFixtureHelper.make_subproject_fixtures
27
+ @original_file_size_limit = Redcar::Project::Manager.file_size_limit
28
+ end
29
+
30
+ After("@project-fixtures") do
31
+ Redcar::Project::Manager.reveal_files = true
32
+ ProjectFixtureHelper.clear_project_fixtures
33
+ DrbShelloutHelper.kill_thread
34
+ Redcar::Project::Manager.file_size_limit = @original_file_size_limit
35
+ end
@@ -0,0 +1,109 @@
1
+ @project-fixtures
2
+ Feature: Watch for modified files
3
+ If an open file has changed on disc since the last time the user looked at it,
4
+ then reload the contents. Alert the user if they have made modifications.
5
+
6
+ Background:
7
+ Given I will choose "plugins/project/spec/fixtures/winter.txt" from the "open_file" dialog
8
+ When I open a file
9
+
10
+ Scenario: Without modifications
11
+ Then there should be one edit tab
12
+ And I should see "Wintersmith" in the edit tab
13
+ When I open a new edit tab
14
+ And I wait "2" seconds
15
+ And I put "Summer" into the file "plugins/project/spec/fixtures/winter.txt"
16
+ And I close the focussed tab
17
+ And the edit tab updates its contents
18
+ Then I should see "Summer" in the edit tab
19
+
20
+ Scenario: With modifications, reloading from disc
21
+ Then there should be one edit tab
22
+ And I should see "Wintersmith" in the edit tab
23
+ And I replace the contents with "FOFOOF"
24
+ When I open a new edit tab
25
+ And I wait "2" seconds
26
+ And I put "Summer" into the file "plugins/project/spec/fixtures/winter.txt"
27
+ Given I will choose "yes" from the "message_box" dialog
28
+ And I close the focussed tab
29
+ And the edit tab updates its contents
30
+ Then I should see "Summer" in the edit tab
31
+
32
+ Scenario: With modifications, keeping modified version
33
+ Then there should be one edit tab
34
+ And I should see "Wintersmith" in the edit tab
35
+ And I replace the contents with "Newton"
36
+ When I open a new edit tab
37
+ And I wait "2" seconds
38
+ And I put "Summer" into the file "plugins/project/spec/fixtures/winter.txt"
39
+ Given I will choose "no" from the "message_box" dialog
40
+ And I close the focussed tab
41
+ And the edit tab updates its contents
42
+ Then I should see "Newton" in the edit tab
43
+
44
+ Scenario: With modifications, keeping modified version, twice
45
+ Then there should be one edit tab
46
+ And I should see "Wintersmith" in the edit tab
47
+ And I replace the contents with "Newton"
48
+ When I open a new edit tab
49
+ And I wait "2" seconds
50
+ And I put "Summer" into the file "plugins/project/spec/fixtures/winter.txt"
51
+ Given I will choose "no" from the "message_box" dialog
52
+ And I close the focussed tab
53
+ And the edit tab updates its contents
54
+ Then I should see "Newton" in the edit tab
55
+ When I open a new edit tab
56
+ Then I should not see a "message_box" dialog for the rest of the feature
57
+ And I close the focussed tab
58
+
59
+ Scenario: Keep in the same position in the file when reloading
60
+ Given I close the focussed tab
61
+ And I put a lot of lines into the file "plugins/project/spec/fixtures/winter.txt"
62
+ When I open a file
63
+ And I move to line 100
64
+ Then there should be one edit tab
65
+ When I open a new edit tab
66
+ And I wait "2" seconds
67
+ And I put a lot of lines into the file "plugins/project/spec/fixtures/winter.txt"
68
+ And I close the focussed tab
69
+ Then the cursor should be on line 100
70
+
71
+ Scenario: Move to the top if the line you were on is no longer there
72
+ Given I close the focussed tab
73
+ And I put a lot of lines into the file "plugins/project/spec/fixtures/winter.txt"
74
+ When I open a file
75
+ And I move to line 100
76
+ Then there should be one edit tab
77
+ When I open a new edit tab
78
+ And I wait "2" seconds
79
+ And I put "Summer" into the file "plugins/project/spec/fixtures/winter.txt"
80
+ And I close the focussed tab
81
+ And the edit tab updates its contents
82
+ Then the cursor should be on line 0
83
+
84
+ Scenario: The file being mirrored by the current unmodified tab is externally deleted
85
+ Then there should be one edit tab
86
+ And I should see "Wintersmith" in the edit tab
87
+ When I open a new window with title "new"
88
+ When I wait "2" seconds
89
+ And "plugins/project/spec/fixtures/winter.txt" goes missing
90
+ And I close the window "new" through the gui
91
+ And I focus the window "Redcar" through the gui
92
+ Then there should be one edit tab
93
+ And the edit tab updates its contents
94
+ And my active tab should have an "exclamation" icon
95
+
96
+ Scenario: The file being mirrored by the current modified tab is externally deleted
97
+ Then there should be one edit tab
98
+ And I should see "Wintersmith" in the edit tab
99
+ When I replace the contents with "Jenny Green Eyes"
100
+ And I open a new window with title "new"
101
+ And I wait "2" seconds
102
+ And "plugins/project/spec/fixtures/winter.txt" goes missing
103
+ And I close the window "new" through the gui
104
+ And I focus the window "Redcar" through the gui
105
+ Then my active tab should have an "exclamation" icon
106
+ When I save the tab
107
+ Then my active tab should have an "file" icon
108
+
109
+
@@ -0,0 +1,266 @@
1
+
2
+ unless defined?(DRb)
3
+ require 'drb/drb'
4
+ end
5
+
6
+ require "project/adapters/remote_protocols/protocol"
7
+ require "project/adapters/remote_protocols/sftp"
8
+ require "project/adapters/remote_protocols/ftp"
9
+
10
+ require "project/adapters/local"
11
+ require "project/adapters/remote"
12
+
13
+ require "project/support/trash"
14
+
15
+ require "project/commands"
16
+ require "project/dir_mirror"
17
+ require "project/dir_controller"
18
+ require "project/project_tree_controller"
19
+ require "project/drb_service"
20
+ require "project/file_list"
21
+ require "project/file_mirror"
22
+ require "project/find_file_dialog"
23
+ require "project/find_recent_dialog"
24
+ require "project/manager"
25
+ require "project/recent"
26
+ require "project/sub_project"
27
+
28
+ module Redcar
29
+ class Project
30
+ RECENT_FILES_LENGTH = 20
31
+
32
+ def self.window_projects
33
+ @window_projects ||= {}
34
+ end
35
+
36
+ attr_reader :window, :tree, :path, :adapter
37
+ attr_accessor :listeners
38
+
39
+ def initialize(path, adapter=Adapters::Local.new)
40
+ @adapter = adapter
41
+ @path = File.expand_path(path)
42
+ @listeners ||= {}
43
+ dir_mirror = Project::DirMirror.new(@path, adapter)
44
+ if dir_mirror.exists?
45
+ @tree = Tree.new(dir_mirror, Project::DirController.new)
46
+ @window = nil
47
+ file_list_resource.compute unless remote?
48
+ else
49
+ raise "#{path} doesn't seem to exist"
50
+ end
51
+ end
52
+
53
+ def remote?
54
+ adapter.is_a?(Adapters::Remote)
55
+ end
56
+
57
+ def ready?
58
+ @tree && @path
59
+ end
60
+
61
+ def inspect
62
+ "<Project #{path}>"
63
+ end
64
+
65
+ def open(win)
66
+ lock
67
+ @window = win
68
+ if current_project = Project.window_projects[window]
69
+ current_project.close
70
+ end
71
+ window.treebook.add_tree(@tree)
72
+ attach_listeners
73
+ window.title = File.basename(@tree.tree_mirror.path)
74
+ Manager.open_project_sensitivity.recompute
75
+ Project.window_projects[window] = self
76
+ Redcar.plugin_manager.objects_implementing(:project_loaded).each do |i|
77
+ i.project_loaded(self)
78
+ end
79
+ Recent.store_path(path)
80
+ Manager.storage['last_open_dir'] = path
81
+ self
82
+ end
83
+
84
+ def lock
85
+ File.open(lock_filename, "w") do |fout|
86
+ fout.puts "#{$$}: Locked by #{$$} at #{Time.now}"
87
+ end
88
+ end
89
+
90
+ def lock_filename
91
+ File.join(config_dir, "redcar.lock")
92
+ end
93
+
94
+ def locked?
95
+ File.exist?(lock_filename)
96
+ end
97
+
98
+ def unlock
99
+ if locked?
100
+ if locked_by_this_process?
101
+ FileUtils.rm_rf(lock_filename)
102
+ else
103
+ raise "locked by another process"
104
+ end
105
+ else
106
+ raise "project not locked"
107
+ end
108
+ end
109
+
110
+ def locked_by_this_process?
111
+ return false unless locked?
112
+ locking_pid = File.read(lock_filename).split(":").first
113
+ locking_pid == $$.to_s
114
+ end
115
+
116
+ def close
117
+ return unless @window
118
+ this_window = window
119
+ @window = nil
120
+ this_window.treebook.remove_tree(@tree)
121
+ Project.window_projects.delete(this_window)
122
+ this_window.title = Window::DEFAULT_TITLE
123
+ Manager.open_project_sensitivity.recompute
124
+ Redcar.plugin_manager.objects_implementing(:project_closed).each do |i|
125
+ i.project_closed(self,this_window)
126
+ end
127
+ listeners = {}
128
+ unlock if locked?
129
+ end
130
+
131
+ def attach_listeners
132
+ attach_notebook_listeners
133
+ window.treebook.add_listener(:tree_removed, &method(:tree_removed))
134
+ end
135
+
136
+ def attach_notebook_listeners
137
+ window.add_listener(:notebook_focussed, &method(:notebook_focussed))
138
+ window.add_listener(:notebook_removed, &method(:notebook_closed))
139
+ window.add_listener(:new_notebook, &method(:notebook_added))
140
+ if notebooks = window.notebooks
141
+ notebooks.each do |nb|
142
+ notebook_added(nb)
143
+ end
144
+ end
145
+ end
146
+
147
+ def notebook_focussed(notebook)
148
+ if notebook.focussed_tab and tree and Project::Manager.reveal_file?(self)
149
+ RevealInProjectCommand.new.run
150
+ end
151
+ end
152
+
153
+ def notebook_added(notebook)
154
+ @listeners.merge!(notebook => notebook.add_listener(:tab_focussed) do |tab|
155
+ RevealInProjectCommand.new.run if tree and window and Project::Manager.reveal_file?(self)
156
+ end)
157
+ end
158
+
159
+ def notebook_closed(notebook)
160
+ @listeners.delete(notebook)
161
+ end
162
+
163
+ def tree_removed(tree)
164
+ close if tree == @tree
165
+ end
166
+
167
+ # Refresh the DirMirror Tree for the given Window, if
168
+ # there is one.
169
+ def refresh
170
+ @tree.refresh
171
+ file_list_resource.compute unless remote?
172
+ end
173
+
174
+ def contains_path?(path)
175
+ File.expand_path(path) =~ /^#{Regexp.escape(@path)}($|\/|\\)/
176
+ end
177
+
178
+ # A list of files previously opened in this session for this project
179
+ #
180
+ # @return [Array<String>] an array of paths
181
+ def recent_files
182
+ @recent_files ||= []
183
+ end
184
+
185
+ def add_to_recent_files(new_file)
186
+ new_file = File.expand_path(new_file)
187
+ if recent_files.include?(new_file)
188
+ recent_files.delete(new_file)
189
+ end
190
+ recent_files << new_file
191
+ if recent_files.length > RECENT_FILES_LENGTH
192
+ recent_files.shift
193
+ end
194
+ end
195
+
196
+ def file_list
197
+ raise "can't access a file list for a remote project" if remote?
198
+ @file_list ||= FileList.new(path)
199
+ end
200
+
201
+ def file_list_resource
202
+ @resource ||= Resource.new("refresh file list for #{@path}") do
203
+ file_list.update
204
+ send_refresh_to_plugins
205
+ end
206
+ end
207
+
208
+ def refresh_modified_file(path)
209
+ file_list.update(path)
210
+ @tree.refresh
211
+ send_refresh_to_plugins
212
+ end
213
+
214
+ def all_files
215
+ file_list.all_files
216
+ end
217
+
218
+ def send_refresh_to_plugins
219
+ Redcar.plugin_manager.objects_implementing(:project_refresh_task_type).each do |object|
220
+ task = object.project_refresh_task_type.new(self)
221
+ if Redcar::Resource.compute_synchronously
222
+ task.execute
223
+ else
224
+ Redcar::Resource.task_queue.submit(task)
225
+ end
226
+ end
227
+ end
228
+
229
+ def lost_application_focus
230
+ @lost_application_focus = true
231
+ end
232
+
233
+ def gained_focus
234
+ refresh
235
+ @lost_application_focus = nil
236
+ end
237
+
238
+ def config_dir
239
+ if Redcar.platform == :windows && Redcar.environment != :test
240
+ dir = File.join(path, "._redcar")
241
+ else
242
+ dir = File.join(path, ".redcar")
243
+ end
244
+ unless File.directory? dir
245
+ FileUtils.mkdir_p(dir)
246
+ if Redcar.platform == :windows
247
+ system("attrib.exe +H \"#{dir}") # make hidden for cmd directory listings
248
+ end
249
+ end
250
+ dir
251
+ end
252
+
253
+ def home_dir
254
+ @path
255
+ end
256
+
257
+ def config_files(glob)
258
+ file_glob = File.join("{#{config_dir},#{Redcar.user_dir}}", glob)
259
+ Dir[file_glob]
260
+ end
261
+
262
+ def search(query)
263
+ ProjectSearch::WordSearch.new(self, query, false, 0)
264
+ end
265
+ end
266
+ end