redcar 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES +41 -1
- data/README.md +1 -1
- data/Rakefile +5 -6
- data/lib/plugin_manager/lib/plugin_manager.rb +1 -2
- data/lib/redcar.rb +19 -14
- data/lib/redcar/installer.rb +21 -17
- data/lib/redcar/runner.rb +10 -7
- data/lib/redcar/usage.rb +1 -0
- data/lib/redcar_quick_start.rb +8 -12
- data/lib/regex_replace.rb +3 -3
- data/plugins/application/features/step_definitions/menu_steps.rb +10 -0
- data/plugins/application/features/step_definitions/speedbar_steps.rb +8 -2
- data/plugins/application/features/step_definitions/tree_steps.rb +48 -6
- data/plugins/application/features/step_definitions/window_steps.rb +9 -4
- data/plugins/application/features/support/env.rb +20 -1
- data/plugins/application/features/support/fake_event.rb +14 -0
- data/plugins/application/lib/application.rb +29 -12
- data/plugins/application/lib/application/dialogs/filter_list_dialog.rb +19 -0
- data/plugins/application/lib/application/speedbar.rb +23 -17
- data/plugins/application/lib/application/tab.rb +20 -15
- data/plugins/application/lib/application/treebook.rb +10 -7
- data/plugins/application/lib/application/window.rb +1 -1
- data/plugins/application/plugin.rb +1 -1
- data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +4 -4
- data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +15 -4
- data/plugins/application_swt/lib/application_swt/icon.rb +3 -5
- data/plugins/application_swt/lib/application_swt/notebook/tab_drag_and_drop_listener.rb +4 -4
- data/plugins/application_swt/lib/application_swt/notebook/tab_transfer.rb +5 -5
- data/plugins/application_swt/lib/application_swt/speedbar.rb +34 -120
- data/plugins/application_swt/lib/application_swt/speedbar/button_item.rb +20 -0
- data/plugins/application_swt/lib/application_swt/speedbar/combo_item.rb +38 -0
- data/plugins/application_swt/lib/application_swt/speedbar/label_item.rb +15 -0
- data/plugins/application_swt/lib/application_swt/speedbar/slider_item.rb +32 -0
- data/plugins/application_swt/lib/application_swt/speedbar/text_box_item.rb +36 -0
- data/plugins/application_swt/lib/application_swt/speedbar/toggle_item.rb +29 -0
- data/plugins/application_swt/lib/application_swt/tab.rb +1 -3
- data/plugins/application_swt/lib/application_swt/toolbar.rb +19 -20
- data/plugins/application_swt/lib/application_swt/treebook.rb +24 -9
- data/plugins/application_swt/lib/application_swt/window.rb +110 -98
- data/plugins/application_swt/lib/swt/vtab_folder.rb +77 -32
- data/plugins/application_swt/lib/swt/vtab_item.rb +9 -0
- data/plugins/application_swt/lib/swt/vtab_label.rb +63 -23
- data/plugins/application_swt/plugin.rb +1 -1
- data/plugins/clipboard-viewer/lib/clipboard_viewer/clipboard_bar.rb +2 -2
- data/plugins/comment/features/line_comment.feature +116 -4
- data/plugins/comment/lib/comment.rb +18 -16
- data/plugins/connection_manager/lib/connection_manager/commands.rb +1 -1
- data/plugins/connection_manager/lib/connection_manager/private_key_store.rb +5 -3
- data/plugins/declarations/lib/declarations.rb +1 -1
- data/plugins/declarations/lib/declarations/parser.rb +68 -20
- data/plugins/document_search/features/replace.feature +18 -0
- data/plugins/document_search/lib/document_search.rb +37 -54
- data/plugins/document_search/lib/document_search/replace_all_command.rb +27 -0
- data/plugins/document_search/lib/document_search/replace_command.rb +38 -0
- data/plugins/document_search/lib/document_search/replace_next_command.rb +27 -0
- data/plugins/document_search/lib/document_search/search_and_replace.rb +17 -24
- data/plugins/edit_view/features/step_definitions/editing_steps.rb +4 -4
- data/plugins/edit_view/features/step_definitions/tab_steps.rb +9 -0
- data/plugins/edit_view/features/step_definitions/window_steps.rb +0 -12
- data/plugins/edit_view/lib/edit_view/document.rb +2 -0
- data/plugins/edit_view/lib/edit_view/document/command.rb +8 -8
- data/plugins/edit_view/lib/edit_view/edit_tab.rb +21 -7
- data/plugins/edit_view/lib/edit_view/select_font_dialog.rb +6 -0
- data/plugins/edit_view/lib/edit_view/select_theme_dialog.rb +6 -0
- data/plugins/edit_view_swt/lib/edit_view_swt.rb +92 -43
- data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +17 -4
- data/plugins/find-in-project/lib/find_in_project.rb +1 -4
- data/plugins/find-in-project/lib/find_in_project/commands.rb +0 -14
- data/plugins/find-in-project/lib/find_in_project/controllers.rb +12 -0
- data/plugins/find-in-project/lib/find_in_project/views/index.html.erb +5 -0
- data/plugins/groovy/features/fixtures/test.groovy +0 -0
- data/plugins/groovy/features/step_definitions/groovy_steps.rb +27 -0
- data/plugins/groovy/features/support/env.rb +27 -0
- data/plugins/groovy/features/syntax_check_groovy.feature +72 -0
- data/plugins/groovy/lib/syntax_check/groovy.rb +76 -0
- data/plugins/groovy/plugin.rb +7 -0
- data/plugins/help/lib/help.rb +28 -4
- data/plugins/help/lib/help/help_tab.rb +11 -0
- data/plugins/help/lib/help/view_controller.rb +25 -0
- data/plugins/help/plugin.rb +2 -1
- data/plugins/{view_shortcuts → help}/views/default.css +0 -0
- data/plugins/{view_shortcuts → help}/views/index.html.erb +1 -1
- data/plugins/{view_shortcuts → help}/views/redcar_small_icon.png +0 -0
- data/plugins/html_view/features/browser_bar.feature +47 -0
- data/plugins/html_view/features/fixtures/other.html +1 -0
- data/plugins/html_view/features/fixtures/sample.html +1 -0
- data/plugins/html_view/features/step_definitions/html_view_steps.rb +45 -5
- data/plugins/html_view/features/support/env.rb +26 -0
- data/plugins/html_view/features/web_preview.feature +21 -0
- data/plugins/html_view/lib/html_controller.rb +5 -5
- data/plugins/html_view/lib/html_view.rb +62 -10
- data/plugins/{web_bookmarks/lib/web_bookmarks → html_view/lib/html_view}/browser_bar.rb +32 -20
- data/plugins/html_view/lib/html_view/commands.rb +64 -0
- data/plugins/{web_bookmarks/lib/web_bookmarks/view_controller.rb → html_view/lib/html_view/default_controller.rb} +7 -6
- data/plugins/html_view/lib/html_view/html_tab.rb +17 -6
- data/plugins/html_view/plugin.rb +3 -3
- data/plugins/{web_bookmarks → html_view}/views/index.html.erb +0 -0
- data/plugins/javascript/features/fixtures/test.js +0 -0
- data/plugins/javascript/features/support/env.rb +4 -0
- data/plugins/javascript/features/syntax_check_javascript.feature +27 -0
- data/plugins/javascript/lib/syntax_check/javascript.rb +52 -0
- data/plugins/javascript/plugin.rb +7 -0
- data/plugins/javascript/vendor/jslint.js +539 -0
- data/plugins/macros/lib/macros/commands.rb +3 -3
- data/plugins/open_default_app/lib/open_default_app.rb +29 -3
- data/plugins/open_default_app/plugin.rb +1 -1
- data/plugins/outline_view/features/outline_view.feature +79 -0
- data/plugins/outline_view/features/step_definitions/outline_steps.rb +45 -0
- data/plugins/outline_view/lib/outline_view.rb +1 -1
- data/plugins/outline_view/spec/fixtures/some_project/javascript.js +10 -0
- data/plugins/outline_view/spec/fixtures/some_project/nothing_to_see.rb +0 -0
- data/plugins/outline_view/spec/fixtures/some_project/one_lonely_class.rb +2 -0
- data/plugins/outline_view/spec/fixtures/some_project/similar_names.rb +18 -0
- data/plugins/outline_view/spec/fixtures/some_project/something_fancy.rb +736 -0
- data/plugins/outline_view/spec/fixtures/some_project/trailing_space.rb +5 -0
- data/plugins/outline_view_swt/lib/outline_view_swt.rb +17 -19
- data/plugins/pair_highlighter/lib/pair_highlighter/document_controller.rb +1 -4
- data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +12 -3
- data/plugins/project/features/close_directory_tree.feature +27 -0
- data/plugins/project/features/highlight_focussed_tab.feature +45 -1
- data/plugins/project/features/open_and_save_files.feature +33 -0
- data/plugins/project/features/open_directory_tree.feature +37 -11
- data/plugins/project/features/step_definitions/directory_steps.rb +1 -1
- data/plugins/project/features/step_definitions/drb_steps.rb +40 -0
- data/plugins/project/features/support/env.rb +17 -0
- data/plugins/project/lib/project.rb +12 -2
- data/plugins/project/lib/project/commands.rb +101 -99
- data/plugins/project/lib/project/drb_service.rb +55 -65
- data/plugins/project/lib/project/manager.rb +29 -4
- data/plugins/project/lib/project/project_tree_controller.rb +24 -0
- data/plugins/project/lib/project/support/trash.rb +1 -0
- data/plugins/redcar/redcar.rb +100 -37
- data/plugins/redcar_debug/lib/redcar_debug.rb +3 -3
- data/plugins/repl/features/step_definitions/repl_steps.rb +3 -0
- data/plugins/repl/lib/repl.rb +4 -11
- data/plugins/repl/lib/repl/repl_tab.rb +26 -0
- data/plugins/ruby/features/fixtures/test.rb +0 -0
- data/plugins/ruby/features/support/env.rb +4 -0
- data/plugins/ruby/features/syntax_check_ruby.feature +25 -0
- data/plugins/runnables/features/command_tree.feature +28 -0
- data/plugins/runnables/lib/runnables.rb +1 -0
- data/plugins/runnables/lib/runnables/commands.rb +4 -4
- data/plugins/runnables/lib/runnables/output_processor.rb +5 -5
- data/plugins/runnables/lib/runnables/tree_mirror/tree_controller.rb +2 -7
- data/plugins/runnables/lib/runnables/tree_mirror/tree_mirror.rb +13 -8
- data/plugins/scm_git/lib/scm_git/change.rb +5 -5
- data/plugins/strip_trailing_spaces/features/fixtures/test.txt +3 -0
- data/plugins/strip_trailing_spaces/features/strip_trailing_spaces.feature +34 -0
- data/plugins/strip_trailing_spaces/lib/strip_trailing_spaces.rb +3 -38
- data/plugins/swt/lib/swt.rb +5 -13
- data/plugins/swt/lib/swt/full_swt.rb +15 -13
- data/plugins/syntax_check/features/step_definitions/syntax_check_steps.rb +7 -0
- data/plugins/syntax_check/lib/syntax_check.rb +21 -3
- data/plugins/syntax_check/lib/syntax_check/error.rb +4 -3
- data/plugins/task_manager/lib/task_manager.rb +1 -1
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/Preferences/Autocompletions.tmPreferences +345 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/Preferences/Symbol List Target.tmPreferences +22 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/Snippets/Doc Banner.tmSnippet +20 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/Syntaxes/Ant.tmLanguage +247 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ant.tmbundle/info.plist +55 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/RedcarRepl.tmbundle/Syntaxes/GroovyRepl.plist +40 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/RedcarRepl.tmbundle/info.plist +1 -1
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ruby Haml.tmbundle/Syntaxes/Ruby_Haml.tmLanguage +0 -1
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ruby Sass.tmbundle/Syntaxes/Ruby Sass.tmLanguage +626 -0
- data/plugins/textmate/vendor/redcar-bundles/Bundles/Ruby Sass.tmbundle/info.plist +16 -0
- data/plugins/todo_list/features/support/env.rb +8 -0
- data/plugins/todo_list/features/todo_list.feature +26 -0
- data/plugins/todo_list/lib/todo_list.rb +1 -0
- data/plugins/todo_list/lib/todo_list/file_parser.rb +23 -19
- data/plugins/todo_list/lib/todo_list/todo_controller.rb +60 -100
- data/plugins/todo_list/spec/fixtures/project/FIXME.file +3 -0
- data/plugins/todo_list/spec/fixtures/project/NOTE.ignored.file +1 -0
- data/plugins/todo_list/spec/fixtures/project/OPTIMIZE_colon.file +1 -0
- data/plugins/todo_list/spec/fixtures/project/XXX.ignored +1 -0
- data/plugins/todo_list/spec/fixtures/project/ignored_directory/TODO.file +2 -0
- data/plugins/todo_list/spec/fixtures/settings.rb +11 -0
- data/plugins/todo_list/spec/spec_helper.rb +6 -0
- data/plugins/todo_list/spec/todo_list/file_parser_spec.rb +35 -0
- data/plugins/tree/lib/tree.rb +1 -0
- data/plugins/tree/lib/tree/command.rb +5 -0
- data/plugins/web_bookmarks/features/bookmark.feature +37 -0
- data/plugins/web_bookmarks/features/fixtures/other.html +1 -0
- data/plugins/web_bookmarks/features/fixtures/sample.html +1 -0
- data/plugins/web_bookmarks/features/step_definitions/web_steps.rb +4 -0
- data/plugins/web_bookmarks/features/support/env.rb +26 -0
- data/plugins/web_bookmarks/lib/web_bookmarks.rb +0 -10
- data/plugins/web_bookmarks/lib/web_bookmarks/bookmark.rb +10 -1
- data/plugins/web_bookmarks/lib/web_bookmarks/commands.rb +1 -47
- data/plugins/web_bookmarks/lib/web_bookmarks/tree.rb +21 -14
- data/{plugins/application → share}/icons/close.png +0 -0
- data/{plugins/application → share}/icons/darwin-file.png +0 -0
- data/{plugins/application → share}/icons/darwin-folder.png +0 -0
- data/share/icons/open-source-flipped.png +0 -0
- data/{plugins/application/icons/redcar_icon_beta_dev.png → share/icons/redcar-icon-beta-dev.png} +0 -0
- data/{plugins/application/icons/redcar_icon_beta.png → share/icons/redcar-icon-beta.png} +0 -0
- data/{plugins/application → share}/icons/redcar-splash.png +0 -0
- metadata +90 -30
- data/lib/redcar/jvm_options_probe.rb +0 -33
- data/plugins/document_search/lib/document_search/replace.rb +0 -113
- data/plugins/document_search/lib/document_search/search.rb +0 -45
- data/plugins/outline_view_swt/lib/icons/alias.png +0 -0
- data/plugins/outline_view_swt/lib/icons/assignment.png +0 -0
- data/plugins/outline_view_swt/lib/icons/attribute.png +0 -0
- data/plugins/outline_view_swt/lib/icons/class.png +0 -0
- data/plugins/outline_view_swt/lib/icons/interface.png +0 -0
- data/plugins/outline_view_swt/lib/icons/method.png +0 -0
- data/plugins/strip_trailing_spaces/CHANGELOG +0 -12
- data/plugins/strip_trailing_spaces/README.md +0 -32
- data/plugins/view_shortcuts/lib/view_shortcuts.rb +0 -52
- data/plugins/view_shortcuts/plugin.rb +0 -11
@@ -0,0 +1,24 @@
|
|
1
|
+
|
2
|
+
module Redcar
|
3
|
+
class Project
|
4
|
+
class ProjectTreeController
|
5
|
+
include Redcar::Tree::Controller
|
6
|
+
|
7
|
+
def initialize(project,title)
|
8
|
+
@project = project
|
9
|
+
@title = title
|
10
|
+
attach_project_listener(@project.window)
|
11
|
+
end
|
12
|
+
|
13
|
+
def attach_project_listener(win)
|
14
|
+
win.treebook.add_listener(:tree_removed) do |tree|
|
15
|
+
if tree == @project.tree and r = win.treebook.trees.detect do |t|
|
16
|
+
t.tree_mirror.title == @title
|
17
|
+
end
|
18
|
+
r.close
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/plugins/redcar/redcar.rb
CHANGED
@@ -164,6 +164,56 @@ module Redcar
|
|
164
164
|
end
|
165
165
|
end
|
166
166
|
|
167
|
+
class GenerateWindowsMenu < Command
|
168
|
+
def initialize(builder)
|
169
|
+
@builder = builder
|
170
|
+
end
|
171
|
+
|
172
|
+
def execute
|
173
|
+
window = Redcar.app.focussed_window
|
174
|
+
Redcar.app.windows.each do |win|
|
175
|
+
@builder.item(win.title, :type => :radio, :active => (win == window)) do
|
176
|
+
FocusWindowCommand.new(win).run
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
end
|
181
|
+
|
182
|
+
class GenerateTabsMenu < Command
|
183
|
+
def initialize(builder)
|
184
|
+
@builder = builder
|
185
|
+
end
|
186
|
+
|
187
|
+
def trim(title)
|
188
|
+
title = title[0,13]+'...' if title.length > 13
|
189
|
+
title
|
190
|
+
end
|
191
|
+
|
192
|
+
def execute
|
193
|
+
if win = Redcar.app.focussed_window and
|
194
|
+
book = win.focussed_notebook and book.tabs.any?
|
195
|
+
focussed_tab = book.focussed_tab
|
196
|
+
@builder.separator
|
197
|
+
@builder.item "Focussed Notebook", ShowTitle
|
198
|
+
book.tabs.each_with_index do |tab,i|
|
199
|
+
num = i + 1
|
200
|
+
if num < 10
|
201
|
+
@builder.item "Tab #{num}: #{trim(tab.title)}", :type => :radio, :active => (tab == focussed_tab), :command => Top.const_get("SelectTab#{num}Command")
|
202
|
+
else
|
203
|
+
@builder.item("Tab #{num}: #{trim(tab.title)}", :type => :radio, :active => (tab == focussed_tab)) {tab.focus}
|
204
|
+
end
|
205
|
+
end
|
206
|
+
if book = win.nonfocussed_notebook and book.tabs.any?
|
207
|
+
@builder.separator
|
208
|
+
@builder.item "Nonfocussed Notebook", ShowTitle
|
209
|
+
book.tabs.each_with_index do |tab,i|
|
210
|
+
@builder.item("Tab #{i+1}: #{trim(tab.title)}") {tab.focus}
|
211
|
+
end
|
212
|
+
end
|
213
|
+
end
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
167
217
|
class FocusWindowCommand < Command
|
168
218
|
def initialize(window=nil)
|
169
219
|
@window = window
|
@@ -219,24 +269,18 @@ module Redcar
|
|
219
269
|
end
|
220
270
|
end
|
221
271
|
|
222
|
-
class CloseTreeCommand <
|
272
|
+
class CloseTreeCommand < TreeCommand
|
223
273
|
def execute
|
224
274
|
win = Redcar.app.focussed_window
|
225
275
|
if win and treebook = win.treebook
|
226
276
|
if tree = treebook.focussed_tree
|
227
|
-
|
228
|
-
Redcar::Application::Dialog.message_box(
|
229
|
-
"Use the \"Close Directory\" command to close this project"
|
230
|
-
)
|
231
|
-
else
|
232
|
-
treebook.remove_tree(tree)
|
233
|
-
end
|
277
|
+
treebook.remove_tree(tree)
|
234
278
|
end
|
235
279
|
end
|
236
280
|
end
|
237
281
|
end
|
238
282
|
|
239
|
-
class ToggleTreesCommand <
|
283
|
+
class ToggleTreesCommand < TreeCommand
|
240
284
|
def execute
|
241
285
|
win = Redcar.app.focussed_window
|
242
286
|
if win and treebook = win.treebook
|
@@ -280,7 +324,7 @@ Redcar.environment: #{Redcar.environment}
|
|
280
324
|
end
|
281
325
|
end
|
282
326
|
|
283
|
-
class PrintScopeCommand <
|
327
|
+
class PrintScopeCommand < DocumentCommand
|
284
328
|
def execute
|
285
329
|
Application::Dialog.tool_tip(tab.edit_view.document.cursor_scope.gsub(" ", "\n"), :cursor)
|
286
330
|
end
|
@@ -347,28 +391,28 @@ Redcar.environment: #{Redcar.environment}
|
|
347
391
|
end
|
348
392
|
end
|
349
393
|
|
350
|
-
class SwitchTabDownCommand <
|
394
|
+
class SwitchTabDownCommand < TabCommand
|
351
395
|
|
352
396
|
def execute
|
353
397
|
win.focussed_notebook.switch_down
|
354
398
|
end
|
355
399
|
end
|
356
400
|
|
357
|
-
class SwitchTabUpCommand <
|
401
|
+
class SwitchTabUpCommand < TabCommand
|
358
402
|
|
359
403
|
def execute
|
360
404
|
win.focussed_notebook.switch_up
|
361
405
|
end
|
362
406
|
end
|
363
407
|
|
364
|
-
class MoveTabUpCommand <
|
408
|
+
class MoveTabUpCommand < TabCommand
|
365
409
|
|
366
410
|
def execute
|
367
411
|
win.focussed_notebook.move_up
|
368
412
|
end
|
369
413
|
end
|
370
414
|
|
371
|
-
class MoveTabDownCommand <
|
415
|
+
class MoveTabDownCommand < TabCommand
|
372
416
|
|
373
417
|
def execute
|
374
418
|
win.focussed_notebook.move_down
|
@@ -717,7 +761,7 @@ Redcar.environment: #{Redcar.environment}
|
|
717
761
|
|
718
762
|
# define commands from SelectTab1Command to SelectTab9Command
|
719
763
|
(1..9).each do |tab_num|
|
720
|
-
const_set("SelectTab#{tab_num}Command", Class.new(Redcar::
|
764
|
+
const_set("SelectTab#{tab_num}Command", Class.new(Redcar::TabCommand)).class_eval do
|
721
765
|
define_method :execute do
|
722
766
|
notebook = Redcar.app.focussed_window_notebook
|
723
767
|
notebook.tabs[tab_num-1].focus if notebook.tabs[tab_num-1]
|
@@ -769,6 +813,11 @@ Redcar.environment: #{Redcar.environment}
|
|
769
813
|
end
|
770
814
|
end
|
771
815
|
|
816
|
+
class ShowTitle < Command
|
817
|
+
sensitize :always_disabled
|
818
|
+
def execute; end
|
819
|
+
end
|
820
|
+
|
772
821
|
class SelectFontSize < Command
|
773
822
|
def execute
|
774
823
|
result = Application::Dialog.input("Font Size", "Please enter new font size", Redcar::EditView.font_size.to_s) do |text|
|
@@ -1034,33 +1083,47 @@ Redcar.environment: #{Redcar.environment}
|
|
1034
1083
|
end
|
1035
1084
|
end
|
1036
1085
|
sub_menu "View", :priority => 30 do
|
1037
|
-
sub_menu "Appearance" do
|
1086
|
+
sub_menu "Appearance", :priority => 5 do
|
1038
1087
|
item "Font", SelectNewFont
|
1039
1088
|
item "Font Size", SelectFontSize
|
1040
1089
|
item "Theme", SelectTheme
|
1041
1090
|
end
|
1042
|
-
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1054
|
-
|
1055
|
-
|
1056
|
-
|
1057
|
-
|
1058
|
-
|
1091
|
+
group(:priority => 10) do
|
1092
|
+
separator
|
1093
|
+
item "Toggle Tree Visibility", :command => ToggleTreesCommand
|
1094
|
+
item "Toggle Fullscreen", :command => ToggleFullscreen, :type => :check, :active => window ? window.fullscreen : false
|
1095
|
+
end
|
1096
|
+
group(:priority => 15) do
|
1097
|
+
separator
|
1098
|
+
lazy_sub_menu "Windows" do
|
1099
|
+
GenerateWindowsMenu.new(self).run
|
1100
|
+
end
|
1101
|
+
sub_menu "Notebooks" do
|
1102
|
+
item "New Notebook", NewNotebookCommand
|
1103
|
+
item "Close Notebook", CloseNotebookCommand
|
1104
|
+
item "Rotate Notebooks", RotateNotebooksCommand
|
1105
|
+
item "Move Tab To Other Notebook", MoveTabToOtherNotebookCommand
|
1106
|
+
item "Switch Notebooks", SwitchNotebookCommand
|
1107
|
+
end
|
1108
|
+
sub_menu "Tabs" do
|
1109
|
+
item "Previous Tab", SwitchTabDownCommand
|
1110
|
+
item "Next Tab", SwitchTabUpCommand
|
1111
|
+
item "Move Tab Left", MoveTabDownCommand
|
1112
|
+
item "Move Tab Right", MoveTabUpCommand
|
1113
|
+
separator
|
1114
|
+
# GenerateTabsMenu.new(self).run # TODO: find a way to maintain keybindings with lazy menus
|
1115
|
+
item "Focussed Notebook", ShowTitle
|
1116
|
+
(1..9).each do |num|
|
1117
|
+
item "Tab #{num}", Top.const_get("SelectTab#{num}Command")
|
1118
|
+
end
|
1119
|
+
end
|
1120
|
+
end
|
1121
|
+
group(:priority => :last) do
|
1122
|
+
separator
|
1123
|
+
item "Show Toolbar", :command => ToggleToolbar, :type => :check, :active => Redcar.app.show_toolbar?
|
1124
|
+
item "Show Invisibles", :command => ToggleInvisibles, :type => :check, :active => EditView.show_invisibles?
|
1125
|
+
item "Show Line Numbers", :command => ToggleLineNumbers, :type => :check, :active => EditView.show_line_numbers?
|
1059
1126
|
end
|
1060
|
-
separator
|
1061
|
-
item "Show Toolbar", :command => ToggleToolbar, :type => :check, :active => Redcar.app.show_toolbar?
|
1062
|
-
item "Show Invisibles", :command => ToggleInvisibles, :type => :check, :active => EditView.show_invisibles?
|
1063
|
-
item "Show Line Numbers", :command => ToggleLineNumbers, :type => :check, :active => EditView.show_line_numbers?
|
1064
1127
|
end
|
1065
1128
|
sub_menu "Bundles", :priority => 45 do
|
1066
1129
|
group(:priority => :first) do
|
@@ -47,7 +47,7 @@ module Redcar
|
|
47
47
|
def execute
|
48
48
|
path = Redcar.user_dir + "/profile_output.html"
|
49
49
|
JRubyProf.print_graph_html(Debug.profiling_result, path)
|
50
|
-
tab = win.new_tab(
|
50
|
+
tab = win.new_tab(ConfigTab)
|
51
51
|
tab.html_view.contents = File.read(path)
|
52
52
|
tab.focus
|
53
53
|
FileUtils.rm_f(path)
|
@@ -58,7 +58,7 @@ module Redcar
|
|
58
58
|
def execute
|
59
59
|
path = Redcar.user_dir + "/profile_output.html"
|
60
60
|
JRubyProf.print_tree_html(Debug.profiling_result, path)
|
61
|
-
tab = win.new_tab(
|
61
|
+
tab = win.new_tab(ConfigTab)
|
62
62
|
tab.html_view.contents = File.read(path)
|
63
63
|
tab.focus
|
64
64
|
FileUtils.rm_f(path)
|
@@ -69,7 +69,7 @@ module Redcar
|
|
69
69
|
|
70
70
|
def execute
|
71
71
|
controller = Controller.new
|
72
|
-
tab = win.new_tab(
|
72
|
+
tab = win.new_tab(ConfigTab)
|
73
73
|
tab.html_view.controller = controller
|
74
74
|
tab.focus
|
75
75
|
end
|
data/plugins/repl/lib/repl.rb
CHANGED
@@ -2,6 +2,7 @@ require 'repl/repl_mirror'
|
|
2
2
|
require 'repl/ruby_mirror'
|
3
3
|
require 'repl/clojure_mirror'
|
4
4
|
require 'repl/groovy_mirror'
|
5
|
+
require 'repl/repl_tab'
|
5
6
|
|
6
7
|
module Redcar
|
7
8
|
class REPL
|
@@ -37,7 +38,7 @@ module Redcar
|
|
37
38
|
[
|
38
39
|
Sensitivity.new(:open_repl_tab, Redcar.app, false, [:tab_focussed]) do |tab|
|
39
40
|
tab and
|
40
|
-
tab.is_a?(
|
41
|
+
tab.is_a?(REPL::ReplTab) and
|
41
42
|
tab.edit_view.document.mirror.is_a?(REPL::ReplMirror)
|
42
43
|
end
|
43
44
|
]
|
@@ -46,17 +47,9 @@ module Redcar
|
|
46
47
|
class OpenREPL < Command
|
47
48
|
|
48
49
|
def open_repl(mirror)
|
49
|
-
tab = win.new_tab(
|
50
|
-
|
51
|
-
edit_view.document.mirror = mirror
|
52
|
-
edit_view.cursor_offset = edit_view.document.length
|
53
|
-
edit_view.grammar = mirror.grammar_name
|
50
|
+
tab = win.new_tab(REPL::ReplTab)
|
51
|
+
tab.repl_mirror = mirror
|
54
52
|
tab.focus
|
55
|
-
|
56
|
-
mirror.add_listener(:change) do
|
57
|
-
edit_view.cursor_offset = edit_view.document.length
|
58
|
-
edit_view.scroll_to_line(edit_view.document.line_count)
|
59
|
-
end
|
60
53
|
end
|
61
54
|
end
|
62
55
|
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Redcar
|
2
|
+
class REPL
|
3
|
+
class ReplTab < Redcar::EditTab
|
4
|
+
|
5
|
+
DEFAULT_ICON = :application_terminal
|
6
|
+
|
7
|
+
def initialize(*args, &block)
|
8
|
+
super(*args,&block)
|
9
|
+
end
|
10
|
+
|
11
|
+
def icon
|
12
|
+
DEFAULT_ICON
|
13
|
+
end
|
14
|
+
|
15
|
+
def repl_mirror=(mirror)
|
16
|
+
edit_view.document.mirror = mirror
|
17
|
+
edit_view.cursor_offset = edit_view.document.length
|
18
|
+
edit_view.grammar = mirror.grammar_name
|
19
|
+
mirror.add_listener(:change) do
|
20
|
+
edit_view.cursor_offset = edit_view.document.length
|
21
|
+
edit_view.scroll_to_line(edit_view.document.line_count)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
Feature: Syntax Checking for Ruby
|
2
|
+
As a user
|
3
|
+
I want to get annotations on syntax errors in Ruby files
|
4
|
+
|
5
|
+
Background:
|
6
|
+
When I have opened "plugins/ruby/features/fixtures/test.rb"
|
7
|
+
|
8
|
+
Scenario: A syntax-clean Ruby file has no syntax error annotations
|
9
|
+
When I replace the contents with "def foo\n bar\nend"
|
10
|
+
And I save the tab
|
11
|
+
Then the tab should not have annotations
|
12
|
+
|
13
|
+
Scenario: A syntax-error in a Ruby file should cause syntax error annotations
|
14
|
+
When I replace the contents with "def foo\n => bar\nend"
|
15
|
+
And I save the tab
|
16
|
+
Then the tab should have annotations
|
17
|
+
And the tab should have an annotation on line 2
|
18
|
+
|
19
|
+
Scenario: Fixing a syntax-error in a Ruby file should cause syntax error annotations to vanish
|
20
|
+
When I replace the contents with "def foo\n => bar\nend"
|
21
|
+
And I save the tab
|
22
|
+
Then the tab should have annotations
|
23
|
+
When I replace the contents with "def foo\n bar\nend"
|
24
|
+
And I save the tab
|
25
|
+
Then the tab should not have annotations
|
@@ -29,6 +29,34 @@ Feature: Showing commands in a command tree
|
|
29
29
|
And I expand the tree row "fixture_runnables"
|
30
30
|
Then I should see "A changed app" in the tree
|
31
31
|
|
32
|
+
Scenario: I can switch forth and back between project and runnables tree
|
33
|
+
When I open the runnables tree
|
34
|
+
And I click the project tree tab
|
35
|
+
Then I should not see "fixture_runnables" in the tree
|
36
|
+
When I left-click the "Runnables" tree tab
|
37
|
+
Then I should see "fixture_runnables" in the tree
|
38
|
+
|
39
|
+
Scenario: Right-clicking the runnables tab does not activate it
|
40
|
+
When I open the runnables tree
|
41
|
+
And I click the project tree tab
|
42
|
+
Then I should not see "fixture_runnables" in the tree
|
43
|
+
When I right-click the "Runnables" tree tab
|
44
|
+
Then I should not see "fixture_runnables" in the tree
|
45
|
+
|
46
|
+
Scenario: Closing the project via icon closes the runnables tree
|
47
|
+
And I open the runnables tree
|
48
|
+
And I click the project tree tab
|
49
|
+
And I click the close button
|
50
|
+
Then the tree width should be the minimum size
|
51
|
+
And there should not be a tree titled "Runnables"
|
52
|
+
|
53
|
+
Scenario: Closing the project via menu item closes the runnables tree
|
54
|
+
And I open the runnables tree
|
55
|
+
And I click the project tree tab
|
56
|
+
And I close the tree
|
57
|
+
Then the tree width should be the minimum size
|
58
|
+
And there should not be a tree titled "Runnables"
|
59
|
+
|
32
60
|
# TODO: Refresh on window changes
|
33
61
|
# TODO: preserve expanding when refreshing
|
34
62
|
# Example of these are available in refresh_directory_tree.feature
|
@@ -23,20 +23,20 @@ module Redcar
|
|
23
23
|
project = Project::Manager.in_window(win)
|
24
24
|
tree = Tree.new(
|
25
25
|
TreeMirror.new(project),
|
26
|
-
TreeController.new(project)
|
26
|
+
TreeController.new(project,TREE_TITLE)
|
27
27
|
)
|
28
28
|
win.treebook.add_tree(tree)
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
class RunEditTabCommand < Redcar::
|
34
|
-
sensitize :open_project
|
33
|
+
class RunEditTabCommand < Redcar::DocumentCommand
|
34
|
+
sensitize :open_project, :focussed_committed_mirror
|
35
35
|
def execute
|
36
36
|
project = Project::Manager.in_window(win)
|
37
37
|
f = Runnables.file_mappings(project).detect do |file_mapping|
|
38
38
|
regex = Regexp.new(file_mapping["regex"])
|
39
|
-
|
39
|
+
doc.mirror.path =~ regex
|
40
40
|
end
|
41
41
|
run_tab(project.home_dir,tab, f) if f
|
42
42
|
end
|