redcar 0.9.2 → 0.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (234) hide show
  1. data/CHANGES +34 -4
  2. data/Rakefile +2 -1
  3. data/lib/redcar.rb +3 -3
  4. data/lib/redcar/installer.rb +2 -3
  5. data/plugins/application/features/step_definitions/dialog_steps.rb +7 -0
  6. data/plugins/application/features/step_definitions/key_steps.rb +18 -0
  7. data/plugins/application/features/step_definitions/menu_steps.rb +5 -6
  8. data/plugins/application/features/step_definitions/speedbar_steps.rb +29 -9
  9. data/plugins/application/features/step_definitions/tree_steps.rb +13 -0
  10. data/plugins/application/features/support/env.rb +39 -5
  11. data/plugins/application/features/support/fake_event.rb +12 -0
  12. data/plugins/application/lib/application.rb +5 -6
  13. data/plugins/application/lib/application/dialog.rb +53 -10
  14. data/plugins/application/lib/application/dialogs/modeless_list_dialog.rb +85 -0
  15. data/plugins/application/lib/application/keymap.rb +10 -8
  16. data/plugins/application/lib/application/menu.rb +38 -16
  17. data/plugins/application/lib/application/treebook.rb +30 -0
  18. data/plugins/application/lib/application/window.rb +20 -2
  19. data/plugins/application/spec/application/command/executor_spec.rb +1 -0
  20. data/plugins/application/spec/application/menu_spec.rb +26 -26
  21. data/plugins/application/spec/application/treebook_spec.rb +6 -6
  22. data/plugins/application/spec/spec_helper.rb +10 -1
  23. data/plugins/application_swt/lib/application_swt.rb +25 -3
  24. data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +48 -27
  25. data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +22 -11
  26. data/plugins/application_swt/lib/application_swt/dialogs/modeless_dialog.rb +113 -0
  27. data/plugins/application_swt/lib/application_swt/dialogs/modeless_html_dialog.rb +85 -0
  28. data/plugins/application_swt/lib/application_swt/dialogs/modeless_list_dialog_controller.rb +143 -0
  29. data/plugins/application_swt/lib/application_swt/gradient.rb +61 -0
  30. data/plugins/application_swt/lib/application_swt/menu/binding_translator.rb +4 -4
  31. data/plugins/application_swt/lib/application_swt/notebook.rb +5 -8
  32. data/plugins/application_swt/lib/application_swt/speedbar.rb +1 -0
  33. data/plugins/application_swt/lib/application_swt/treebook.rb +6 -8
  34. data/plugins/application_swt/lib/application_swt/window.rb +85 -57
  35. data/plugins/application_swt/lib/swt/graphics_utils.rb +23 -0
  36. data/plugins/application_swt/lib/swt/vtab_folder.rb +7 -0
  37. data/plugins/application_swt/lib/swt/vtab_label.rb +1 -1
  38. data/plugins/application_swt/spec/application_swt/gradient_spec.rb +142 -0
  39. data/plugins/auto_completer/lib/auto_completer.rb +10 -42
  40. data/plugins/auto_completer/lib/auto_completer/list_dialog.rb +21 -0
  41. data/plugins/clojure/lib/clojure.rb +33 -0
  42. data/plugins/{repl/lib/repl/clojure_mirror.rb → clojure/lib/clojure/repl_mirror.rb} +16 -20
  43. data/plugins/clojure/plugin.rb +9 -0
  44. data/plugins/{repl/spec/repl/clojure_mirror_spec.rb → clojure/spec/clojure/repl_mirror_spec.rb} +12 -13
  45. data/plugins/clojure/spec/spec_helper.rb +5 -0
  46. data/plugins/{repl → clojure}/vendor/Wrapper.clj +0 -0
  47. data/plugins/{repl → clojure}/vendor/dummy +0 -0
  48. data/plugins/{repl → clojure}/vendor/enclojure-wrapper.jar +0 -0
  49. data/plugins/connection_manager/lib/connection_manager.rb +13 -13
  50. data/plugins/declarations/lib/declarations.rb +17 -6
  51. data/plugins/document_search/features/find.feature +389 -0
  52. data/plugins/document_search/features/find_and_replace.feature +723 -0
  53. data/plugins/document_search/features/replace.feature +69 -62
  54. data/plugins/document_search/lib/document_search.rb +81 -64
  55. data/plugins/document_search/lib/document_search/commands.rb +258 -0
  56. data/plugins/document_search/lib/document_search/find_and_replace_speedbar.rb +142 -0
  57. data/plugins/document_search/lib/document_search/find_speedbar.rb +102 -0
  58. data/plugins/document_search/lib/document_search/query_options.rb +45 -0
  59. data/plugins/edit_view/features/case_change.feature +9 -5
  60. data/plugins/edit_view/features/step_definitions/editing_steps.rb +19 -0
  61. data/plugins/edit_view/lib/edit_view.rb +15 -12
  62. data/plugins/edit_view/lib/edit_view/actions/arrow_keys.rb +12 -2
  63. data/plugins/edit_view/lib/edit_view/commands/text_conversion_commands.rb +1 -1
  64. data/plugins/edit_view/lib/edit_view/document.rb +129 -99
  65. data/plugins/edit_view_swt/lib/edit_view_swt.rb +33 -15
  66. data/plugins/encryption/encryption.rb +2 -0
  67. data/plugins/find-in-project/lib/find_in_project.rb +3 -5
  68. data/plugins/find-in-project/lib/find_in_project/views/index.html.erb +2 -0
  69. data/plugins/groovy/features/step_definitions/groovy_steps.rb +2 -2
  70. data/plugins/groovy/features/syntax_check_groovy.feature +3 -3
  71. data/plugins/groovy/lib/groovy.rb +38 -0
  72. data/plugins/groovy/lib/groovy/commands.rb +10 -0
  73. data/plugins/{repl/lib/repl/groovy_mirror.rb → groovy/lib/groovy/repl_mirror.rb} +33 -13
  74. data/plugins/groovy/lib/{syntax_check/groovy.rb → groovy/syntax_checker.rb} +13 -8
  75. data/plugins/groovy/plugin.rb +5 -4
  76. data/plugins/{repl/spec/repl/groovy_mirror_spec.rb → groovy/spec/groovy/repl_mirror_spec.rb} +14 -13
  77. data/plugins/groovy/spec/spec_helper.rb +5 -0
  78. data/plugins/html_view/assets/json2.js +476 -0
  79. data/plugins/html_view/lib/html_view.rb +1 -0
  80. data/plugins/java/features/fixtures/test.java +0 -0
  81. data/plugins/java/features/support/env.rb +27 -0
  82. data/plugins/java/features/syntax_check_java.feature +86 -0
  83. data/plugins/java/lib/syntax_check/java.rb +86 -0
  84. data/plugins/java/plugin.rb +7 -0
  85. data/plugins/javascript/features/fixtures/test2.js +5 -0
  86. data/plugins/javascript/features/step_definitions/javascript_steps.rb +16 -0
  87. data/plugins/javascript/features/support/env.rb +14 -0
  88. data/plugins/javascript/features/syntax_check_javascript.feature +46 -3
  89. data/plugins/javascript/lib/syntax_check/javascript.rb +15 -9
  90. data/plugins/line_tools/features/trim_line.feature +49 -0
  91. data/plugins/line_tools/lib/line_tools.rb +5 -1
  92. data/plugins/mirah/README +7 -0
  93. data/plugins/mirah/features/fixtures/test.mirah +2 -0
  94. data/plugins/mirah/features/syntax_check_mirah.feature +46 -0
  95. data/plugins/mirah/lib/mirah.rb +43 -0
  96. data/plugins/mirah/lib/mirah/my_error_handler.rb +22 -0
  97. data/plugins/mirah/lib/mirah/repl_mirror.rb +50 -0
  98. data/plugins/mirah/lib/mirah/syntax_checker.rb +38 -0
  99. data/plugins/mirah/plugin.rb +8 -0
  100. data/plugins/mirah/spec/mirah/repl_mirror_spec.rb +188 -0
  101. data/plugins/mirah/spec/spec_helper.rb +5 -0
  102. data/plugins/mirah/vendor/mirah-parser.jar +0 -0
  103. data/plugins/pair_highlighter/lib/pair_highlighter/document_controller.rb +24 -23
  104. data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +10 -1
  105. data/plugins/plugin_manager_ui/views/index.html.erb +2 -0
  106. data/plugins/project/features/find_file.feature +40 -16
  107. data/plugins/project/features/highlight_focussed_tab.feature +16 -10
  108. data/plugins/project/features/step_definitions/find_file_steps.rb +11 -0
  109. data/plugins/project/features/step_definitions/project_tree_steps.rb +5 -1
  110. data/plugins/project/features/support/env.rb +5 -0
  111. data/plugins/project/lib/project/commands.rb +8 -1
  112. data/plugins/project/lib/project/dir_controller.rb +4 -1
  113. data/plugins/project/lib/project/find_file_dialog.rb +16 -12
  114. data/plugins/project/lib/project/manager.rb +30 -1
  115. data/plugins/project_search/vendor/lucene/CHANGELOG +147 -0
  116. data/plugins/project_search/vendor/lucene/CONTRIBUTORS +17 -0
  117. data/plugins/project_search/vendor/lucene/Gemfile +9 -0
  118. data/plugins/project_search/vendor/lucene/Gemfile.lock +33 -0
  119. data/plugins/project_search/vendor/lucene/LICENSE +19 -0
  120. data/plugins/project_search/vendor/lucene/README.rdoc +283 -0
  121. data/plugins/project_search/vendor/lucene/Rakefile +35 -0
  122. data/plugins/project_search/vendor/lucene/examples/active_model/serializers.rb +25 -0
  123. data/plugins/project_search/vendor/lucene/examples/active_model/validation.rb +26 -0
  124. data/plugins/project_search/vendor/lucene/examples/admin/Rakefile +4 -0
  125. data/plugins/project_search/vendor/lucene/examples/admin/admin.rb +29 -0
  126. data/plugins/project_search/vendor/lucene/examples/admin/public/jquery.js +4376 -0
  127. data/plugins/project_search/vendor/lucene/examples/admin/public/neo4j.css +153 -0
  128. data/plugins/project_search/vendor/lucene/examples/admin/public/neo_admin.js +18 -0
  129. data/plugins/project_search/vendor/lucene/examples/admin/spec/admin_spec.rb +26 -0
  130. data/plugins/project_search/vendor/lucene/examples/admin/views/index.erb +21 -0
  131. data/plugins/project_search/vendor/lucene/examples/filetree/README.rdoc +9 -0
  132. data/plugins/project_search/vendor/lucene/examples/filetree/app.rb +7 -0
  133. data/plugins/project_search/vendor/lucene/examples/filetree/batch.props +5 -0
  134. data/plugins/project_search/vendor/lucene/examples/filetree/features/step_definitions/add_steps.rb +121 -0
  135. data/plugins/project_search/vendor/lucene/examples/filetree/features/support/env.rb +30 -0
  136. data/plugins/project_search/vendor/lucene/examples/filetree/features/support/rspec_helper.rb +50 -0
  137. data/plugins/project_search/vendor/lucene/examples/filetree/features/treesizes.feature +19 -0
  138. data/plugins/project_search/vendor/lucene/examples/imdb/1_create_neo_db.rb +66 -0
  139. data/plugins/project_search/vendor/lucene/examples/imdb/2_index_db.rb +23 -0
  140. data/plugins/project_search/vendor/lucene/examples/imdb/README +12 -0
  141. data/plugins/project_search/vendor/lucene/examples/imdb/find_actors.rb +56 -0
  142. data/plugins/project_search/vendor/lucene/examples/imdb/install.sh +12 -0
  143. data/plugins/project_search/vendor/lucene/examples/imdb/model.rb +37 -0
  144. data/plugins/project_search/vendor/lucene/examples/railway/README +111 -0
  145. data/plugins/project_search/vendor/lucene/examples/railway/railnet-app.rb +31 -0
  146. data/plugins/project_search/vendor/lucene/examples/railway/railnet-data.rb +42 -0
  147. data/plugins/project_search/vendor/lucene/examples/rest/example.rb +41 -0
  148. data/plugins/project_search/vendor/lucene/examples/you_might_know/YouMightKnow.java +60 -0
  149. data/plugins/project_search/vendor/lucene/examples/you_might_know/all_simple_paths.rb +34 -0
  150. data/plugins/project_search/vendor/lucene/examples/you_might_know/nodes.rb +34 -0
  151. data/plugins/project_search/vendor/lucene/examples/you_might_know/you_might_know.rb +50 -0
  152. data/plugins/project_search/vendor/lucene/lib/lucene.rb +15 -0
  153. data/plugins/project_search/vendor/lucene/lib/lucene/config.rb +145 -0
  154. data/plugins/project_search/vendor/lucene/lib/lucene/document.rb +96 -0
  155. data/plugins/project_search/vendor/lucene/lib/lucene/field_info.rb +144 -0
  156. data/plugins/project_search/vendor/lucene/lib/lucene/hits.rb +54 -0
  157. data/plugins/project_search/vendor/lucene/lib/lucene/index.rb +267 -0
  158. data/plugins/project_search/vendor/lucene/lib/lucene/index_info.rb +146 -0
  159. data/plugins/project_search/vendor/lucene/lib/lucene/index_searcher.rb +157 -0
  160. data/plugins/project_search/vendor/lucene/lib/lucene/jars.rb +5 -0
  161. data/plugins/project_search/vendor/lucene/lib/lucene/query_dsl.rb +135 -0
  162. data/plugins/project_search/vendor/lucene/lib/lucene/transaction.rb +117 -0
  163. data/plugins/project_search/vendor/lucene/lib/lucene/version.rb +3 -0
  164. data/plugins/project_search/vendor/lucene/lucene.gemspec +23 -0
  165. data/plugins/project_search/vendor/lucene/spec/lucene/document_spec.rb +32 -0
  166. data/plugins/project_search/vendor/lucene/spec/lucene/field_info_spec.rb +70 -0
  167. data/plugins/project_search/vendor/lucene/spec/lucene/index_info_spec.rb +76 -0
  168. data/plugins/project_search/vendor/lucene/spec/lucene/index_spec.rb +643 -0
  169. data/plugins/project_search/vendor/lucene/spec/lucene/query_dsl_spec.rb +142 -0
  170. data/plugins/project_search/vendor/lucene/spec/lucene/sort_spec.rb +101 -0
  171. data/plugins/project_search/vendor/lucene/spec/lucene/spec_helper.rb +10 -0
  172. data/plugins/project_search/vendor/lucene/spec/lucene/transaction_spec.rb +118 -0
  173. data/plugins/redcar/features/alter_font_size.feature +25 -0
  174. data/plugins/redcar/features/step_definitions/font_steps.rb +34 -0
  175. data/plugins/redcar/redcar.rb +256 -43
  176. data/plugins/repl/features/command_editing.feature +55 -0
  177. data/plugins/repl/features/command_history.feature +75 -0
  178. data/plugins/repl/features/step_definitions/repl_steps.rb +17 -1
  179. data/plugins/repl/features/support/env.rb +24 -0
  180. data/plugins/repl/features/support/fake_repl.rb +16 -0
  181. data/plugins/repl/lib/repl.rb +17 -74
  182. data/plugins/repl/lib/repl/repl_command.rb +20 -0
  183. data/plugins/repl/lib/repl/repl_mirror.rb +168 -22
  184. data/plugins/repl/lib/repl/repl_tab.rb +131 -6
  185. data/plugins/repl/plugin.rb +1 -1
  186. data/plugins/repl/spec/repl/repl_mirror_spec.rb +72 -0
  187. data/plugins/repl/spec/spec_helper.rb +1 -1
  188. data/plugins/repl_swt/lib/repl_swt.rb +7 -0
  189. data/plugins/repl_swt/lib/repl_swt/key_listener.rb +43 -0
  190. data/plugins/repl_swt/plugin.rb +8 -0
  191. data/plugins/ruby/lib/ruby.rb +35 -0
  192. data/plugins/{repl/lib/repl/ruby_mirror.rb → ruby/lib/ruby/repl_mirror.rb} +12 -12
  193. data/plugins/ruby/lib/{syntax_check/ruby.rb → ruby/syntax_checker.rb} +3 -3
  194. data/plugins/ruby/plugin.rb +5 -4
  195. data/plugins/{repl/spec/repl/ruby_mirror_spec.rb → ruby/spec/ruby/repl_mirror_spec.rb} +38 -29
  196. data/plugins/ruby/spec/spec_helper.rb +5 -0
  197. data/plugins/runnables/lib/runnables.rb +2 -0
  198. data/plugins/runnables/lib/runnables/command_output_controller.rb +5 -0
  199. data/plugins/runnables/lib/runnables/output_processor.rb +14 -3
  200. data/plugins/runnables/views/command_output.html.erb +3 -2
  201. data/plugins/scm/lib/scm.rb +4 -2
  202. data/plugins/scm/lib/scm/diff_mirror.rb +6 -6
  203. data/plugins/scm_git/lib/scm_git.rb +136 -107
  204. data/plugins/scm_git/lib/scm_git/change.rb +28 -19
  205. data/plugins/snippets/lib/snippets/explorer.rb +2 -2
  206. data/plugins/swt/lib/swt/full_swt.rb +1 -0
  207. data/plugins/syntax_check/features/step_definitions/syntax_check_steps.rb +4 -0
  208. data/plugins/syntax_check/features/support/env.rb +3 -0
  209. data/plugins/syntax_check/lib/syntax_check.rb +71 -5
  210. data/plugins/syntax_check/lib/syntax_check/annotation.rb +61 -0
  211. data/plugins/test_runner/lib/test_runner.rb +39 -0
  212. data/plugins/test_runner/lib/test_runner/rspec_runner.rb +20 -0
  213. data/plugins/test_runner/lib/test_runner/run_test_command.rb +63 -0
  214. data/plugins/test_runner/lib/test_runner/runnable_test_runner.rb +26 -0
  215. data/plugins/test_runner/plugin.rb +8 -0
  216. data/plugins/test_runner/spec/run_test_command_spec.rb +51 -0
  217. data/plugins/test_runner/spec/spec_helper.rb +5 -0
  218. data/plugins/textmate/lib/textmate.rb +12 -2
  219. data/plugins/textmate/vendor/redcar-bundles/Bundles/HTML.tmbundle/Syntaxes/HTML.plist +0 -2
  220. data/plugins/textmate/vendor/redcar-bundles/Bundles/Mirah.tmbundle/Syntaxes/Mirah.plist +22 -0
  221. data/plugins/textmate/vendor/redcar-bundles/Bundles/Mirah.tmbundle/info.plist +12 -0
  222. data/plugins/textmate/vendor/redcar-bundles/Bundles/Ruby.tmbundle/Syntaxes/Ruby.plist +2 -0
  223. data/plugins/todo_list/lib/todo_list.rb +7 -0
  224. data/plugins/todo_list/lib/todo_list/todo_controller.rb +3 -1
  225. data/plugins/tree/lib/tree.rb +4 -0
  226. data/plugins/tree_view_swt/lib/tree_view_swt.rb +5 -0
  227. data/plugins/web_bookmarks/lib/web_bookmarks.rb +10 -0
  228. metadata +137 -22
  229. data/plugins/document_search/features/search.feature +0 -163
  230. data/plugins/document_search/lib/document_search/replace_all_command.rb +0 -27
  231. data/plugins/document_search/lib/document_search/replace_command.rb +0 -38
  232. data/plugins/document_search/lib/document_search/replace_next_command.rb +0 -27
  233. data/plugins/document_search/lib/document_search/search_and_replace.rb +0 -81
  234. data/plugins/ruby/README +0 -6
