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,16 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
3
|
+
<plist version="1.0">
|
4
|
+
<dict>
|
5
|
+
<key>name</key>
|
6
|
+
<string>Ruby Sass</string>
|
7
|
+
<key>contactEmailRot13</key>
|
8
|
+
<string>obo@fcbexzbatre.pbz</string>
|
9
|
+
<key>contactName</key>
|
10
|
+
<string>Bob Aman</string>
|
11
|
+
<key>description</key>
|
12
|
+
<string>Template language for easily creating CSS; implemented in ruby.</string>
|
13
|
+
<key>uuid</key>
|
14
|
+
<string>176253C8-5D97-4C20-AA34-3BE8BC73FBC9</string>
|
15
|
+
</dict>
|
16
|
+
</plist>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
Feature: Adding parameters to commands
|
2
|
+
As a user
|
3
|
+
I want to see what todo-items remain in my project
|
4
|
+
|
5
|
+
Background:
|
6
|
+
Given I will choose "plugins/todo_list/spec/fixtures/project" from the "open_directory" dialog
|
7
|
+
And I open a directory
|
8
|
+
When I open the "Todo List" from the "Project" menu
|
9
|
+
And I wait "2" seconds
|
10
|
+
|
11
|
+
Scenario: Opening the TODO list shows the todo items and their action texts without colons
|
12
|
+
Then the HTML tab should say "a course of action"
|
13
|
+
And the HTML tab should not say ": a course of action"
|
14
|
+
|
15
|
+
Scenario: Opening the TODO list shows the todo item's file names
|
16
|
+
Then the HTML tab should say "OPTIMIZE_colon.file"
|
17
|
+
And the HTML tab should say "FIXME.file"
|
18
|
+
|
19
|
+
Scenario: Opening the TODO list shows the todo item's line numbers
|
20
|
+
Then the HTML tab should say "OPTIMIZE_colon.file:1"
|
21
|
+
And the HTML tab should say "FIXME.file:3"
|
22
|
+
|
23
|
+
Scenario: Clicking a TODO item's file name should open it in an edit tab
|
24
|
+
When I click "FIXME.file" in the HTML tab
|
25
|
+
Then my active tab should be "FIXME.file"
|
26
|
+
And the contents should be "#\n#\n<c># FIXME note"
|
@@ -1,9 +1,11 @@
|
|
1
1
|
module Redcar
|
2
2
|
class TodoList
|
3
3
|
class FileParser
|
4
|
+
TodoItem = Struct.new("TodoItem", :path, :line, :action)
|
4
5
|
|
5
6
|
def initialize
|
6
|
-
@tag_list = {}
|
7
|
+
@tag_list = Hash.new {|h,k| h[k] = [] }
|
8
|
+
@optional_colon = ":" if TodoList.storage['require_colon']
|
7
9
|
end
|
8
10
|
|
9
11
|
def parse_files(path)
|
@@ -13,19 +15,18 @@ module Redcar
|
|
13
15
|
end
|
14
16
|
|
15
17
|
def find_dirs(path)
|
16
|
-
unless
|
17
|
-
|
18
|
-
|
19
|
-
end
|
18
|
+
return unless File.directory? path
|
19
|
+
unless TodoList.storage['excluded_dirs'].include? File.basename(path)
|
20
|
+
Dir["#{path}/*"].each {|subdir| find_dirs(subdir) }
|
20
21
|
find_files(path)
|
21
22
|
end
|
22
23
|
end
|
23
24
|
|
24
25
|
def find_files(path)
|
25
26
|
TodoList.storage['included_suffixes'].each do |suffix|
|
26
|
-
files = File.join(path
|
27
|
+
files = File.join(path, "*#{suffix}")
|
27
28
|
Dir.glob(files).each do |file_path|
|
28
|
-
unless TodoList.storage['excluded_files'].
|
29
|
+
unless TodoList.storage['excluded_files'].include?(File.basename(file_path))
|
29
30
|
find_tags(file_path)
|
30
31
|
end
|
31
32
|
end
|
@@ -33,20 +34,23 @@ module Redcar
|
|
33
34
|
end
|
34
35
|
|
35
36
|
def find_tags(file_path)
|
36
|
-
TodoList.storage['tags']
|
37
|
-
|
38
|
-
|
37
|
+
tags = TodoList.storage['tags']
|
38
|
+
File.open(file_path) do |file|
|
39
|
+
file.readlines.each_with_index do |line, idx|
|
40
|
+
included_tags = tags.select {|tag| line.include? "#{tag}#{@optional_colon}" }
|
41
|
+
create_tag_items(included_tags, file_path, line, idx)
|
39
42
|
end
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def create_tag_items(included_tags, file, line, idx)
|
47
|
+
included_tags.each do |tag|
|
48
|
+
action = line[(line.index(tag) + tag.length)..-1]
|
49
|
+
@tag_list[tag] << TodoItem.new.tap do |t|
|
50
|
+
t.path = file
|
51
|
+
t.line = idx
|
52
|
+
t.action = (action.chars.first == ":" ? action[1..-1] : action).strip
|
48
53
|
end
|
49
|
-
file.close
|
50
54
|
end
|
51
55
|
end
|
52
56
|
end
|
@@ -11,120 +11,80 @@ module Redcar
|
|
11
11
|
"Todo List"
|
12
12
|
end
|
13
13
|
|
14
|
-
def debug
|
15
|
-
false
|
16
|
-
end
|
17
|
-
|
18
14
|
# Open a text file in a new edit tab
|
19
|
-
def open_file(
|
20
|
-
path =
|
21
|
-
|
22
|
-
|
23
|
-
line = 1
|
24
|
-
unless idx.nil?
|
25
|
-
# line number found
|
26
|
-
line = path[idx+1,path.length]
|
27
|
-
# convert path to actual file path
|
28
|
-
path = path[0,idx]
|
29
|
-
end
|
30
|
-
if File.exists?(path)
|
31
|
-
puts "Opening #{path} in new tab" if debug
|
15
|
+
def open_file(options)
|
16
|
+
path = options.keys.first
|
17
|
+
line = options.values.first.first.to_i
|
18
|
+
if File.exists? path
|
32
19
|
Project::FileOpenCommand.new(path).run
|
33
|
-
tab
|
34
|
-
|
35
|
-
if
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
if line <= document.line_count.to_i
|
40
|
-
puts "scrolling to line number: #{line}" if debug
|
41
|
-
offset = document.offset_at_line(line)
|
42
|
-
document.cursor_offset = offset
|
43
|
-
document.scroll_to_line(line)
|
44
|
-
end
|
45
|
-
end
|
20
|
+
tab = Redcar.app.focussed_notebook_tab
|
21
|
+
document = tab.edit_view.document
|
22
|
+
if line <= document.line_count
|
23
|
+
offset = document.offset_at_line(line)
|
24
|
+
document.cursor_offset = offset
|
25
|
+
document.scroll_to_line(line)
|
46
26
|
end
|
47
|
-
tab.focus
|
48
27
|
end
|
28
|
+
tab.focus
|
49
29
|
false
|
50
30
|
end
|
51
31
|
|
52
|
-
def numeric?(object)
|
53
|
-
true if Integer(object) rescue false
|
54
|
-
end
|
55
|
-
|
56
|
-
def parse_path(path,tag)
|
57
|
-
idx = tag.length
|
58
|
-
if TodoList.storage['require_colon']
|
59
|
-
idx += 1
|
60
|
-
end
|
61
|
-
path = path[idx,path.length]
|
62
|
-
display_path = path[@path.length+1,path.length]
|
63
|
-
case Redcar.platform
|
64
|
-
when :osx, :linux
|
65
|
-
display_path = display_path.gsub("//","/")
|
66
|
-
when :windows
|
67
|
-
display_path = display_path.gsub("//","\\")
|
68
|
-
end
|
69
|
-
puts "Final path: #{path}" if debug
|
70
|
-
puts "Path for display: #{display_path}" if debug
|
71
|
-
[path, display_path]
|
72
|
-
end
|
73
|
-
|
74
32
|
def populate_list
|
75
33
|
@thread = Thread.new do
|
76
34
|
sleep 1
|
77
|
-
execute(
|
78
|
-
|
79
|
-
|
80
|
-
JAVASCRIPT
|
81
|
-
s = Time.now
|
82
|
-
@tag_list = TodoList::FileParser.new.parse_files(@path) || {}
|
83
|
-
i = 0
|
84
|
-
total = @tag_list.to_a.length.to_i - 1
|
35
|
+
execute(open_page)
|
36
|
+
@tag_list = TodoList::FileParser.new.parse_files(@path)
|
37
|
+
|
85
38
|
TodoList.storage['tags'].each do |tag|
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
<th bgcolor="#ffffcc" colspan="2">#{tag}</th>
|
92
|
-
</tr>
|
93
|
-
</table>
|
94
|
-
HTML
|
95
|
-
execute(<<-JAVASCRIPT)
|
96
|
-
$("#tags").append(#{html.inspect});
|
97
|
-
JAVASCRIPT
|
98
|
-
@tag_list.each do |path,action|
|
99
|
-
if path[0,tag.length] == tag
|
100
|
-
puts "#{i} of #{total}" if debug
|
101
|
-
path, display_path = parse_path(path,tag)
|
102
|
-
html=<<-HTML
|
103
|
-
<tr>
|
104
|
-
<td bgcolor="#ccffcc" width="40%"><a class="action">#{action}</a></td>
|
105
|
-
<td bgcolor="#dddddd"><a class="file_path" href="controller/open_file?#{path}">#{display_path}</a></td>
|
106
|
-
</tr>
|
107
|
-
HTML
|
108
|
-
percentage = 100
|
109
|
-
if total > 0
|
110
|
-
percentage = ((i.to_f/total.to_f)*100).to_i
|
111
|
-
end
|
112
|
-
execute(<<-JAVASCRIPT)
|
113
|
-
$("#status").html("Populating... #{percentage}%");
|
114
|
-
$("##{table_id}").append(#{html.inspect});
|
115
|
-
JAVASCRIPT
|
116
|
-
break if i.to_i == total.to_i
|
117
|
-
i+= 1
|
118
|
-
end
|
39
|
+
execute(%{ $("#tags").append(#{html_table_for(tag).inspect}); })
|
40
|
+
end
|
41
|
+
@tag_list.each_pair do |tag, todo_items|
|
42
|
+
todo_items.each do |item|
|
43
|
+
execute(%{ $("##{table_id(tag)}").append(#{html_tr_for(item).inspect}); })
|
119
44
|
end
|
120
45
|
end
|
121
|
-
execute(
|
122
|
-
$("#status").remove();
|
123
|
-
$("#final_status").html("Search completed in #{Time.now - s} seconds");
|
124
|
-
$("#refresh").html("Refresh List");
|
125
|
-
JAVASCRIPT
|
46
|
+
execute(finalize_page)
|
126
47
|
end
|
127
|
-
|
48
|
+
end
|
49
|
+
|
50
|
+
def html_table_for(tag)
|
51
|
+
<<-HTML
|
52
|
+
<br/>
|
53
|
+
<table id="#{table_id(tag)}" width="100%">
|
54
|
+
<tr>
|
55
|
+
<th bgcolor="#ffffcc" colspan="2">#{tag}</th>
|
56
|
+
</tr>
|
57
|
+
</table>
|
58
|
+
HTML
|
59
|
+
end
|
60
|
+
|
61
|
+
def html_tr_for(item)
|
62
|
+
display_path = item.path[@path.length..-1]
|
63
|
+
<<-HTML
|
64
|
+
<tr>
|
65
|
+
<td bgcolor="#ccffcc" width="40%"><a class="action">#{item.action}</a></td>
|
66
|
+
<td bgcolor="#dddddd"><a class="file_path" href="controller/open_file?#{item.path}=#{item.line}">#{display_path}:#{item.line+1}</a></td>
|
67
|
+
</tr>
|
68
|
+
HTML
|
69
|
+
end
|
70
|
+
|
71
|
+
def table_id(tag)
|
72
|
+
"#{tag}_table"
|
73
|
+
end
|
74
|
+
|
75
|
+
def open_page
|
76
|
+
<<-JAVASCRIPT
|
77
|
+
$("#status").html("Searching...");
|
78
|
+
$("#tags").html(" ");
|
79
|
+
JAVASCRIPT
|
80
|
+
end
|
81
|
+
|
82
|
+
def finalize_page
|
83
|
+
<<-JAVASCRIPT
|
84
|
+
$("#status").remove();
|
85
|
+
$("#final_status").html("Search complete.");
|
86
|
+
$("#refresh").html("Refresh List");
|
87
|
+
JAVASCRIPT
|
128
88
|
end
|
129
89
|
|
130
90
|
def index
|
@@ -0,0 +1 @@
|
|
1
|
+
# NOTE ignored
|
@@ -0,0 +1 @@
|
|
1
|
+
# OPTIMIZE: a course of action
|
@@ -0,0 +1 @@
|
|
1
|
+
# XXX ignored
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module TodoListSpecHelper
|
2
|
+
Fixtures = File.expand_path("../project", __FILE__)
|
3
|
+
|
4
|
+
def self.set_fixture_settings
|
5
|
+
Redcar::TodoList.storage['tags'] = ["FIXME", "OPTIMIZE", "NOTE", "TODO"]
|
6
|
+
Redcar::TodoList.storage['excluded_files'] = ["NOTE.ignored.file"]
|
7
|
+
Redcar::TodoList.storage['require_colon'] = false
|
8
|
+
Redcar::TodoList.storage['excluded_dirs'] = ["ignored_directory"]
|
9
|
+
Redcar::TodoList.storage['included_suffixes'] = [".file"]
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
require File.expand_path("../../spec_helper", __FILE__)
|
2
|
+
|
3
|
+
describe Redcar::TodoList::FileParser do
|
4
|
+
before do
|
5
|
+
TodoListSpecHelper.set_fixture_settings
|
6
|
+
@parser = Redcar::TodoList::FileParser.new
|
7
|
+
@tags = @parser.parse_files(TodoListSpecHelper::Fixtures)
|
8
|
+
end
|
9
|
+
|
10
|
+
it "should find tags that are in the tag list" do
|
11
|
+
@tags.keys.should include "FIXME"
|
12
|
+
@tags.keys.should include "OPTIMIZE"
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should find only colon'ed tags if that requirement is set in the settings" do
|
16
|
+
Redcar::TodoList.storage['require_colon'] = true
|
17
|
+
@parser = Redcar::TodoList::FileParser.new
|
18
|
+
tags = @parser.parse_files(TodoListSpecHelper::Fixtures)
|
19
|
+
tags.keys.should include "OPTIMIZE"
|
20
|
+
tags.keys.should_not include "FIXME"
|
21
|
+
Redcar::TodoList.storage['require_colon'] = false
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should not search files without included suffixes" do
|
25
|
+
@tags.keys.should_not include "XXX"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should not search excluded files" do
|
29
|
+
@tags.keys.should_not include "NOTE"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should ignore files in excluded dirs" do
|
33
|
+
@tags.keys.should_not include "TODO"
|
34
|
+
end
|
35
|
+
end
|
data/plugins/tree/lib/tree.rb
CHANGED
@@ -0,0 +1,37 @@
|
|
1
|
+
Feature: Showing and opening bookmarks in a tree
|
2
|
+
|
3
|
+
Background:
|
4
|
+
When I will choose "plugins/web_bookmarks/features/fixtures" from the "open_directory" dialog
|
5
|
+
And I open a directory
|
6
|
+
|
7
|
+
Scenario: Show grouped bookmarks from .redcar/web_bookmarks.json in the project
|
8
|
+
When I open the web bookmarks tree
|
9
|
+
Then I should see "Online" in the tree
|
10
|
+
And I should see "Sample" in the tree
|
11
|
+
And I should not see "Other" in the tree
|
12
|
+
|
13
|
+
Scenario: Show individual bookmarks in groups
|
14
|
+
When I open the web bookmarks tree
|
15
|
+
And I expand the tree row "Online"
|
16
|
+
Then I should see "Google" in the tree
|
17
|
+
And I should see "Github" in the tree
|
18
|
+
|
19
|
+
Scenario: Opening a bookmark from the tree
|
20
|
+
When I open the web bookmarks tree
|
21
|
+
And I activate the "Sample" node in the tree
|
22
|
+
Then my active tab should be "Sample"
|
23
|
+
And the HTML tab should say "Hello!!"
|
24
|
+
|
25
|
+
Scenario: Closing the project via icon closes the bookmarks tree
|
26
|
+
When I open the web bookmarks tree
|
27
|
+
And I click the project tree tab
|
28
|
+
And I click the close button
|
29
|
+
Then the tree width should be the minimum size
|
30
|
+
And there should not be a tree titled "Web Bookmarks"
|
31
|
+
|
32
|
+
Scenario: Closing the project via menu item closes the bookmarks tree
|
33
|
+
When I open the web bookmarks tree
|
34
|
+
And I click the project tree tab
|
35
|
+
And I close the tree
|
36
|
+
Then the tree width should be the minimum size
|
37
|
+
And there should not be a tree titled "Web Bookmarks"
|
@@ -0,0 +1 @@
|
|
1
|
+
<html><b>Is today Tuesday?</b></html>
|