redcar 0.2.9dev → 0.3.0dev
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/ROADMAP.md +2 -2
- data/Rakefile +4 -4
- data/lib/redcar/boot.rb +3 -0
- data/lib/redcar/install.rb +3 -3
- data/lib/redcar/runner.rb +1 -1
- data/lib/redcar/usage.rb +5 -0
- data/plugins/application/features/step_definitions/tree_steps.rb +6 -0
- data/plugins/application/features/support/env.rb +59 -1
- data/plugins/application/icons/darwin-file.png +0 -0
- data/plugins/application/icons/darwin-folder.png +0 -0
- data/plugins/application/lib/application.rb +4 -0
- data/plugins/application/lib/application/command/executor.rb +3 -1
- data/plugins/application/lib/application/dialog.rb +5 -0
- data/plugins/application/lib/application/treebook.rb +30 -0
- data/plugins/application/lib/application/window.rb +3 -3
- data/plugins/application/spec/application/treebook_spec.rb +27 -0
- data/plugins/application/spec/application/window_spec.rb +2 -2
- data/plugins/application_swt/lib/application_swt.rb +1 -0
- data/plugins/application_swt/lib/application_swt/dialog_adapter.rb +12 -0
- data/plugins/application_swt/lib/application_swt/swt_wrapper.rb +4 -7
- data/plugins/application_swt/lib/application_swt/treebook.rb +33 -0
- data/plugins/application_swt/lib/application_swt/window.rb +63 -12
- data/plugins/auto_indenter/lib/auto_indenter.rb +12 -0
- data/plugins/auto_indenter/lib/auto_indenter/document_controller.rb +27 -0
- data/plugins/auto_indenter/plugin.yaml +12 -0
- data/plugins/edit_view/features/step_definitions/notebook_steps.rb +1 -1
- data/plugins/edit_view/features/step_definitions/tab_steps.rb +11 -0
- data/plugins/edit_view/features/step_definitions/window_steps.rb +2 -2
- data/plugins/edit_view/features/support/env.rb +4 -26
- data/plugins/edit_view/lib/edit_view.rb +2 -1
- data/plugins/edit_view/lib/edit_view/document.rb +46 -14
- data/plugins/edit_view/lib/edit_view/document/controller.rb +30 -0
- data/plugins/edit_view/lib/edit_view/{mirror.rb → document/mirror.rb} +1 -1
- data/plugins/edit_view_swt/lib/edit_view_swt.rb +22 -0
- data/plugins/edit_view_swt/lib/edit_view_swt/document.rb +29 -0
- data/plugins/project/features/open_directory_tree.feature +17 -0
- data/plugins/project/features/step_definitions/directory_steps.rb +4 -0
- data/plugins/project/lib/project.rb +51 -0
- data/plugins/project/lib/project/dir_controller.rb +14 -0
- data/plugins/project/lib/project/dir_mirror.rb +18 -3
- data/plugins/project/lib/project/file_mirror.rb +1 -1
- data/plugins/redcar/redcar.rb +3 -0
- data/plugins/repl/lib/repl/internal_mirror.rb +1 -1
- data/plugins/tree/lib/tree.rb +17 -0
- data/plugins/tree/lib/tree/controller.rb +12 -0
- data/plugins/{tree_view/lib/tree_view → tree/lib/tree}/mirror.rb +1 -1
- data/plugins/{tree_view → tree}/plugin.yaml +4 -4
- data/plugins/{tree_view → tree}/spec/spec_helper.rb +0 -0
- data/plugins/tree_view_swt/lib/tree_view_swt.rb +122 -0
- metadata +21 -7
- data/plugins/tree_view/lib/tree_view.rb +0 -7
@@ -2,7 +2,7 @@
|
|
2
2
|
module Redcar
|
3
3
|
class Project
|
4
4
|
class DirMirror
|
5
|
-
include Redcar::
|
5
|
+
include Redcar::Tree::Mirror
|
6
6
|
|
7
7
|
# @param [String] a path to a directory
|
8
8
|
def initialize(path)
|
@@ -16,10 +16,15 @@ module Redcar
|
|
16
16
|
end
|
17
17
|
|
18
18
|
# Have the toplevel nodes changed?
|
19
|
+
#
|
20
|
+
# @return [Boolean]
|
19
21
|
def changed?
|
20
22
|
@changed
|
21
23
|
end
|
22
24
|
|
25
|
+
# Get the top-level nodes
|
26
|
+
#
|
27
|
+
# @return [Array<Node>]
|
23
28
|
def top
|
24
29
|
@changed = false
|
25
30
|
Node.create_all_from_path(@path)
|
@@ -27,10 +32,12 @@ module Redcar
|
|
27
32
|
|
28
33
|
class Node
|
29
34
|
def self.create_all_from_path(path)
|
30
|
-
Dir[path + "/*"].map {|fn| Node.new(fn)}
|
35
|
+
Dir[path + "/*"].sort_by {|fn| fn.downcase }.map {|fn| Node.new(fn)}
|
31
36
|
end
|
32
37
|
|
33
|
-
include Redcar::
|
38
|
+
include Redcar::Tree::Mirror::NodeMirror
|
39
|
+
|
40
|
+
attr_reader :path
|
34
41
|
|
35
42
|
def initialize(path)
|
36
43
|
@path = path
|
@@ -40,6 +47,14 @@ module Redcar
|
|
40
47
|
File.basename(@path)
|
41
48
|
end
|
42
49
|
|
50
|
+
def icon
|
51
|
+
if File.file?(@path)
|
52
|
+
:file
|
53
|
+
elsif File.directory?(@path)
|
54
|
+
:directory
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
43
58
|
def leaf?
|
44
59
|
File.file?(@path)
|
45
60
|
end
|
@@ -8,7 +8,7 @@ module Redcar
|
|
8
8
|
# loaded in Redcar. EditView contains a Document which contains a Mirror
|
9
9
|
# which reflects a file.
|
10
10
|
class FileMirror
|
11
|
-
include Redcar::
|
11
|
+
include Redcar::Document::Mirror
|
12
12
|
|
13
13
|
# @param [String] a path to a file
|
14
14
|
def initialize(path)
|
data/plugins/redcar/redcar.rb
CHANGED
@@ -11,6 +11,7 @@ module Redcar
|
|
11
11
|
tab = win.new_tab(Redcar::EditTab)
|
12
12
|
tab.title = "untitled"
|
13
13
|
tab.focus
|
14
|
+
tab
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
@@ -132,6 +133,7 @@ module Redcar
|
|
132
133
|
item "New Notebook", NewNotebookCommand
|
133
134
|
item "New Window", NewWindowCommand
|
134
135
|
item "Open", Project::FileOpenCommand
|
136
|
+
item "Open Directory", Project::DirectoryOpenCommand
|
135
137
|
separator
|
136
138
|
item "Save", Project::FileSaveCommand
|
137
139
|
item "Save As", Project::FileSaveAsCommand
|
@@ -139,6 +141,7 @@ module Redcar
|
|
139
141
|
item "Close Tab", CloseTabCommand
|
140
142
|
item "Close Notebook", CloseNotebookCommand
|
141
143
|
item "Close Window", CloseWindowCommand
|
144
|
+
item "Close Directory", Project::DirectoryCloseCommand
|
142
145
|
end
|
143
146
|
sub_menu "Debug" do
|
144
147
|
item "Print Command History", PrintHistoryCommand
|
@@ -0,0 +1,17 @@
|
|
1
|
+
|
2
|
+
require 'tree/controller'
|
3
|
+
require 'tree/mirror'
|
4
|
+
|
5
|
+
module Redcar
|
6
|
+
class Tree
|
7
|
+
include Redcar::Model
|
8
|
+
|
9
|
+
attr_reader :tree_mirror, :tree_controller
|
10
|
+
|
11
|
+
def initialize(tree_mirror, tree_controller=nil)
|
12
|
+
@tree_mirror = tree_mirror
|
13
|
+
@tree_controller = tree_controller
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
@@ -1,11 +1,11 @@
|
|
1
1
|
--- !ruby/object:FreeBASE::PluginConfiguration
|
2
|
-
name:
|
3
|
-
description:
|
2
|
+
name: tree
|
3
|
+
description: Trees are shown in the sidepane
|
4
4
|
version: 1.0
|
5
5
|
author: Daniel Lucraft
|
6
6
|
autoload: true
|
7
|
-
require_path:
|
8
|
-
startup_module: Redcar::
|
7
|
+
require_path: tree/lib/tree.rb
|
8
|
+
startup_module: Redcar::Tree
|
9
9
|
load_dependencies:
|
10
10
|
core: "*"
|
11
11
|
application: "*"
|
File without changes
|
@@ -1,5 +1,127 @@
|
|
1
1
|
|
2
2
|
module Redcar
|
3
3
|
class TreeViewSWT
|
4
|
+
|
5
|
+
def initialize(composite, model)
|
6
|
+
@composite, @model = composite, model
|
7
|
+
@viewer = JFace::Viewers::TreeViewer.new(@composite, Swt::SWT::VIRTUAL)
|
8
|
+
@viewer.set_content_provider(TreeMirrorContentProvider.new)
|
9
|
+
@viewer.set_input(@model.tree_mirror)
|
10
|
+
@viewer.set_label_provider(TreeMirrorLabelProvider.new)
|
11
|
+
|
12
|
+
if @model.tree_controller
|
13
|
+
@viewer.add_tree_listener(@viewer.getControl, TreeListener.new)
|
14
|
+
@viewer.add_open_listener(OpenListener.new(@model.tree_controller))
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
def control
|
19
|
+
@viewer.getControl
|
20
|
+
end
|
21
|
+
|
22
|
+
def close
|
23
|
+
@viewer.getControl.dispose
|
24
|
+
end
|
25
|
+
|
26
|
+
class TreeListener
|
27
|
+
def tree_collapsed(e)
|
28
|
+
p [:collapsed, e]
|
29
|
+
end
|
30
|
+
|
31
|
+
def tree_expanded(e)
|
32
|
+
p [:expanded, e]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class SelectionListener
|
37
|
+
def widget_default_selected(e)
|
38
|
+
p [:def_selected, e]
|
39
|
+
end
|
40
|
+
|
41
|
+
def widget_selected(e)
|
42
|
+
p [:selected, e]
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
class DoubleClickListener
|
47
|
+
def double_click(e)
|
48
|
+
p [:double_click, e]
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
class OpenListener
|
53
|
+
def initialize(controller)
|
54
|
+
@controller = controller
|
55
|
+
end
|
56
|
+
|
57
|
+
def open(e)
|
58
|
+
@controller.activated(e.getSelection.toArray.to_a.first)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
class TreeMirrorContentProvider
|
63
|
+
include JFace::Viewers::ITreeContentProvider
|
64
|
+
|
65
|
+
def input_changed(viewer, _, tree_mirror)
|
66
|
+
@viewer, @tree_mirror = viewer, tree_mirror
|
67
|
+
end
|
68
|
+
|
69
|
+
def get_elements(tree_mirror)
|
70
|
+
tree_mirror.top.to_java
|
71
|
+
end
|
72
|
+
|
73
|
+
def has_children(tree_node)
|
74
|
+
tree_node.children.any?
|
75
|
+
end
|
76
|
+
|
77
|
+
def get_children(tree_node)
|
78
|
+
tree_node.children.to_java
|
79
|
+
end
|
80
|
+
|
81
|
+
def dispose
|
82
|
+
end
|
83
|
+
end
|
84
|
+
|
85
|
+
class TreeMirrorLabelProvider
|
86
|
+
include JFace::Viewers::ILabelProvider
|
87
|
+
|
88
|
+
def add_listener(*_)
|
89
|
+
end
|
90
|
+
|
91
|
+
def remove_listener(*_)
|
92
|
+
end
|
93
|
+
|
94
|
+
def get_text(tree_node)
|
95
|
+
tree_node.text
|
96
|
+
end
|
97
|
+
|
98
|
+
def get_image(tree_node)
|
99
|
+
case tree_node.icon
|
100
|
+
when :directory
|
101
|
+
dir_image
|
102
|
+
when :file
|
103
|
+
file_image
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
def dispose
|
108
|
+
end
|
109
|
+
|
110
|
+
private
|
111
|
+
|
112
|
+
def dir_image
|
113
|
+
@dir_image ||= begin
|
114
|
+
path = File.join(Redcar.root, %w(plugins application icons darwin-folder.png))
|
115
|
+
Swt::Graphics::Image.new(ApplicationSWT.display, path)
|
116
|
+
end
|
117
|
+
end
|
118
|
+
|
119
|
+
def file_image
|
120
|
+
@file_image ||= begin
|
121
|
+
path = File.join(Redcar.root, %w(plugins application icons darwin-file.png))
|
122
|
+
Swt::Graphics::Image.new(ApplicationSWT.display, path)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
end
|
4
126
|
end
|
5
127
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redcar
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0dev
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Lucraft
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-12-
|
12
|
+
date: 2009-12-25 00:00:00 +00:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -155,8 +155,11 @@ files:
|
|
155
155
|
- plugins/application/features/main_window.feature
|
156
156
|
- plugins/application/features/step_definitions/dialog_steps.rb
|
157
157
|
- plugins/application/features/step_definitions/menu_steps.rb
|
158
|
+
- plugins/application/features/step_definitions/tree_steps.rb
|
158
159
|
- plugins/application/features/step_definitions/window_steps.rb
|
159
160
|
- plugins/application/features/support/env.rb
|
161
|
+
- plugins/application/icons/darwin-file.png
|
162
|
+
- plugins/application/icons/darwin-folder.png
|
160
163
|
- plugins/application/lib/application.rb
|
161
164
|
- plugins/application/lib/application/command.rb
|
162
165
|
- plugins/application/lib/application/dialog.rb
|
@@ -165,6 +168,7 @@ files:
|
|
165
168
|
- plugins/application/lib/application/sensitive.rb
|
166
169
|
- plugins/application/lib/application/sensitivity.rb
|
167
170
|
- plugins/application/lib/application/tab.rb
|
171
|
+
- plugins/application/lib/application/treebook.rb
|
168
172
|
- plugins/application/lib/application/window.rb
|
169
173
|
- plugins/application/lib/application/assets/file.png
|
170
174
|
- plugins/application/lib/application/command/executor.rb
|
@@ -178,6 +182,7 @@ files:
|
|
178
182
|
- plugins/application/spec/application/menu_spec.rb
|
179
183
|
- plugins/application/spec/application/notebook_spec.rb
|
180
184
|
- plugins/application/spec/application/sensitive_spec.rb
|
185
|
+
- plugins/application/spec/application/treebook_spec.rb
|
181
186
|
- plugins/application/spec/application/window_spec.rb
|
182
187
|
- plugins/application/spec/application/command/executor_spec.rb
|
183
188
|
- plugins/application/spec/application/command/history_spec.rb
|
@@ -196,6 +201,7 @@ files:
|
|
196
201
|
- plugins/application_swt/lib/application_swt/notebook.rb
|
197
202
|
- plugins/application_swt/lib/application_swt/swt_wrapper.rb
|
198
203
|
- plugins/application_swt/lib/application_swt/tab.rb
|
204
|
+
- plugins/application_swt/lib/application_swt/treebook.rb
|
199
205
|
- plugins/application_swt/lib/application_swt/window.rb
|
200
206
|
- plugins/application_swt/lib/application_swt/menu/binding_translator.rb
|
201
207
|
- plugins/application_swt/lib/application_swt/notebook/drag_and_drop_listener.rb
|
@@ -207,6 +213,9 @@ files:
|
|
207
213
|
- plugins/application_swt/vendor/swt/osx/dummy
|
208
214
|
- plugins/application_swt/vendor/swt/osx64/dummy
|
209
215
|
- plugins/application_swt/vendor/swt/win32/dummy
|
216
|
+
- plugins/auto_indenter/plugin.yaml
|
217
|
+
- plugins/auto_indenter/lib/auto_indenter.rb
|
218
|
+
- plugins/auto_indenter/lib/auto_indenter/document_controller.rb
|
210
219
|
- plugins/core/plugin.yaml
|
211
220
|
- plugins/core/lib/core.rb
|
212
221
|
- plugins/core/lib/core/controller.rb
|
@@ -231,7 +240,8 @@ files:
|
|
231
240
|
- plugins/edit_view/lib/edit_view/command.rb
|
232
241
|
- plugins/edit_view/lib/edit_view/document.rb
|
233
242
|
- plugins/edit_view/lib/edit_view/edit_tab.rb
|
234
|
-
- plugins/edit_view/lib/edit_view/
|
243
|
+
- plugins/edit_view/lib/edit_view/document/controller.rb
|
244
|
+
- plugins/edit_view/lib/edit_view/document/mirror.rb
|
235
245
|
- plugins/edit_view/spec/spec_helper.rb
|
236
246
|
- plugins/edit_view/spec/edit_view/document_spec.rb
|
237
247
|
- plugins/edit_view_swt/plugin.yaml
|
@@ -242,10 +252,13 @@ files:
|
|
242
252
|
- plugins/edit_view_swt/vendor/java-mateview.rb
|
243
253
|
- plugins/project/plugin.yaml
|
244
254
|
- plugins/project/features/open_and_save_files.feature
|
255
|
+
- plugins/project/features/open_directory_tree.feature
|
245
256
|
- plugins/project/features/fixtures/winter.txt
|
257
|
+
- plugins/project/features/step_definitions/directory_steps.rb
|
246
258
|
- plugins/project/features/step_definitions/file_steps.rb
|
247
259
|
- plugins/project/features/support/env.rb
|
248
260
|
- plugins/project/lib/project.rb
|
261
|
+
- plugins/project/lib/project/dir_controller.rb
|
249
262
|
- plugins/project/lib/project/dir_mirror.rb
|
250
263
|
- plugins/project/lib/project/file_mirror.rb
|
251
264
|
- plugins/project/spec/spec_helper.rb
|
@@ -258,10 +271,11 @@ files:
|
|
258
271
|
- plugins/repl/lib/repl/internal_mirror.rb
|
259
272
|
- plugins/repl/spec/spec_helper.rb
|
260
273
|
- plugins/repl/spec/repl/internal_mirror_spec.rb
|
261
|
-
- plugins/
|
262
|
-
- plugins/
|
263
|
-
- plugins/
|
264
|
-
- plugins/
|
274
|
+
- plugins/tree/plugin.yaml
|
275
|
+
- plugins/tree/lib/tree.rb
|
276
|
+
- plugins/tree/lib/tree/controller.rb
|
277
|
+
- plugins/tree/lib/tree/mirror.rb
|
278
|
+
- plugins/tree/spec/spec_helper.rb
|
265
279
|
- plugins/tree_view_swt/plugin.yaml
|
266
280
|
- plugins/tree_view_swt/lib/tree_view_swt.rb
|
267
281
|
- textmate/Bundles/C.tmbundle/Syntaxes/C.plist
|