@@ -85,7 +85,7 @@ module Redcar
85
85
  JavaMateView::ThemeManager.load_themes(dir)
86
86
  end
87
87
 
88
- attr_reader :mate_text, :widget, :model
88
+ attr_reader :mate_text, :widget, :model, :key_listener, :verify_key_listener
89
89
 
90
90
  def initialize(model, parent, options={})
91
91
  @options = options
@@ -110,7 +110,7 @@ module Redcar
110
110
 
111
111
  create_model_listeners
112
112
  end
113
-
113
+
114
114
  def create_mate_text
115
115
  @mate_text = JavaMateView::MateText.new(@parent, !!@options[:single_line])
116
116
  @mate_text.set_font(EditView.font, EditView.font_size)
@@ -288,7 +288,7 @@ module Redcar
288
288
  @mate_text.get_text_widget.right_margin = 0
289
289
  end
290
290
  end
291
-
291
+
292
292
  def char_width
293
293
  return 0 if !!@options[:single_line]
294
294
  @char_width ||= begin
@@ -299,11 +299,11 @@ module Redcar
299
299
  width
300
300
  end
301
301
  end
302
-
302
+
303
303
  def clear_char_width
304
304
  @char_width = nil
305
305
  end
306
-
306
+
307
307
  def create_document
