redcar 0.8.1 → 0.9.0
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 +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
data/CHANGES
CHANGED
|
@@ -1,9 +1,49 @@
|
|
|
1
|
+
Version 0.9 (25 November 2010)
|
|
2
|
+
==============================
|
|
3
|
+
|
|
4
|
+
Enhancements:
|
|
5
|
+
|
|
6
|
+
* Vertical tree tabs now have a close button like edit view tabs (Tim Felgentreff)
|
|
7
|
+
* Strip Trailing Spaces is now _much_ faster (Tim Felgentreff)
|
|
8
|
+
* "Online Help" and "Submit a Bug" open the default system browser (Johannes Wollert)
|
|
9
|
+
* -l command line switch to jump to a file number (Johannes Wollert)
|
|
10
|
+
* Font and Theme dialogs now update the setting on selection change for instant feedback (Tim Felgentreff)
|
|
11
|
+
* Tabs now display an alert icon if the underlying file is unwritable (Delisa Mason)
|
|
12
|
+
* Browser bar URL field now supports project-relative paths (Delisa Mason)
|
|
13
|
+
* URLs can be opened in the internal browser or the OS-default based on preferences (Delisa Mason)
|
|
14
|
+
* Syntax checking for Groovy (Delisa Mason)
|
|
15
|
+
* Jump to declaration for Groovy (Delisa Mason)
|
|
16
|
+
* Margin is drawn with a line or a shaded area (Tim Felgentreff)
|
|
17
|
+
* Syntax checking for JavaScript (Delisa Mason)
|
|
18
|
+
* Word wrap wraps at the margin column (Daniel Lucraft)
|
|
19
|
+
* Improvements and optimizations to replace-all function (Tim Felgentreff)
|
|
20
|
+
* .redcar plugins dir is created on startup to help people know they can put plugins there (Philip Arndt)
|
|
21
|
+
* Add jruby jar to JVM bootclasspath to speedup startup marginally (Tim Felgentreff)
|
|
22
|
+
|
|
23
|
+
Bug fixes:
|
|
24
|
+
|
|
25
|
+
* Declarations plugin is able to deal with similarly named ruby methods
|
|
26
|
+
* Declarations plugin lets Ruby methods have trailing spaces (Johannes Wollert)
|
|
27
|
+
* Fix Application::Dialog#tool_tip to set the location correctly on Windows (Patrik Sundberg)
|
|
28
|
+
* 64bit Soylatte JDK7 can now be used to run Redcar on Mac OS X
|
|
29
|
+
* Run Tab now checks for underlying file (Delisa Mason)
|
|
30
|
+
* Hovering on annotations only displays the tooltip(s) under the cursor, not all of them (Delisa Mason)
|
|
31
|
+
* Fix for installing on Ruby 1.8.6 (Dan Lucraft)
|
|
32
|
+
* Connection manager should not try and read directories and unreadable files when looking for private keys (Antono Vasiljev)
|
|
33
|
+
* Required cucumber version is specified in the Gemfile (Tianyi Cui)
|
|
34
|
+
* Pair highlighter works on first and last character in the document (Kirill Nikitin)
|
|
35
|
+
|
|
36
|
+
Internal changes:
|
|
37
|
+
|
|
38
|
+
* Code coverage is above 70% (up from 60%) (everyone)
|
|
39
|
+
* Code cleanup and refactoring in various plugins (everyone)
|
|
40
|
+
* Speedbar can now contain sliders (Tim Felgentreff)
|
|
1
41
|
|
|
2
42
|
Version 0.8.1 (26 October 2010)
|
|
3
43
|
===============================
|
|
4
44
|
|
|
5
|
-
* Remove files with multi-byte names from the gem so windows rubygems is happy (Dan Lucraft)
|
|
6
45
|
* Replace all is a single undo operation (Steven Hancock)
|
|
46
|
+
* Remove files with multi-byte names from the gem so windows rubygems is happy (Dan Lucraft)
|
|
7
47
|
|
|
8
48
|
Version 0.8 (26 October 2010)
|
|
9
49
|
=============================
|
data/README.md
CHANGED
|
@@ -58,7 +58,7 @@ If you are running a source version of Redcar and you have pulled changes from m
|
|
|
58
58
|
|
|
59
59
|
## TESTS
|
|
60
60
|
|
|
61
|
-
NB. Redcar features are known to work with Cucumber 0.
|
|
61
|
+
NB. Redcar features are known to work with Cucumber 0.9.2, and known NOT to work with Cucumber < 0.9
|
|
62
62
|
|
|
63
63
|
To run the tests you need JRuby installed. You also need rspec and cucumber installed as Jruby gems. See jruby.org for this, or install with rvm.
|
|
64
64
|
|
data/Rakefile
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
REDCAR_VERSION = "0.
|
|
1
|
+
REDCAR_VERSION = "0.9.0" # also change in lib/redcar.rb!
|
|
2
2
|
require 'rubygems'
|
|
3
3
|
require 'fileutils'
|
|
4
4
|
require 'spec/rake/spectask'
|
|
@@ -56,7 +56,7 @@ def find_ci_reporter(filename)
|
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
def rcov_run(cmd, opts)
|
|
59
|
-
cmd = %{rcov --aggregate #{COVERAGE_DATA} -x "features/,spec/,vendor/,openssl/,yaml/,json/,yaml,gems,file:,(eval),(__FORWARDABLE__)" #{cmd} -- #{opts}}
|
|
59
|
+
cmd = %{rcov --aggregate #{COVERAGE_DATA} -x "jsignal_internal,(erb),features/,spec/,vendor/,openssl/,yaml/,json/,yaml,gems,file:,(eval),(__FORWARDABLE__)" #{cmd} -- #{opts}}
|
|
60
60
|
jruby_run(cmd)
|
|
61
61
|
end
|
|
62
62
|
|
|
@@ -96,10 +96,8 @@ end
|
|
|
96
96
|
desc "Run features"
|
|
97
97
|
task :cucumber do
|
|
98
98
|
cmd = "jruby "
|
|
99
|
-
if Config::CONFIG["host_os"] == "darwin"
|
|
100
|
-
|
|
101
|
-
end
|
|
102
|
-
cmd += "bin/cucumber -cf progress"
|
|
99
|
+
cmd << "-J-XstartOnFirstThread " if Config::CONFIG["host_os"] == "darwin"
|
|
100
|
+
cmd << "bin/cucumber -cf progress"
|
|
103
101
|
Dir["plugins/*/features"].each do |f|
|
|
104
102
|
sh("#{cmd} #{f} && echo 'done'")
|
|
105
103
|
end
|
|
@@ -230,6 +228,7 @@ task :release => :gem do
|
|
|
230
228
|
}
|
|
231
229
|
|
|
232
230
|
s3_uploads.each do |source, target|
|
|
231
|
+
puts [source, target]
|
|
233
232
|
AWS::S3::S3Object.store(target, open(source), 'redcar', :access => :public_read)
|
|
234
233
|
end
|
|
235
234
|
end
|
|
@@ -120,8 +120,6 @@ class PluginManager
|
|
|
120
120
|
@plugins.select {|pl| pl.name == name }.sort_by {|pl| pl.version }.last
|
|
121
121
|
end
|
|
122
122
|
|
|
123
|
-
private
|
|
124
|
-
|
|
125
123
|
def load_plugin(plugin)
|
|
126
124
|
begin
|
|
127
125
|
@output.puts "[PluginManager] loading #{plugin.name}" if ENV["PLUGIN_DEBUG"]
|
|
@@ -143,6 +141,7 @@ class PluginManager
|
|
|
143
141
|
while ready_plugin = @unloaded_plugins.detect {|pl| pl.dependencies.all? {|dep| dep.satisfied? }}
|
|
144
142
|
load_plugin(ready_plugin)
|
|
145
143
|
end
|
|
144
|
+
@load_observer = nil # After loading all possible plugins, remove the load observer
|
|
146
145
|
end
|
|
147
146
|
|
|
148
147
|
def expand_dependencies(dependency_array)
|
data/lib/redcar.rb
CHANGED
|
@@ -51,10 +51,10 @@ end
|
|
|
51
51
|
#
|
|
52
52
|
# and so on.
|
|
53
53
|
module Redcar
|
|
54
|
-
VERSION = '0.
|
|
54
|
+
VERSION = '0.9.0' # also change in the Rakefile!
|
|
55
55
|
VERSION_MAJOR = 0
|
|
56
|
-
VERSION_MINOR =
|
|
57
|
-
VERSION_RELEASE =
|
|
56
|
+
VERSION_MINOR = 9
|
|
57
|
+
VERSION_RELEASE = 0
|
|
58
58
|
|
|
59
59
|
ENVIRONMENTS = [:user, :debug, :test]
|
|
60
60
|
|
|
@@ -87,12 +87,16 @@ module Redcar
|
|
|
87
87
|
def self.plugin_manager
|
|
88
88
|
@plugin_manager ||= begin
|
|
89
89
|
m = PluginManager.new
|
|
90
|
-
m
|
|
91
|
-
m.add_plugin_source(File.join(user_dir, "plugins"))
|
|
90
|
+
add_plugin_sources(m)
|
|
92
91
|
m
|
|
93
92
|
end
|
|
94
93
|
end
|
|
95
94
|
|
|
95
|
+
def self.add_plugin_sources(manager)
|
|
96
|
+
manager.add_plugin_source(File.join(root, "plugins"))
|
|
97
|
+
manager.add_plugin_source(File.join(user_dir, "plugins"))
|
|
98
|
+
end
|
|
99
|
+
|
|
96
100
|
def self.load_prerequisites
|
|
97
101
|
exit if ARGV.include?("--quit-immediately")
|
|
98
102
|
|
|
@@ -201,17 +205,18 @@ module Redcar
|
|
|
201
205
|
#
|
|
202
206
|
# @return [String] expanded path
|
|
203
207
|
def self.home_dir
|
|
204
|
-
@userdir ||=
|
|
205
|
-
arg
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
208
|
+
@userdir ||= begin
|
|
209
|
+
if arg = ARGV.map {|v| v[/^--home-dir=(.*)/, 1] }.compact.first
|
|
210
|
+
File.expand_path(arg)
|
|
211
|
+
elsif platform == :windows
|
|
212
|
+
if ENV['USERPROFILE'].nil?
|
|
213
|
+
"C:/My Documents/"
|
|
214
|
+
else
|
|
215
|
+
ENV['USERPROFILE']
|
|
216
|
+
end
|
|
210
217
|
else
|
|
211
|
-
ENV['
|
|
218
|
+
ENV['HOME'] unless ENV['HOME'].nil?
|
|
212
219
|
end
|
|
213
|
-
else
|
|
214
|
-
ENV['HOME'] unless ENV['HOME'].nil?
|
|
215
220
|
end
|
|
216
221
|
end
|
|
217
222
|
|
data/lib/redcar/installer.rb
CHANGED
|
@@ -18,24 +18,25 @@ module Redcar
|
|
|
18
18
|
end
|
|
19
19
|
puts "found latest XULRunner release version: #{xulrunner_version}" if Redcar.platform == :windows
|
|
20
20
|
end
|
|
21
|
-
|
|
21
|
+
|
|
22
22
|
def install
|
|
23
23
|
Redcar.environment = :user
|
|
24
24
|
puts "Downloading >10MB of binary assets. This may take a while the first time."
|
|
25
25
|
fetch_all_assets
|
|
26
26
|
precache_textmate_bundles
|
|
27
|
+
ensure_user_plugins_directory_exists
|
|
27
28
|
puts "Done! You're ready to run Redcar."
|
|
28
29
|
end
|
|
29
|
-
|
|
30
|
+
|
|
30
31
|
def plugins_dir
|
|
31
32
|
File.expand_path(File.join(File.dirname(__FILE__), %w(.. .. plugins)))
|
|
32
33
|
end
|
|
33
|
-
|
|
34
|
+
|
|
34
35
|
def fetch_all_assets
|
|
35
36
|
assets = assets_by_platform[:all].merge(assets_by_platform[Redcar.platform])
|
|
36
37
|
assets.each {|source, target| fetch_asset(source, target) }
|
|
37
38
|
end
|
|
38
|
-
|
|
39
|
+
|
|
39
40
|
def assets_by_platform
|
|
40
41
|
{ :all => {
|
|
41
42
|
"http://jruby.org.s3.amazonaws.com/downloads/1.5.3/jruby-complete-1.5.3.jar" => "/jruby-complete-1.5.3.jar",
|
|
@@ -61,7 +62,8 @@ module Redcar
|
|
|
61
62
|
"http://redcar.s3.amazonaws.com/clojure-contrib-1.2beta1.jar" => "/clojure-contrib.jar",
|
|
62
63
|
"http://redcar.s3.amazonaws.com/org-enclojure-repl-server.jar" => nil,
|
|
63
64
|
"http://mirrors.ibiblio.org/pub/mirrors/maven2/org/codehaus/groovy/groovy-all/1.7.4/groovy-all-1.7.4.jar" => "/groovy-all.jar",
|
|
64
|
-
"http://mirrors.ibiblio.org/pub/mirrors/maven2/org/tmatesoft/svnkit/svnkit/1.3.4/svnkit-1.3.4.jar" => "/svnkit.jar"
|
|
65
|
+
"http://mirrors.ibiblio.org/pub/mirrors/maven2/org/tmatesoft/svnkit/svnkit/1.3.4/svnkit-1.3.4.jar" => "/svnkit.jar",
|
|
66
|
+
"http://mirrors.ibiblio.org/pub/mirrors/maven2/rhino/js/1.7R2/js-1.7R2.jar" => "/js.jar"
|
|
65
67
|
},
|
|
66
68
|
:windows => {
|
|
67
69
|
"http://releases.mozilla.org/pub/mozilla.org/xulrunner/releases/#{xulrunner_version}/runtimes/xulrunner-#{xulrunner_version}.en-US.win32.zip" => "xulrunner-#{xulrunner_version}.en-US.win32.zip",
|
|
@@ -77,7 +79,7 @@ module Redcar
|
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
81
|
end
|
|
80
|
-
|
|
82
|
+
|
|
81
83
|
def fetch_asset(source, target)
|
|
82
84
|
relative_target = target || implicit_target(source)
|
|
83
85
|
absolute_target = File.join(Redcar.asset_dir, relative_target)
|
|
@@ -85,11 +87,11 @@ module Redcar
|
|
|
85
87
|
download_file_to(source, absolute_target)
|
|
86
88
|
unzip_file(absolute_target) if absolute_target =~ /\.zip$/
|
|
87
89
|
end
|
|
88
|
-
|
|
90
|
+
|
|
89
91
|
def implicit_target(source)
|
|
90
92
|
URI.parse(source).path.gsub(/^\//, "")
|
|
91
93
|
end
|
|
92
|
-
|
|
94
|
+
|
|
93
95
|
def download_file_to(uri, destination_file)
|
|
94
96
|
print " downloading #{uri}... "; $stdout.flush
|
|
95
97
|
temporary_target = destination_file + ".part"
|
|
@@ -97,18 +99,18 @@ module Redcar
|
|
|
97
99
|
File.open(temporary_target, "wb") do |write_out|
|
|
98
100
|
write_out.print @connection.get(URI.parse(uri))
|
|
99
101
|
end
|
|
100
|
-
|
|
102
|
+
|
|
101
103
|
if File.open(temporary_target).read(200) =~ /Access Denied/
|
|
102
104
|
puts "\n\n*** Error downloading #{uri}, got Access Denied from S3."
|
|
103
105
|
FileUtils.rm_rf(temporary_target)
|
|
104
106
|
exit
|
|
105
107
|
end
|
|
106
|
-
|
|
108
|
+
|
|
107
109
|
FileUtils.cp(temporary_target, destination_file)
|
|
108
110
|
FileUtils.rm_rf(temporary_target)
|
|
109
111
|
puts "done!"
|
|
110
112
|
end
|
|
111
|
-
|
|
113
|
+
|
|
112
114
|
# unzip a .zip file into the directory it is located
|
|
113
115
|
def unzip_file(path)
|
|
114
116
|
print "unzipping #{path}..."; $stdout.flush
|
|
@@ -125,15 +127,19 @@ module Redcar
|
|
|
125
127
|
end
|
|
126
128
|
end
|
|
127
129
|
end
|
|
128
|
-
|
|
130
|
+
|
|
129
131
|
def precache_textmate_bundles
|
|
130
132
|
puts "Precaching textmate bundles..."
|
|
131
133
|
Runner.new.construct_command(["--no-gui", "--compute-textmate-cache-and-quit", "--multiple-instance"]) do |cmd|
|
|
132
134
|
%x{#{cmd.join(' ')}}
|
|
133
135
|
end
|
|
134
136
|
end
|
|
135
|
-
|
|
136
|
-
|
|
137
|
+
|
|
138
|
+
def ensure_user_plugins_directory_exists
|
|
139
|
+
FileUtils.mkpath File.join(Redcar.user_dir, 'plugins')
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
# Xulrunner releases don't hang around very long, so we scrape their site to figure out
|
|
137
143
|
# which one to download this time.
|
|
138
144
|
def xulrunner_version
|
|
139
145
|
@xulrunner_version ||= begin
|
|
@@ -142,6 +148,4 @@ module Redcar
|
|
|
142
148
|
end
|
|
143
149
|
end
|
|
144
150
|
end
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
|
|
151
|
+
end
|
data/lib/redcar/runner.rb
CHANGED
|
@@ -67,7 +67,8 @@ module Redcar
|
|
|
67
67
|
# unfortuanately, ruby doesn't support [a, *b, c]
|
|
68
68
|
command = ["java"]
|
|
69
69
|
command.push(*java_args)
|
|
70
|
-
command.push("-
|
|
70
|
+
command.push("-Xbootclasspath/a:#{jruby_complete}")
|
|
71
|
+
command.push("-Xmx320m", "-Xss1024k", "-Djruby.memory.max=320m", "-Djruby.stack.max=1024k", "org.jruby.Main")
|
|
71
72
|
command.push "--debug" if debug_mode?
|
|
72
73
|
command.push(bin)
|
|
73
74
|
command.push(*cleaned_args)
|
|
@@ -105,14 +106,16 @@ module Redcar
|
|
|
105
106
|
str.push "-Djruby.debug.loadService.timing=true"
|
|
106
107
|
end
|
|
107
108
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
jvm_options_probe = JvmOptionsProbe.new
|
|
111
|
-
|
|
112
|
-
str.push "-d32" if jvm_options_probe.can_use_d32?
|
|
113
|
-
str.push "-client" if jvm_options_probe.can_use_client?
|
|
109
|
+
str.push "-d32" if JvmOptionsProbe::D32
|
|
110
|
+
str.push "-client" if JvmOptionsProbe::Client
|
|
114
111
|
|
|
115
112
|
str
|
|
116
113
|
end
|
|
114
|
+
|
|
115
|
+
class JvmOptionsProbe
|
|
116
|
+
Redirect = "> #{Redcar.null_device} 2>&1"
|
|
117
|
+
D32 = system("java -d32 #{Redirect}")
|
|
118
|
+
Client = system("java -client #{Redirect}")
|
|
119
|
+
end
|
|
117
120
|
end
|
|
118
121
|
end
|
data/lib/redcar/usage.rb
CHANGED
|
@@ -27,6 +27,7 @@ module Redcar
|
|
|
27
27
|
puts " --no-window Don't force opening a window on Redcar startup"
|
|
28
28
|
puts " --home-dir=PATH Use the specified directory as Redcar home directory"
|
|
29
29
|
puts " -w Open the specified files and wait until they are closed"
|
|
30
|
+
puts " -l[NUMBER] Open a specified file at line NUMBER. Multiple comma-seperated args for multiple files are allowed."
|
|
30
31
|
#puts "To associate with right click in windows explorer:"
|
|
31
32
|
#puts
|
|
32
33
|
#puts " C:> redcar --associate_with_any_right_click"
|
data/lib/redcar_quick_start.rb
CHANGED
|
@@ -4,7 +4,7 @@ require 'rbconfig'
|
|
|
4
4
|
module Redcar
|
|
5
5
|
DRB_PORT = 10021
|
|
6
6
|
DONT_READ_STDIN_ARG = "--ignore-stdin"
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
def self.read_stdin
|
|
9
9
|
if not $stdin.tty? and not ARGV.include?(DONT_READ_STDIN_ARG)
|
|
10
10
|
data = ""
|
|
@@ -14,7 +14,7 @@ module Redcar
|
|
|
14
14
|
# retry
|
|
15
15
|
rescue EOFError
|
|
16
16
|
end
|
|
17
|
-
|
|
17
|
+
|
|
18
18
|
if data.size > 0
|
|
19
19
|
require 'tmpdir'
|
|
20
20
|
file = File.join(Dir.tmpdir, "tmp#{$$}.txt")
|
|
@@ -23,21 +23,21 @@ module Redcar
|
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
def self.try_to_load_via_drb
|
|
28
28
|
return if ARGV.find {|arg| arg == "--multiple-instance" || arg == '--help' || arg == '-h'}
|
|
29
29
|
begin
|
|
30
30
|
begin
|
|
31
31
|
TCPSocket.new('127.0.0.1', DRB_PORT).close
|
|
32
|
-
rescue Errno::ECONNREFUSED
|
|
32
|
+
rescue Errno::ECONNREFUSED
|
|
33
33
|
# no other instance is currently running...
|
|
34
34
|
return
|
|
35
35
|
end
|
|
36
36
|
puts 'attempting to start via running instance' if $VERBOSE
|
|
37
|
-
|
|
37
|
+
|
|
38
38
|
require 'drb' # late require to avoid loadup time
|
|
39
39
|
drb = DRbObject.new(nil, "druby://127.0.0.1:#{DRB_PORT}")
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
if ARGV.any?
|
|
42
42
|
ARGV.each do |arg|
|
|
43
43
|
if arg =~ /--untitled-file=(.*)/
|
|
@@ -47,11 +47,7 @@ module Redcar
|
|
|
47
47
|
path = File.expand_path(arg)
|
|
48
48
|
end
|
|
49
49
|
next unless path
|
|
50
|
-
|
|
51
|
-
drb_answer = drb.open_file_and_wait(path, untitled)
|
|
52
|
-
else
|
|
53
|
-
drb_answer = drb.open_item_drb(path, untitled)
|
|
54
|
-
end
|
|
50
|
+
drb_answer = drb.open_item_drb(path, untitled, ARGV.include?("-w"))
|
|
55
51
|
return unless drb_answer == 'ok'
|
|
56
52
|
end
|
|
57
53
|
else
|
|
@@ -79,7 +75,7 @@ module Redcar
|
|
|
79
75
|
:linux
|
|
80
76
|
end
|
|
81
77
|
end
|
|
82
|
-
|
|
78
|
+
|
|
83
79
|
def self.null_device
|
|
84
80
|
case platform
|
|
85
81
|
when :windows
|
data/lib/regex_replace.rb
CHANGED
|
@@ -45,12 +45,12 @@ class RegexReplace
|
|
|
45
45
|
while left.length > 0
|
|
46
46
|
md = re.match(left)
|
|
47
47
|
if md
|
|
48
|
-
newstr
|
|
48
|
+
newstr << md.pre_match
|
|
49
49
|
r = yield md
|
|
50
|
-
newstr
|
|
50
|
+
newstr << r
|
|
51
51
|
left = md.post_match
|
|
52
52
|
else
|
|
53
|
-
newstr
|
|
53
|
+
newstr << left
|
|
54
54
|
left = ""
|
|
55
55
|
end
|
|
56
56
|
end
|
|
@@ -31,3 +31,13 @@ Then /^the menu item "([^\"]*)\|([^\"]*)" should be (active|inactive)$/ do |menu
|
|
|
31
31
|
item.enabled.should be_false
|
|
32
32
|
end
|
|
33
33
|
end
|
|
34
|
+
|
|
35
|
+
When /^I (?:open the|click) "([^"]*)" from the "([^"]*)" menu$/ do |menu_item, menu_name|
|
|
36
|
+
menu_items = menu_name.split("/").inject(main_menu.get_items.to_a.dup) do |items, item_name|
|
|
37
|
+
m = items.detect {|i| i.text == item_name }
|
|
38
|
+
items = m.get_menu.get_items.to_a
|
|
39
|
+
end
|
|
40
|
+
item = menu_items.detect {|i| i.text.split("\t").first == menu_item }
|
|
41
|
+
FakeEvent.new(Swt::SWT::Selection, item)
|
|
42
|
+
end
|
|
43
|
+
|
|
@@ -58,5 +58,11 @@ Then /^"([^"]*)" should not be checked in the speedbar$/ do |checkbox_name|
|
|
|
58
58
|
item.value.should be_false
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
Then /^there should( not)? be an open speedbar$/ do |negate|
|
|
62
|
+
speedbar = Redcar.app.focussed_window.speedbar
|
|
63
|
+
if negate
|
|
64
|
+
speedbar.should == nil
|
|
65
|
+
else
|
|
66
|
+
speedbar.should_not == nil
|
|
67
|
+
end
|
|
68
|
+
end
|
|
@@ -10,6 +10,37 @@ When /^I toggle tree visibility$/ do
|
|
|
10
10
|
Redcar::Top::ToggleTreesCommand.new.run
|
|
11
11
|
end
|
|
12
12
|
|
|
13
|
+
When "I close the tree" do
|
|
14
|
+
Redcar::Top::CloseTreeCommand.new.run
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
When "I click the close button" do
|
|
18
|
+
vtabitem = focussed_window.treebook.controller.tab_folder.selection
|
|
19
|
+
swtlabel = swt_label_for_item(vtabitem)
|
|
20
|
+
|
|
21
|
+
# Make sure the close icon is showing
|
|
22
|
+
FakeEvent.new(Swt::SWT::MouseEnter, swtlabel)
|
|
23
|
+
|
|
24
|
+
# Fire the click event
|
|
25
|
+
FakeEvent.new(Swt::SWT::MouseUp, swtlabel,
|
|
26
|
+
:x => Swt::Widgets::VTabLabel::ICON_PADDING + 1,
|
|
27
|
+
:y => Swt::Widgets::VTabLabel::ICON_PADDING + 1)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
When /^I (?:(left|right)-)?click the (project|directory|"[^\"]*") tree tab$/ do |button, target|
|
|
31
|
+
if target =~ /(project|directory)/
|
|
32
|
+
path = Redcar::Project::Manager.in_window(Redcar.app.focussed_window).path
|
|
33
|
+
target = File.basename(path) + "/"
|
|
34
|
+
end
|
|
35
|
+
target.gsub!('"', '')
|
|
36
|
+
vtabitem = focussed_window.treebook.controller.tab_folder.get_item(target)
|
|
37
|
+
swtlabel = swt_label_for_item(vtabitem)
|
|
38
|
+
|
|
39
|
+
button = (button == "right" ? 2 : 1)
|
|
40
|
+
FakeEvent.new(Swt::SWT::MouseEnter, swtlabel)
|
|
41
|
+
FakeEvent.new(Swt::SWT::MouseUp, swtlabel, :x => 1, :y => 1, :button => button)
|
|
42
|
+
end
|
|
43
|
+
|
|
13
44
|
Then /^I should (not )?see "([^\"]*)" in the tree$/ do |negate, rows|
|
|
14
45
|
item_names = visible_tree_items(top_tree).map(&:get_text)
|
|
15
46
|
rows.split(',').map(&:strip).each do |row|
|
|
@@ -21,13 +52,24 @@ Then /^I should (not )?see "([^\"]*)" in the tree$/ do |negate, rows|
|
|
|
21
52
|
end
|
|
22
53
|
end
|
|
23
54
|
|
|
24
|
-
Then /^
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
55
|
+
Then /^there should (not )?be a tree titled "([^\"]*)"$/ do |negate,title|
|
|
56
|
+
if negate
|
|
57
|
+
tree_with_title(title).should == nil
|
|
58
|
+
else
|
|
59
|
+
tree_with_title(title).should_not == nil
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
Then /^the tree width should be (the default|\d+ pixels|the minimum size)$/ do |w|
|
|
64
|
+
width = focussed_treebook_width
|
|
65
|
+
if w == "the default"
|
|
66
|
+
unless width == default_treebook_width
|
|
67
|
+
raise "The tree width was #{width}, expected #{default_treebook_width}"
|
|
68
|
+
end
|
|
69
|
+
elsif w == "the minimum size"
|
|
70
|
+
width.should == Redcar::ApplicationSWT::Window::MINIMUM_TREEBOOK_WIDTH
|
|
28
71
|
else
|
|
29
|
-
|
|
30
|
-
raise "The tree width was #{width}, expected #{default}" unless width == default
|
|
72
|
+
width.should == w.split(" ")[0].to_i
|
|
31
73
|
end
|
|
32
74
|
end
|
|
33
75
|
|