redcar-dev 0.12.17dev → 0.12.18dev
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.
- data/CHANGES +4 -2
- data/README.md +5 -41
- data/Rakefile +3 -35
- data/lib/redcar.rb +19 -17
- data/lib/redcar/runner.rb +1 -7
- data/lib/redcar_quick_start.rb +5 -5
- data/plugins/application/features/main_menu.feature +1 -1
- data/plugins/application/features/step_definitions/command_steps.rb +8 -7
- data/plugins/application/features/step_definitions/filter_list_dialog_steps.rb +25 -10
- data/plugins/application/features/step_definitions/key_steps.rb +6 -4
- data/plugins/application/features/step_definitions/menu_steps.rb +27 -26
- data/plugins/application/features/step_definitions/speedbar_steps.rb +28 -16
- data/plugins/application/features/step_definitions/tree_steps.rb +88 -64
- data/plugins/application/features/step_definitions/window_steps.rb +14 -10
- data/plugins/application/features/support/env.rb +85 -83
- data/plugins/application/spec/application/application_spec.rb +1 -1
- data/plugins/application/spec/application/clipboard_spec.rb +1 -1
- data/plugins/application/spec/application/command/executor_spec.rb +1 -1
- data/plugins/application/spec/application/command/history_spec.rb +1 -1
- data/plugins/application/spec/application/command_spec.rb +1 -1
- data/plugins/application/spec/application/keymap/builder_spec.rb +1 -1
- data/plugins/application/spec/application/menu/builder_spec.rb +1 -1
- data/plugins/application/spec/application/menu/menu_item_spec.rb +1 -1
- data/plugins/application/spec/application/menu_spec.rb +1 -1
- data/plugins/application/spec/application/navigation_history_spec.rb +2 -0
- data/plugins/application/spec/application/notebook_spec.rb +1 -1
- data/plugins/application/spec/application/sensitive_spec.rb +1 -1
- data/plugins/application/spec/application/speedbar_spec.rb +1 -1
- data/plugins/application/spec/application/treebook_spec.rb +1 -1
- data/plugins/application/spec/application/window_spec.rb +1 -1
- data/plugins/application/spec/spec_helper.rb +4 -6
- data/plugins/application_swt/lib/application_swt/dialogs/filter_list_dialog_controller.rb +1 -1
- data/plugins/application_swt/lib/application_swt/gradient.rb +15 -5
- data/plugins/application_swt/lib/application_swt/window.rb +1 -1
- data/plugins/application_swt/spec/application_swt/gradient_spec.rb +13 -14
- data/plugins/application_swt/spec/application_swt/menu/binding_translator_spec.rb +1 -1
- data/plugins/application_swt/spec/application_swt/menu_spec.rb +1 -1
- data/plugins/application_swt/spec/spec_helper.rb +1 -19
- data/plugins/auto_completer/features/auto_complete.feature +7 -7
- data/plugins/auto_completer/features/step_definitions/auto_complete_steps.rb +3 -1
- data/plugins/auto_completer/features/step_definitions/dependency_steps.rb +0 -0
- data/plugins/auto_indenter/features/java_style_indentation.feature +5 -3
- data/plugins/auto_indenter/features/ruby_style_indentation.feature +13 -13
- data/plugins/auto_indenter/features/step_definitions/indentation_steps.rb +3 -1
- data/plugins/auto_indenter/spec/auto_indenter/analyzer_spec.rb +1 -1
- data/plugins/auto_indenter/spec/spec_helper.rb +1 -5
- data/plugins/auto_pairer/features/auto_pairer.feature +1 -1
- data/plugins/comment/features/line_comment.feature +31 -26
- data/plugins/comment/features/selection_comment.feature +1 -1
- data/plugins/comment/features/step_definitions/comment_steps.rb +6 -2
- data/plugins/comment/vendor/comment_lib.json +2 -0
- data/plugins/core/lib/core.rb +26 -0
- data/plugins/core/spec/core/base_storage_spec.rb +1 -1
- data/plugins/core/spec/core/gui_spec.rb +1 -1
- data/plugins/core/spec/core/observable_spec.rb +2 -1
- data/plugins/core/spec/core/persistent_cache_spec.rb +1 -1
- data/plugins/core/spec/core/shared_storage_spec.rb +1 -1
- data/plugins/core/spec/core/storage_spec.rb +1 -1
- data/plugins/core/spec/core/task_queue_spec.rb +1 -3
- data/plugins/core/spec/spec_helper.rb +1 -4
- data/plugins/declarations/spec/declarations/file_spec.rb +1 -1
- data/plugins/declarations/spec/spec_helper.rb +1 -5
- data/plugins/document_search/features/find.feature +39 -39
- data/plugins/document_search/features/step_definitions/find_steps.rb +6 -2
- data/plugins/edit_view/features/align_assignment.feature +6 -82
- data/plugins/edit_view/features/case_change.feature +22 -22
- data/plugins/edit_view/features/cursor_navigation.feature +2 -2
- data/plugins/edit_view/features/cut_and_paste.feature +9 -9
- data/plugins/edit_view/features/indentation_commands.feature +8 -8
- data/plugins/edit_view/features/line_delimiter.feature +7 -7
- data/plugins/edit_view/features/multiple_windows.feature +48 -48
- data/plugins/edit_view/features/step_definitions/dependency_steps.rb +0 -0
- data/plugins/edit_view/features/step_definitions/editing_steps.rb +237 -127
- data/plugins/edit_view/features/step_definitions/grammar_steps.rb +5 -1
- data/plugins/edit_view/features/step_definitions/notebook_steps.rb +38 -24
- data/plugins/edit_view/features/step_definitions/tab_steps.rb +83 -45
- data/plugins/edit_view/features/step_definitions/window_steps.rb +75 -54
- data/plugins/edit_view/features/support/env.rb +4 -23
- data/plugins/edit_view/lib/edit_view/commands/align_assignment_command.rb +29 -30
- data/plugins/edit_view/lib/edit_view/document.rb +23 -0
- data/plugins/edit_view/spec/edit_view/commands/align_assignment_command_spec.rb +83 -0
- data/plugins/edit_view/spec/edit_view/document/indentation_spec.rb +1 -1
- data/plugins/edit_view/spec/edit_view/document_spec.rb +1 -1
- data/plugins/edit_view/spec/spec_helper.rb +1 -4
- data/plugins/edit_view_swt/spec/edit_view_swt/word_movement_spec.rb +1 -1
- data/plugins/edit_view_swt/spec/spec_helper.rb +1 -4
- data/plugins/html_view/features/fixtures/sample.html +1 -1
- data/plugins/html_view/features/step_definitions/html_view_steps.rb +40 -39
- data/plugins/java/features/syntax_check_java.feature +18 -16
- data/plugins/line_tools/features/step_definitions/line_tools_steps.rb +18 -6
- data/plugins/macros/features/block_selection_in_macros.feature +47 -47
- data/plugins/macros/features/step_definitions/macro_steps.rb +9 -3
- data/plugins/macros/features/step_definitions/prediction_steps.rb +6 -2
- data/plugins/macros/plugin.rb +2 -1
- data/plugins/macros/spec/macros/predictive/sequence_finder_spec.rb +1 -1
- data/plugins/macros/spec/spec_helper.rb +1 -6
- data/plugins/outline_view/features/outline_view.feature +5 -5
- data/plugins/outline_view/features/step_definitions/outline_steps.rb +29 -17
- data/plugins/plugin_manager_ui/lib/plugin_manager_ui.rb +1 -1
- data/plugins/project/features/close_directory_tree.feature +0 -12
- data/plugins/project/features/open_directory_tree.feature +1 -2
- data/plugins/project/features/step_definitions/directory_steps.rb +13 -5
- data/plugins/project/features/step_definitions/file_steps.rb +23 -9
- data/plugins/project/features/step_definitions/find_file_steps.rb +6 -2
- data/plugins/project/features/step_definitions/project_tree_steps.rb +6 -2
- data/plugins/project/features/watch_for_modified_files.feature +1 -1
- data/plugins/project/spec/project/adapters/remote_protocols/ftp_spec.rb +1 -1
- data/plugins/project/spec/project/adapters/remote_protocols/sftp_spec.rb +1 -1
- data/plugins/project/spec/project/adapters/remote_spec.rb +1 -1
- data/plugins/project/spec/project/dir_mirror_spec.rb +1 -1
- data/plugins/project/spec/project/file_list_spec.rb +1 -1
- data/plugins/project/spec/project/file_mirror_spec.rb +2 -1
- data/plugins/project/spec/spec_helper.rb +1 -4
- data/plugins/project_search/spec/project_search/binary_data_detector_spec.rb +1 -1
- data/plugins/project_search/spec/project_search/word_search_spec.rb +1 -1
- data/plugins/project_search/spec/spec_helper.rb +1 -4
- data/plugins/{application → redcar}/features/navigation_history.feature +8 -8
- data/plugins/redcar/features/step_definitions/font_steps.rb +9 -5
- data/plugins/redcar/redcar.rb +0 -26
- data/plugins/repl/features/step_definitions/repl_steps.rb +15 -5
- data/plugins/repl/plugin.rb +1 -1
- data/plugins/repl/spec/repl/repl_mirror_spec.rb +1 -1
- data/plugins/repl/spec/spec_helper.rb +1 -4
- data/plugins/ruby/spec/ruby/repl_mirror_spec.rb +1 -1
- data/plugins/ruby/spec/spec_helper.rb +1 -5
- data/plugins/runnables/features/parameter_input.feature +43 -43
- data/plugins/runnables/features/step_definitions/runnable_steps.rb +9 -3
- data/plugins/runnables/plugin.rb +2 -2
- data/plugins/runnables/spec/runnables/output_processor_spec.rb +1 -1
- data/plugins/runnables/spec/spec_helper.rb +1 -5
- data/plugins/scm_svn/features/add_and_commit.feature +1 -0
- data/plugins/scm_svn/features/checkout.feature +1 -0
- data/plugins/scm_svn/features/edit_and_index.feature +1 -0
- data/plugins/scm_svn/features/ignore_files.feature +1 -0
- data/plugins/scm_svn/features/merge.feature +1 -0
- data/plugins/scm_svn/features/resolve_conflict.feature +1 -0
- data/plugins/scm_svn/features/revert_and_delete.feature +1 -0
- data/plugins/scm_svn/features/step_definitions/branch_and_merge_steps.rb +14 -9
- data/plugins/scm_svn/features/support/env.rb +4 -4
- data/plugins/scm_svn/features/switch_branches.feature +1 -0
- data/plugins/scm_svn/features/update.feature +1 -0
- data/plugins/strip_trailing_spaces/features/strip_trailing_spaces.feature +4 -4
- data/plugins/test_runner/plugin.rb +3 -1
- data/plugins/test_runner/spec/run_test_command_spec.rb +58 -50
- data/plugins/test_runner/spec/spec_helper.rb +1 -5
- data/plugins/textmate/features/step_definitions/tree_steps.rb +2 -0
- data/plugins/todo_list/features/todo_list.feature +1 -1
- data/plugins/todo_list/spec/spec_helper.rb +1 -4
- data/plugins/todo_list/spec/todo_list/file_parser_spec.rb +1 -1
- data/plugins/tree_view_swt/lib/tree_view_swt.rb +2 -1
- data/plugins/web_bookmarks/features/step_definitions/web_steps.rb +1 -1
- metadata +48 -48
- data/lib/redcar/installer.rb +0 -178
- data/plugins/key_bindings/spec/spec_helper.rb +0 -5
- data/plugins/scm/spec/spec_helper.rb +0 -5
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
puts "loading edit_view env.rb"
|
|
2
|
+
|
|
3
|
+
require File.expand_path("../../../../application/features/support/env", __FILE__)
|
|
1
4
|
|
|
2
5
|
module SwtTabHelpers
|
|
3
6
|
def hide_toolbar
|
|
@@ -5,20 +8,6 @@ module SwtTabHelpers
|
|
|
5
8
|
Redcar.app.refresh_toolbar!
|
|
6
9
|
end
|
|
7
10
|
|
|
8
|
-
def get_tab_folders(shell=active_shell)
|
|
9
|
-
hide_toolbar
|
|
10
|
-
right_composite = shell.children.to_a.last
|
|
11
|
-
notebook_sash_form = right_composite.children.to_a[0]
|
|
12
|
-
tab_folders = notebook_sash_form.children.to_a.select do |c|
|
|
13
|
-
c.class == Java::OrgEclipseSwtCustom::CTabFolder
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
def get_tab_folder
|
|
18
|
-
get_tab_folders.length.should == 1
|
|
19
|
-
get_tab_folders.first
|
|
20
|
-
end
|
|
21
|
-
|
|
22
11
|
def get_browser_contents
|
|
23
12
|
live_document = "document.getElementsByTagName('html')[0].innerHTML"
|
|
24
13
|
r = focussed_tab.html_view.controller.execute("return #{live_document};").join('')
|
|
@@ -46,14 +35,6 @@ module SwtTabHelpers
|
|
|
46
35
|
def model_tabs
|
|
47
36
|
Redcar.app.windows.first.notebooks.map{|n| n.tabs}.flatten
|
|
48
37
|
end
|
|
49
|
-
|
|
50
38
|
end
|
|
51
39
|
|
|
52
|
-
World(SwtTabHelpers)
|
|
53
|
-
|
|
54
|
-
def putsall
|
|
55
|
-
p :all
|
|
56
|
-
p Redcar.app.windows.first.notebooks
|
|
57
|
-
p Redcar.app.windows.first.notebooks.first.tabs
|
|
58
|
-
p Redcar.app.windows.first.notebooks.last.tabs
|
|
59
|
-
end
|
|
40
|
+
World(SwtTabHelpers)
|
|
@@ -2,53 +2,52 @@ module Redcar
|
|
|
2
2
|
class EditView
|
|
3
3
|
|
|
4
4
|
class AlignAssignmentCommand < Redcar::DocumentCommand
|
|
5
|
+
OPERATORS = /(\|{0,2}[+-\/%*!&]?={1,3}[>~]?)/
|
|
6
|
+
RELEVANT_LINE_PATTERN = /^([^=]+?)#{OPERATORS}(.*$)/o
|
|
7
|
+
|
|
5
8
|
def execute
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
doc.replace_selection do |old_text|
|
|
15
|
-
|
|
16
|
-
#get max left-hand and right-hand sides in 1 pass
|
|
17
|
-
lengths = old_text.lines.map do |line|
|
|
18
|
-
[line =~ operators || -1, $1 && $1.size || -1]
|
|
19
|
-
end
|
|
20
|
-
lhs_len = lengths.reduce(0){|memo, len| len.first > memo ? len.first : memo}
|
|
21
|
-
rhs_len = lengths.reduce(0){|memo, len| len.last > memo ? len.last : memo}
|
|
22
|
-
|
|
23
|
-
#now replace the first token of the relevant lines
|
|
24
|
-
old_text.lines.map do |line|
|
|
25
|
-
line.chomp!
|
|
26
|
-
if line =~ relevant_line_pattern
|
|
27
|
-
"%-#{lhs_len}s%#{rhs_len}s %s" % [$1, $2, $3.strip]
|
|
28
|
-
else
|
|
29
|
-
line
|
|
30
|
-
end
|
|
31
|
-
end.join("\n")
|
|
9
|
+
doc.expand_selection_to_full_lines
|
|
10
|
+
doc.replace_selection(&AlignAssignmentCommand.method(:align))
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def self.align(text)
|
|
14
|
+
# get max left-hand and right-hand sides in 1 pass
|
|
15
|
+
lengths = text.lines.map do |line|
|
|
16
|
+
[line =~ OPERATORS || -1, $1 && $1.size || -1]
|
|
32
17
|
end
|
|
18
|
+
|
|
19
|
+
lhs_len = lengths.reduce(0) { |memo, len| len.first > memo ? len.first : memo }
|
|
20
|
+
rhs_len = lengths.reduce(0) { |memo, len| len.last > memo ? len.last : memo }
|
|
21
|
+
|
|
22
|
+
# now replace the first token of the relevant lines
|
|
23
|
+
text.lines.map do |line|
|
|
24
|
+
line.chomp!
|
|
25
|
+
if line =~ RELEVANT_LINE_PATTERN
|
|
26
|
+
"%-#{lhs_len}s%#{rhs_len}s %s" % [$1, $2, $3.strip]
|
|
27
|
+
else
|
|
28
|
+
line
|
|
29
|
+
end
|
|
30
|
+
end.join("\n")
|
|
33
31
|
end
|
|
34
32
|
|
|
35
|
-
def
|
|
33
|
+
def adjust_selection_to_full_lines(start_offset, end_offset)
|
|
36
34
|
#are the selections in the right order?
|
|
37
35
|
if start_offset > end_offset
|
|
38
36
|
end_offset, start_offset = start_offset, end_offset
|
|
39
37
|
end
|
|
40
38
|
|
|
41
39
|
start_index = doc.line_at_offset(start_offset)
|
|
42
|
-
end_index
|
|
40
|
+
end_index = doc.line_at_offset(end_offset)
|
|
43
41
|
|
|
44
|
-
#is the selection of the last line empty?
|
|
42
|
+
# is the selection of the last line empty?
|
|
45
43
|
if end_offset == doc.offset_at_line(end_index)
|
|
46
44
|
end_index -= 1
|
|
47
45
|
end
|
|
48
46
|
|
|
49
47
|
start_offset = doc.offset_at_line(start_index)
|
|
50
48
|
end_offset = doc.offset_at_inner_end_of_line(end_index)
|
|
51
|
-
|
|
49
|
+
|
|
50
|
+
doc.set_selection_range(start_offset, end_offset)
|
|
52
51
|
end
|
|
53
52
|
end
|
|
54
53
|
end
|
|
@@ -475,6 +475,29 @@ module Redcar
|
|
|
475
475
|
def select_all
|
|
476
476
|
set_selection_range(length, 0)
|
|
477
477
|
end
|
|
478
|
+
|
|
479
|
+
# Ensures the selection runs from the start of a line to the end of that
|
|
480
|
+
# or another line, by widening it.
|
|
481
|
+
def expand_selection_to_full_lines
|
|
482
|
+
#are the selections in the right order?
|
|
483
|
+
start_offset, end_offset = cursor_offset, selection_offset
|
|
484
|
+
if start_offset > end_offset
|
|
485
|
+
end_offset, start_offset = start_offset, end_offset
|
|
486
|
+
end
|
|
487
|
+
|
|
488
|
+
start_index = line_at_offset(start_offset)
|
|
489
|
+
end_index = line_at_offset(end_offset)
|
|
490
|
+
|
|
491
|
+
# is the selection of the last line empty?
|
|
492
|
+
if end_offset == offset_at_line(end_index)
|
|
493
|
+
end_index -= 1
|
|
494
|
+
end
|
|
495
|
+
|
|
496
|
+
start_offset = offset_at_line(start_index)
|
|
497
|
+
end_offset = offset_at_inner_end_of_line(end_index)
|
|
498
|
+
|
|
499
|
+
set_selection_range(start_offset, end_offset)
|
|
500
|
+
end
|
|
478
501
|
|
|
479
502
|
# Get the text selected by the user. If no text is selected
|
|
480
503
|
# returns "".
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
require "spec_helper"
|
|
2
|
+
|
|
3
|
+
describe Redcar::EditView::AlignAssignmentCommand do
|
|
4
|
+
|
|
5
|
+
def check(starting, expected)
|
|
6
|
+
Redcar::EditView::AlignAssignmentCommand.align(starting.chomp).should == (expected).chomp
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
it "should align simple assignments" do
|
|
10
|
+
check(<<-END, <<-END2)
|
|
11
|
+
a = 4
|
|
12
|
+
bc = 5
|
|
13
|
+
d = 123
|
|
14
|
+
END
|
|
15
|
+
a = 4
|
|
16
|
+
bc = 5
|
|
17
|
+
d = 123
|
|
18
|
+
END2
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it "should align simple indented assignments" do
|
|
22
|
+
check(<<-END, <<-END2)
|
|
23
|
+
a = 4
|
|
24
|
+
bc = 5
|
|
25
|
+
d = 123
|
|
26
|
+
END
|
|
27
|
+
a = 4
|
|
28
|
+
bc = 5
|
|
29
|
+
d = 123
|
|
30
|
+
END2
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it "should align rows that have empty lines" do
|
|
34
|
+
check(<<-END, <<-END2)
|
|
35
|
+
a = 1
|
|
36
|
+
|
|
37
|
+
ab = 123
|
|
38
|
+
END
|
|
39
|
+
a = 1
|
|
40
|
+
|
|
41
|
+
ab = 123
|
|
42
|
+
END2
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
it "should align the right hand side" do
|
|
46
|
+
check(<<-END, <<-END2)
|
|
47
|
+
a = 1
|
|
48
|
+
bb = 2
|
|
49
|
+
ccc = 3
|
|
50
|
+
END
|
|
51
|
+
a = 1
|
|
52
|
+
bb = 2
|
|
53
|
+
ccc = 3
|
|
54
|
+
END2
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
it "should align different length operators" do
|
|
58
|
+
check(<<-END, <<-END2)
|
|
59
|
+
Integer === 1
|
|
60
|
+
two =~ /2/
|
|
61
|
+
@three||= 3333
|
|
62
|
+
bits &= 0b101010
|
|
63
|
+
END
|
|
64
|
+
Integer === 1
|
|
65
|
+
two =~ /2/
|
|
66
|
+
@three ||= 3333
|
|
67
|
+
bits &= 0b101010
|
|
68
|
+
END2
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
it "should align hashrockets" do
|
|
72
|
+
check(<<-END, <<-END2)
|
|
73
|
+
{:one => 1,
|
|
74
|
+
:two => 22,
|
|
75
|
+
:threee => 333}
|
|
76
|
+
END
|
|
77
|
+
{:one => 1,
|
|
78
|
+
:two => 22,
|
|
79
|
+
:threee => 333}
|
|
80
|
+
END2
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<html
|
|
1
|
+
<html>I see you!</html>
|
|
@@ -3,18 +3,13 @@ Then /^the HTML tab (should (not )?say|says) "([^"]*)"$/ do |_, negation, needle
|
|
|
3
3
|
contents = nil
|
|
4
4
|
started = false
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
contents = get_browser_contents
|
|
10
|
-
|
|
11
|
-
contents = get_browser_contents
|
|
12
|
-
sleep 0.1
|
|
13
|
-
end
|
|
6
|
+
start = Time.now
|
|
7
|
+
contents = Swt.sync_exec { get_browser_contents }
|
|
8
|
+
while !contents or (contents and !contents.match(needle)) && Time.now - start < limit
|
|
9
|
+
contents = Swt.sync_exec { get_browser_contents }
|
|
10
|
+
sleep 0.1
|
|
14
11
|
end
|
|
15
12
|
|
|
16
|
-
Redcar.gui.yield_until { started && !thread.alive? }
|
|
17
|
-
|
|
18
13
|
# For now, just skip on XUL platforms on which we can't get browser exec results
|
|
19
14
|
# (current version of SWT and XulRunner). More info at:
|
|
20
15
|
# https://bugs.eclipse.org/bugs/show_bug.cgi?id=259687
|
|
@@ -24,41 +19,47 @@ Then /^the HTML tab (should (not )?say|says) "([^"]*)"$/ do |_, negation, needle
|
|
|
24
19
|
end
|
|
25
20
|
|
|
26
21
|
When /^I click "([^\"]+)" in the HTML tab$/ do |link|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (typeof(link) !== "undefined") {
|
|
42
|
-
if (document.createEvent) {
|
|
43
|
-
evt = document.createEvent("MouseEvents");
|
|
44
|
-
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
|
45
|
-
cancelled = !link.dispatchEvent(evt);
|
|
46
|
-
} else if (link.fireEvent) {
|
|
47
|
-
cancelled = !link.fireEvent("onclick");
|
|
22
|
+
Swt.sync_exec do
|
|
23
|
+
html_view = focussed_tab.html_view
|
|
24
|
+
# The JQuery way doesn't seem to work - I'm getting errors with this:
|
|
25
|
+
# => html_view.controller.execute(%{ $("a:contains(#{link.gsub('"', '\"')})").click(); })
|
|
26
|
+
# So, click the link the old-fashioned way.
|
|
27
|
+
js = <<-JAVASCRIPT
|
|
28
|
+
var link, evt, links, cancelled, i;
|
|
29
|
+
links = document.getElementsByTagName("a");
|
|
30
|
+
for (i = 0; i < links.length; i++) {
|
|
31
|
+
if (links[i].innerHTML.search(#{link.inspect}) > -1) {
|
|
32
|
+
link = links[i];
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
48
35
|
}
|
|
49
|
-
|
|
50
|
-
|
|
36
|
+
|
|
37
|
+
if (typeof(link) !== "undefined") {
|
|
38
|
+
if (document.createEvent) {
|
|
39
|
+
evt = document.createEvent("MouseEvents");
|
|
40
|
+
evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
|
|
41
|
+
cancelled = !link.dispatchEvent(evt);
|
|
42
|
+
} else if (link.fireEvent) {
|
|
43
|
+
cancelled = !link.fireEvent("onclick");
|
|
44
|
+
}
|
|
45
|
+
if (!cancelled) {
|
|
46
|
+
window.location = link.href;
|
|
47
|
+
}
|
|
51
48
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
JAVASCRIPT
|
|
50
|
+
|
|
51
|
+
html_view.controller.execute(js)
|
|
52
|
+
end
|
|
56
53
|
end
|
|
57
54
|
|
|
58
55
|
When /^I open the browser bar$/ do
|
|
59
|
-
|
|
56
|
+
Swt.sync_exec do
|
|
57
|
+
Redcar::HtmlView::ToggleBrowserBar.new.run
|
|
58
|
+
end
|
|
60
59
|
end
|
|
61
60
|
|
|
62
61
|
When /^I open a web preview$/ do
|
|
63
|
-
|
|
62
|
+
Swt.sync_exec do
|
|
63
|
+
Redcar::HtmlView::ViewFileInWebBrowserCommand.new.run
|
|
64
|
+
end
|
|
64
65
|
end
|
|
@@ -41,23 +41,25 @@ Feature: Syntax Checking for Java
|
|
|
41
41
|
Then the tab should have annotations
|
|
42
42
|
And the tab should have an annotation on line 2
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
44
|
+
# NOT without groovy it can't.
|
|
45
|
+
# TODO: remove java plugins dependency on groovy plugin, then uncomment these
|
|
46
|
+
# Scenario: A project can add libraries and compiled class directories to the java classpath
|
|
47
|
+
# When I will choose "plugins/java/features/fixtures" from the "open_directory" dialog
|
|
48
|
+
# And I open a directory
|
|
49
|
+
# And I replace the contents with "class Foo {\n Bar x = new Bar(10);\n FooBar y = new FooBar();\n}"
|
|
50
|
+
# And I save the tab
|
|
51
|
+
# And I wait "2.5" seconds
|
|
52
|
+
# Then the tab should not have annotations
|
|
51
53
|
|
|
52
|
-
Scenario: If a project classpath.java file has syntax errors, there should be an error message and annotations
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
# Scenario: If a project classpath.java file has syntax errors, there should be an error message and annotations
|
|
55
|
+
# And I close the focussed tab
|
|
56
|
+
# Given I have not suppressed syntax checking message dialogs
|
|
57
|
+
# When I will choose "plugins/java/features/fixtures" from the "open_directory" dialog
|
|
58
|
+
# And I open a directory
|
|
59
|
+
# And I have opened "plugins/java/features/fixtures/.redcar/classpath.groovy"
|
|
60
|
+
# And I replace the contents with "def x = 4\nsdef"
|
|
61
|
+
# And I save the tab
|
|
62
|
+
# Then I should see a message box containing "An error occurred while loading classpath file"
|
|
61
63
|
|
|
62
64
|
Scenario: If an error occurs while parsing a java file, there should be an error message
|
|
63
65
|
Given I have not suppressed syntax checking message dialogs
|
|
@@ -1,23 +1,35 @@
|
|
|
1
1
|
When /^I kill the line$/ do
|
|
2
|
-
|
|
2
|
+
Swt.sync_exec do
|
|
3
|
+
Redcar::LineTools::KillLineCommand.new.run(:env => {:edit_view => implicit_edit_view})
|
|
4
|
+
end
|
|
3
5
|
end
|
|
4
6
|
|
|
5
7
|
When /^I trim the line$/ do
|
|
6
|
-
|
|
8
|
+
Swt.sync_exec do
|
|
9
|
+
Redcar::LineTools::TrimLineAfterCursorCommand.new.run(:env => {:edit_view => implicit_edit_view})
|
|
10
|
+
end
|
|
7
11
|
end
|
|
8
12
|
|
|
9
13
|
When /^I lower the text$/ do
|
|
10
|
-
|
|
14
|
+
Swt.sync_exec do
|
|
15
|
+
Redcar::LineTools::LowerTextCommand.new.run(:env => {:edit_view => implicit_edit_view})
|
|
16
|
+
end
|
|
11
17
|
end
|
|
12
18
|
|
|
13
19
|
When /^I raise the text$/ do
|
|
14
|
-
|
|
20
|
+
Swt.sync_exec do
|
|
21
|
+
Redcar::LineTools::RaiseTextCommand.new.run(:env => {:edit_view => implicit_edit_view})
|
|
22
|
+
end
|
|
15
23
|
end
|
|
16
24
|
|
|
17
25
|
When /^I replace the line$/ do
|
|
18
|
-
|
|
26
|
+
Swt.sync_exec do
|
|
27
|
+
Redcar::LineTools::ReplaceLineCommand.new.run(:env => {:edit_view => implicit_edit_view})
|
|
28
|
+
end
|
|
19
29
|
end
|
|
20
30
|
|
|
21
31
|
When /^I clear the line$/ do
|
|
22
|
-
|
|
32
|
+
Swt.sync_exec do
|
|
33
|
+
Redcar::LineTools::ClearLineCommand.new.run(:env => {:edit_view => implicit_edit_view})
|
|
34
|
+
end
|
|
23
35
|
end
|