308
308
  @document = EditViewSWT::Document.new(@model.document, @mate_text.mate_document)
309
309
  @model.document.controller = @document
@@ -317,17 +317,17 @@ module Redcar
317
317
  h5 = @model.add_listener(:invisibles_changed) do |new_bool|
318
318
  @mate_text.showInvisibles(new_bool)
319
319
  end
320
-
320
+
321
321
  h6 = @model.add_listener(:word_wrap_changed) do |should_word_wrap|
322
322
  @mate_text.set_word_wrap(should_word_wrap)
323
323
  reset_right_margin
324
324
  end
325
-
325
+
326
326
  h11 = @model.add_listener(:margin_column_changed) do |new_column|
327
327
  @mate_text.set_margin_column(new_column)
328
328
  reset_right_margin
329
329
  end
330
-
330
+
331
331
  h12 = @model.add_listener(:show_margin_changed) do |new_bool|
332
332
  if new_bool
333
333
  @mate_text.set_margin_column(@model.margin_column)
@@ -335,13 +335,13 @@ module Redcar
335
335
  @mate_text.set_margin_column(-1)
336
336
  end
337
337
  end
338
-
338
+
339
339
  h7 = @model.add_listener(:font_changed) do
340
340
  @mate_text.set_font(EditView.font, EditView.font_size)
341
341
  clear_char_width
342
342
  reset_right_margin
343
343
  end
344
-
344
+
345
345
  h8 = @model.add_listener(:theme_changed) do
346
346
  @mate_text.set_theme_by_name(EditView.theme)
347
347
  end
@@ -355,8 +355,10 @@ module Redcar
355
355
  @mate_text.getTextWidget.addFocusListener(FocusListener.new(self))
356
356
  @mate_text.getTextWidget.addVerifyListener(VerifyListener.new(@model.document, self))
357
357
  @mate_text.getTextWidget.addModifyListener(ModifyListener.new(@model.document, self))
358
- @mate_text.get_control.add_verify_key_listener(VerifyKeyListener.new(self))
359
- @mate_text.get_control.add_key_listener(KeyListener.new(self))
358
+ @verify_key_listener = VerifyKeyListener.new(self)
359
+ @key_listener = KeyListener.new(self)
360
+ @mate_text.get_control.add_verify_key_listener(@verify_key_listener)
361
+ @mate_text.get_control.add_key_listener(@key_listener)
360
362
  @handlers << [@model.document, h1] << [@model, h2] << [@model, h3] << [@model, h4] <<
361
363
  [@model, h5] << [@model, h6] << [@model, h7] << [@model, h8] <<
362
364
  [@model, h9] << [@model, h11] << [@model.document, h13]
@@ -467,15 +469,15 @@ module Redcar
467
469
  @mate_text.get_text_widget.add_word_movement_listener(WordMoveListener.new(self))
468
470
  @mate_text.get_text_widget.add_control_listener(ControlListener.new(self))
469
471
  end
470
-
472
+
471
473
  class ControlListener
472
474
  def initialize(edit_view_swt)
473
475
  @edit_view_swt = edit_view_swt
474
476
  end
475
-
477
+
476
478
  def controlMoved(*_)
477
479
  end
478
-
480
+
479
481
  def controlResized(e)
480
482
  @edit_view_swt.reset_right_margin
481
483
  end
@@ -498,6 +500,22 @@ module Redcar
498
500
  @mate_text.viewer.set_top_index(line_index)
499
501
  end
500
502
 
503
+ def scroll_to_horizontal_offset(offset)
504
+ @mate_text.get_text_widget.set_horizontal_index(offset)
505
+ end
506
+
507
+ def smallest_visible_horizontal_index
508
+ @mate_text.get_text_widget.get_horizontal_index
509
+ end
510
+
511
+ def largest_visible_horizontal_index
512
+ wpix = @mate_text.get_text_widget.get_client_area.width
513
+ gc = org.eclipse.swt.graphics.GC.new(@mate_text.get_text_widget)
514
+ inc = gc.getFontMetrics().getAverageCharWidth()
515
+ gc.dispose
516
+ @mate_text.get_text_widget.get_horizontal_index + (wpix/inc)
517
+ end
518
+
501
519
  def model_grammar_changed(name)
502
520
  @mate_text.set_grammar_by_name(name)
503
521
  end
@@ -29,6 +29,7 @@ module Encryption
29
29
  def execute
30
30
  Encryption.lazy_load
31
31
  result = Redcar::Application::Dialog.input("Password", "Enter password")
32
+ return if result[:button] == :cancel
32
33
  pw = result[:value]
33
34
  begin
34
35
  doc.text = Encryption.decrypt(doc.to_s, pw)
@@ -42,6 +43,7 @@ module Encryption
42
43
  def execute
43
44
  Encryption.lazy_load
44
45
  result = Redcar::Application::Dialog.input("Password", "Enter password")
46
+ return if result[:button] == :cancel
45
47
  pw = result[:value]
46
48
  doc.text = Encryption.encrypt(doc.to_s, pw)
47
49
  end
@@ -5,14 +5,12 @@ module Redcar
5
5
  class FindInProject
6
6
  def self.menus
7
7
  Redcar::Menu::Builder.build do
8
- sub_menu "Edit" do
9
- sub_menu "Search" do
10
- item "Find In Project!", Redcar::FindInProject::OpenSearch
11
- end
8
+ sub_menu "Project" do
9
+ item "Find in Project!", :command => Redcar::FindInProject::OpenSearch, :priority => 3
12
10
  end
13
11
  end
14
12
  end
15
-
13
+
16
14
  def self.toolbars
17
15
  ToolBar::Builder.build do
18
16
  item "Find in Project", :command => OpenSearch, :icon => File.join(Redcar::ICONS_DIRECTORY, "application-search-result.png"), :barname => :project
@@ -1,5 +1,7 @@
1
1
  <% jquery_path = File.expand_path(File.join(Redcar.root, %w(plugins html_view assets jquery-1.4.min.js))) %>
2
2
  <script type="text/javascript" src="file://<%= jquery_path %>"></script>
3
+ <% json_path = File.expand_path(File.join(Redcar.root, %w(plugins html_view assets json2.js))) %>
4
+ <script type="text/javascript" src="file://<%= json_path %>"></script>
3
5
 
4
6
  <% plugin_css = File.expand_path(File.join(@plugin_root, %w(lib find_in_project stylesheets style.css))) %>
5
7
  <link rel="stylesheet" href="file://<%= plugin_css %>" type="text/css" media="screen">
@@ -1,5 +1,5 @@
1
- When /^I add "([^"]*)" to the groovy classpath$/ do |dir|
2
- File.open(File.expand_path("../../fixtures/.redcar/classpath.groovy", __FILE__), "a") do |f|
1
+ When /^I add "([^"]*)" to the "([^"]*)" classpath$/ do |dir,plugin|
2
+ File.open(File.expand_path("plugins/#{plugin}/features/fixtures/.redcar/classpath.groovy"), "a") do |f|
3
3
  f.puts <<-CONFIG
4
4
  def redcar_config = new File(getClass().protectionDomain.codeSource.location.path).parentFile
5
5
  def project = redcar_config.parentFile
@@ -51,7 +51,7 @@ Feature: Syntax Checking for Groovy
51
51
  Given I have not suppressed syntax checking message dialogs
52
52
  When I will choose "plugins/groovy/features/fixtures" from the "open_directory" dialog
53
53
  And I open a directory
54
- And I add "lib2" to the groovy classpath
54
+ And I add "lib2" to the "groovy" classpath
55
55
  And I replace the contents with "class Foo {\n def x = new Bar(10)\n def y = new FooBaz()\n}"
56
56
  And I save the tab
57
57
  Then I should see a message box containing "An error occurred while parsing"
@@ -66,7 +66,7 @@ Feature: Syntax Checking for Groovy
66
66
  And I save the tab
67
67
  Then the tab should not have annotations
68
68
  When I close the focussed tab
69
- And I add "lib2" to the groovy classpath
69
+ And I add "lib2" to the "groovy" classpath
70
70
  And I replace the contents with "class Foo {\n def x = new Bar(10)\n def y = new FooBaz()\n}"
71
71
  And I save the tab
72
- Then the tab should have an annotation on line 2
72
+ Then the tab should have an annotation on line 2
@@ -0,0 +1,38 @@
1
+
2
+ require 'groovy/commands'
3
+ require 'groovy/repl_mirror'
4
+ require 'groovy/syntax_checker'
5
+
6
+ module Redcar
7
+ class Groovy
8
+
9
+ def self.load_dependencies
10
+ unless @loaded
11
+ require File.join(Redcar.asset_dir,"groovy-all")
12
+ @loaded = true
13
+ end
14
+ end
15
+
16
+ def self.menus
17
+ Redcar::Menu::Builder.build do
18
+ sub_menu "Plugins" do
19
+ sub_menu "REPL" do
20
+ item "Open Groovy REPL", GroovyOpenREPL
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+ def self.keymaps
27
+ osx = Keymap.build("main", :osx) do
28
+ link "Cmd+Alt+G", GroovyOpenREPL
29
+ end
30
+
31
+ linwin = Keymap.build("main", [:linux, :windows]) do
32
+ link "Ctrl+Alt+G", GroovyOpenREPL
33
+ end
34
+
35
+ [linwin, osx]
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,10 @@
1
+
2
+ module Redcar
3
+ class Groovy
4
+ class GroovyOpenREPL < Redcar::REPL::OpenREPL
5
+ def execute
6
+ open_repl(ReplMirror.new)
7
+ end
8
+ end
9
+ end
10
+ end
@@ -2,8 +2,8 @@
2
2
  require 'java'
3
3
 
4
4
  module Redcar
5
- class REPL
6
- class GroovyMirror < ReplMirror
5
+ class Groovy
6
+ class ReplMirror < Redcar::REPL::ReplMirror
7
7
  def title
8
8
  "Groovy REPL"
9
9
  end
@@ -11,13 +11,13 @@ module Redcar
11
11
  def grammar_name
12
12
  "Groovy REPL"
13
13
  end
14
-
14
+
15
15
  def prompt
16
16
  "groovy>"
17
- end
17
+ end
18
18
 
19
19
  def evaluator
20
- @instance ||= GroovyMirror::Evaluator.new
20
+ @instance ||= ReplMirror::Evaluator.new
21
21
  end
22
22
 
23
23
  def format_error(e)
@@ -25,19 +25,39 @@ module Redcar
25
25
  "ERROR #{e.class}:\n #{e.message}\n #{backtrace.join("\n ")}"
26
26
  end
27
27
 
28
+ def help
29
+ h = super
30
+ h << """
31
+ Note on Groovy Script Scoping:
32
+ Classes, undefined variables, and undefined closures are saved in the script
33
+ binding between statements.
34
+ Defined methods, closures, and variables are not added to the binding,
35
+ because they are considered local variables and thus are not available after
36
+ the defining statement.
37
+
38
+ Example:
39
+
40
+ def foo = 'hello! I am a local variable'
41
+ foo = 'hi! I am a binding variable'
42
+
43
+ See 'http://groovy.codehaus.org/Scoping+and+the+Semantics+of+%22def%22'
44
+ for more information.
45
+ """
46
+ end
47
+
28
48
  class Evaluator
29
- def self.load_groovy_dependencies
49
+ def self.load_dependencies
30
50
  unless @loaded
31
- require File.join(Redcar.asset_dir,"groovy-all")
51
+ Groovy.load_dependencies
32
52
  import 'groovy.lang.GroovyShell'
33
53
  import 'java.io.PrintWriter'
34
54
  import 'java.io.StringWriter'
35
55
  @loaded = true
36
56
  end
37
57
  end
38
-
58
+
39
59
  def initialize
40
- GroovyMirror::Evaluator.load_groovy_dependencies
60
+ Evaluator.load_dependencies
41
61
  @out = StringWriter.new
42
62
  @shell = GroovyShell.new
43
63
  @shell.setProperty('out',@out)
@@ -48,9 +68,9 @@ module Redcar
48
68
  end
49
69
 
50
70
  def execute(cmd)
51
- output = @shell.evaluate(cmd).to_s
52
- output = "null" unless output and not output.strip.empty?
53
- if @out and not @out.toString().strip.empty?
71
+ output = @shell.evaluate(cmd,"GroovyREPL").to_s
72
+ output = "null" unless output and not output.empty?
73
+ if @out and not @out.toString().empty?
54
74
  console = @out.toString() + "\n"
55
75
  else
56
76
  console = ""
@@ -62,4 +82,4 @@ module Redcar
62
82
  end
63
83
  end
64
84
  end
65
- end
85
+ end
@@ -1,14 +1,14 @@
1
+
1
2
  require 'java'
2
3
 
3
4
  module Redcar
4
- module SyntaxCheck
5
- class Groovy < Checker
5
+ class Groovy
6
+ class SyntaxChecker < Redcar::SyntaxCheck::Checker
6
7
  supported_grammars "Groovy", "Easyb"
7
8
 
8
- def initialize(document)
9
- super
9
+ def self.load_dependencies
10
10
  unless @loaded
11
- require File.join(Redcar.asset_dir,"groovy-all")
11
+ Groovy.load_dependencies
12
12
  import 'groovy.lang.GroovyShell'
13
13
  import 'org.codehaus.groovy.control.CompilationFailedException'
14
14
  import 'org.codehaus.groovy.control.CompilerConfiguration'
@@ -16,6 +16,11 @@ module Redcar
16
16
  end
17
17
  end
18
18
 
19
+ def initialize(document)
20
+ super
21
+ SyntaxChecker.load_dependencies
22
+ end
23
+
19
24
  def check(*args)
20
25
  path = manifest_path(doc)
21
26
  name = File.basename(path)
@@ -27,7 +32,7 @@ module Redcar
27
32
  rescue CompilationFailedException => e
28
33
  create_syntax_error(doc, e.message, name).annotate
29
34
  rescue Object => e
30
- SyntaxCheck.message(
35
+ Redcar::SyntaxCheck.message(
31
36
  "An error occurred while parsing #{name}: #{e.message}",:error)
32
37
  end
33
38
  end
@@ -36,7 +41,7 @@ module Redcar
36
41
  message =~ /#{Regexp.escape(name)}: (\d+):(.*)/
37
42
  line = $1.to_i - 1
38
43
  message = $2
39
- SyntaxCheck::Error.new(doc, line, message)
44
+ Redcar::SyntaxCheck::Error.new(doc, line, message)
40
45
  end
41
46
 
42
47
  def classpath_files(project)
@@ -54,7 +59,7 @@ module Redcar
54
59
  part = shell.run(file, [])
55
60
  parts += part if part
56
61
  rescue Object => e
57
- SyntaxCheck.message(
62
+ Redcar::SyntaxCheck.message(
58
63
  "An error occurred while loading groovy classpath file #{path}: #{e.message}",:error)
59
64
  end
60
65
  end
@@ -1,7 +1,8 @@
1
1
  Plugin.define do
2
2
  name "groovy"
3
- version "0.1"
4
- file "lib", "syntax_check", "groovy"
5
- object "Redcar::SyntaxCheck::Groovy"
6
- dependencies "syntax_check", ">0"
3
+ version "1.0"
4
+ file "lib", "groovy"
5
+ object "Redcar::Groovy"
6
+ dependencies "syntax_check", ">0",
7
+ "repl", ">0"
7
8
  end
@@ -1,9 +1,9 @@
1
- require File.join(File.dirname(__FILE__), '..', 'spec_helper')
1
+ require File.join(File.dirname(__FILE__),'..', 'spec_helper')
2
2
 
3
- class Redcar::REPL
4
- describe GroovyMirror do
3
+ class Redcar::Groovy
4
+ describe ReplMirror do
5
5
  before(:all) do
6
- @mirror = GroovyMirror.new
6
+ @mirror = ReplMirror.new
7
7
  @changed_event = false
8
8
  @mirror.add_listener(:change) { @changed_event = true }
9
9
  end
@@ -12,44 +12,45 @@ class Redcar::REPL
12
12
  while @mirror.read.nil? || @mirror.read[-8,8] != "groovy> "
13
13
  end
14
14
  end
15
-
15
+
16
16
  describe "before executing" do
17
17
  it "should exist" do
18
18
  @mirror.should be_exist
19
19
  end
20
-
20
+
21
21
  it "should have a title" do
22
22
  @mirror.title.should == "Groovy REPL"
23
23
  end
24
-
24
+
25
25
  it "should not be changed" do
26
26
  @mirror.should_not be_changed
27
27
  end
28
28
  end
29
-
29
+
30
30
  describe "after executing" do
31
31
  it "should exist" do
32
32
  @mirror.should be_exist
33
33
  end
34
-
34
+
35
35
  it "should have a title" do
36
36
  @mirror.title.should == "Groovy REPL"
37
37
  end
38
-
38
+
39
39
  it "should not be changed" do
40
40
  @mirror.should_not be_changed
41
41
  end
42
-
42
+
43
43
  it "should have a prompt" do
44
44
  wait_for_prompt
45
45
  @mirror.read.should == (<<-Groovy).chomp
46
46
  # Groovy REPL
47
+ # type 'help' for help
47
48
 
48
49
  groovy>
49
50
  Groovy
50
51
  end
51
-
52
+
52
53
  end
53
-
54
+
54
55
  end
55
56
  end