arcadia 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +132 -134
- data/bin/arcadia +13 -0
- data/conf/arcadia.conf +196 -3
- data/conf/arcadia.init.rb +27 -6
- data/conf/arcadia.res.rb +10 -0
- data/ext/ae-complete-code/ae-complete-code.rb +76 -82
- data/ext/ae-doc-code/ae-doc-code.rb +295 -291
- data/ext/ae-editor/ae-editor.conf +88 -67
- data/ext/ae-editor/ae-editor.rb +400 -202
- data/ext/ae-editor/langs/conf.lang +16 -5
- data/ext/ae-editor/langs/lang.lang.bind +1 -1
- data/ext/ae-editor/langs/rb.lang +77 -41
- data/ext/ae-editor/langs/rbw.lang.bind +1 -1
- data/ext/ae-event-log/ae-event-log.rb +46 -45
- data/ext/ae-file-history/ae-file-history.conf +1 -1
- data/ext/ae-file-history/ae-file-history.rb +373 -298
- data/ext/ae-output/ae-output.conf +2 -0
- data/ext/ae-output/ae-output.rb +200 -202
- data/ext/ae-rad/ae-rad-inspector.rb +64 -70
- data/ext/ae-rad/ae-rad-palette.rb +14 -14
- data/ext/ae-rad/ae-rad.conf +2 -0
- data/ext/ae-rad/lib/tk/al-tk.rb +2991 -2987
- data/ext/ae-rad/lib/tk/al-tkarcadia.rb +26 -26
- data/ext/ae-ruby-debug/ae-ruby-debug.conf +8 -8
- data/ext/ae-ruby-debug/ae-ruby-debug.rb +1566 -1465
- data/ext/ae-search-in-files/ae-search-in-files.rb +294 -284
- data/ext/ae-shell/ae-shell.rb +20 -11
- data/{base → lib}/a-commons.rb +291 -80
- data/{base → lib}/a-contracts.rb +40 -18
- data/{arcadia.rb → lib/a-core.rb} +238 -148
- data/{base → lib}/a-tkcommons.rb +81 -63
- metadata +64 -65
- data/ext/ae-action-dispatcher/ae-action-dispatcher.conf +0 -6
- data/ext/ae-action-dispatcher/ae-action-dispatcher.rb +0 -22
- data/ext/ae-inspector/ae-inspector.conf +0 -7
- data/ext/ae-inspector/ae-inspector.rb +0 -1519
- data/ext/ae-palette/ae-palette.conf +0 -7
- data/ext/ae-palette/ae-palette.rb +0 -265
data/README
CHANGED
@@ -1,134 +1,132 @@
|
|
1
|
-
= Arcadia Ruby Ide
|
2
|
-
version 0.
|
3
|
-
|
4
|
-
by Antonio Galeone
|
5
|
-
on
|
6
|
-
|
7
|
-
|
8
|
-
== About
|
9
|
-
|
10
|
-
Arcadia is a Integrated Development Environment (IDE) for Ruby language
|
11
|
-
written in Ruby using the classic tcl/tk GUI toolkit.
|
12
|
-
|
13
|
-
Some of Arcadia ruby ide project features include:
|
14
|
-
* Editor with source browsing, syntax highlighting, code completion
|
15
|
-
* Debugging support
|
16
|
-
* Contextual ruby documentation
|
17
|
-
* Working on any platform where ruby and tcl-tk work.
|
18
|
-
* Highly extensibility architecture.
|
19
|
-
|
20
|
-
== In this release
|
21
|
-
* [mod]
|
22
|
-
* [fix] bug-fixing
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
- Ctrl-
|
65
|
-
- Ctrl-
|
66
|
-
- Ctrl-
|
67
|
-
- Ctrl-
|
68
|
-
- Ctrl-
|
69
|
-
- Ctrl-
|
70
|
-
- Ctrl-
|
71
|
-
- Ctrl-shift-
|
72
|
-
- Ctrl-shift-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
It
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
The
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
The debug
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
*
|
116
|
-
*
|
117
|
-
*
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
For
|
133
|
-
antonio-galeone@rubyforge.org
|
134
|
-
For bugs, support request, features request http://rubyforge.org/projects/arcadia
|
1
|
+
= Arcadia Ruby Ide
|
2
|
+
version 0.3.0
|
3
|
+
|
4
|
+
by Antonio Galeone
|
5
|
+
on Jan 28, 2008
|
6
|
+
|
7
|
+
|
8
|
+
== About
|
9
|
+
|
10
|
+
Arcadia is a Integrated Development Environment (IDE) for Ruby language
|
11
|
+
written in Ruby using the classic tcl/tk GUI toolkit.
|
12
|
+
|
13
|
+
Some of Arcadia ruby ide project features include:
|
14
|
+
* Editor with source browsing, syntax highlighting, code completion
|
15
|
+
* Debugging support
|
16
|
+
* Contextual ruby documentation
|
17
|
+
* Working on any platform where ruby and tcl-tk work.
|
18
|
+
* Highly extensibility architecture.
|
19
|
+
|
20
|
+
== In this release
|
21
|
+
* [mod] architecture changes
|
22
|
+
* [fix] bug-fixing
|
23
|
+
|
24
|
+
== How to install
|
25
|
+
There are two way:
|
26
|
+
1. exec as root on command line "gem install arcadia"
|
27
|
+
or as user "sudo gem install arcadia"
|
28
|
+
2. using archive distribution
|
29
|
+
a. untar (on unix) (tar -xzf) arcadia-<version>.tar.gz
|
30
|
+
b. unzip (on windows) arcadia-<version>.zip
|
31
|
+
|
32
|
+
|
33
|
+
== How to run
|
34
|
+
* exec on command line "ruby <path/>arcadia"
|
35
|
+
|
36
|
+
|
37
|
+
== Short User guide
|
38
|
+
Application layout is splitted in vertical
|
39
|
+
and horizontal resizing frames. Clicking on vertical splitter
|
40
|
+
appear two button for left or right one shot frame close.
|
41
|
+
The horizontal splitter has two little button for the same reason
|
42
|
+
(perhaps i will conform them to the vertical style).
|
43
|
+
Every frame has a title and a button to expand or resizing it.
|
44
|
+
In this release there are very essential feature:
|
45
|
+
|
46
|
+
==== Main Toolbar
|
47
|
+
The toolbar button are in order:
|
48
|
+
- new, open, save
|
49
|
+
(relatively to edit operation)
|
50
|
+
- run current, run last
|
51
|
+
(for execute the raised file in the editor or the last runned file)
|
52
|
+
- debug current, debug last, quit debug panel
|
53
|
+
(for debug need)
|
54
|
+
- show rad palette
|
55
|
+
(for tk rad need)
|
56
|
+
- quit (to exit from arcadia)
|
57
|
+
|
58
|
+
==== Editor
|
59
|
+
Editor use the notebook metaphor. Same command are on the popup menu
|
60
|
+
that is raised on "Button-3" click event fundamentalally for closing the tab
|
61
|
+
under the mouse pointer.
|
62
|
+
These are same editor short-cut:
|
63
|
+
- Ctrl-c => copy selected text
|
64
|
+
- Ctrl-v => paste copied text
|
65
|
+
- Ctrl-x => cut selected text
|
66
|
+
- Ctrl-z => undo
|
67
|
+
- Ctrl-f => copy the selected text on input combobox of find dialog and moves focus
|
68
|
+
- Ctrl-s => save
|
69
|
+
- Ctrl-space => completion code
|
70
|
+
- Ctrl-shift-i => indent the selected block
|
71
|
+
- Ctrl-shift-u => unindent the selected block
|
72
|
+
- Ctrl-shift-c => comment/uncomment the selected code block
|
73
|
+
- F5 => execute the file
|
74
|
+
- F3 => find/ find next
|
75
|
+
- F1 => contextual ruby documentation (called from editor or from code completion item)
|
76
|
+
|
77
|
+
- Double-Click on line number set or unset a debug breakpoint
|
78
|
+
|
79
|
+
==== File history
|
80
|
+
The last used files are organizing in tree so you can reopen them or there
|
81
|
+
directory by clicking on the tree node.
|
82
|
+
|
83
|
+
==== Rad Palette
|
84
|
+
It contain the wrapper components for the tk gui building.
|
85
|
+
It is in very unstabled and incomplete state.
|
86
|
+
The first component is a TkTopLevel wrapper, when you click on it a new form is created and a
|
87
|
+
Object inspector appears.
|
88
|
+
The other components must be first selected and then created by clicking on container widget.
|
89
|
+
The so created widgets has a popup menu for deleting them or in the toplevel case to switch
|
90
|
+
to a code view.
|
91
|
+
On the palette there are also two button, one for deselect and other for copy from the selected
|
92
|
+
created widget. The copy action copy also the code into the clipboard, so you can copy the
|
93
|
+
code rapresenting the gui into the embedded editor or into external editor.
|
94
|
+
|
95
|
+
==== Rad Object Inspector
|
96
|
+
It is for modify the widget property at runtime
|
97
|
+
|
98
|
+
==== Debug
|
99
|
+
It is created when a debug session init.
|
100
|
+
The debug button are: Step Next, Step Into, Step Over, Resume and quit.
|
101
|
+
The debug frame show the local, instance and global variables for each
|
102
|
+
step.
|
103
|
+
|
104
|
+
==== Configuration
|
105
|
+
Same Arcadia properties are locally configurabled by editing the file arcadia.conf
|
106
|
+
under ~/.arcadia directory. The format of property definition are:
|
107
|
+
<OPERATING SYSTEM IDENTIFY::>PROPERTY_NAME=PROPERTY_VALUE
|
108
|
+
|
109
|
+
|
110
|
+
== Requirement
|
111
|
+
I include into distribution also the BWidget lib (under tcl directory) so
|
112
|
+
are require realy only the standard tcl tk lib (tested on tcl tk 8.4).
|
113
|
+
I have tested arcadia with ruby 1.8.4, 1.8.5, 1.8.6 on
|
114
|
+
* FreeBsd6.x,
|
115
|
+
* Vector linux 5.8,
|
116
|
+
* Windows 2000/XP,
|
117
|
+
* Cygwin (note: same page fault error on dll under cygwin may be solved in this way:
|
118
|
+
by ash.exe exec "/bin/rebaseall").
|
119
|
+
If you will test arcadia on other operating system sends me an e-mail.
|
120
|
+
|
121
|
+
==Developers information
|
122
|
+
Released on arcadia web site (http://arcadia.rubyforge.org) a first drawing of "How to extend arcadia".
|
123
|
+
|
124
|
+
|
125
|
+
|
126
|
+
== License
|
127
|
+
Arcadia is released under the Ruby License
|
128
|
+
|
129
|
+
== Contacts
|
130
|
+
For questions:
|
131
|
+
antonio-galeone@rubyforge.org
|
132
|
+
For bugs, support request, features request http://rubyforge.org/projects/arcadia
|
data/bin/arcadia
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# arcadia - Arcadia Ruby ide
|
4
|
+
# by Antonio Galeone <antonio-galeone@rubyforge.org>
|
5
|
+
#
|
6
|
+
|
7
|
+
$pwd = Dir.pwd
|
8
|
+
Dir.chdir("#{File.dirname(__FILE__)}/..")
|
9
|
+
if FileTest.exist?('conf/arcadia.init.rb')
|
10
|
+
require 'conf/arcadia.init'
|
11
|
+
end
|
12
|
+
require "lib/a-core"
|
13
|
+
Arcadia.new.run
|
data/conf/arcadia.conf
CHANGED
@@ -4,6 +4,196 @@
|
|
4
4
|
# instead edit ~/.arcadia/arcadia.conf
|
5
5
|
#
|
6
6
|
|
7
|
+
#:::::::::::::::: layout ::::::::::::::::::::::<begin>
|
8
|
+
layout.splitter.length=5
|
9
|
+
arm::layout.splitter.length=10
|
10
|
+
#layout.split=1,2
|
11
|
+
#layout.split.1=0.0r70%
|
12
|
+
#layout.split.2=0.0c20%
|
13
|
+
layout.split=1,2
|
14
|
+
layout.split.1=0.0c20%
|
15
|
+
layout.split.2=0.1r70%
|
16
|
+
|
17
|
+
#:::::::::::::::: layout ::::::::::::::::::::::<end>
|
18
|
+
#:::::::::::::::::::::::::::::::::::::::::::::::::<begin>
|
19
|
+
font.h1=
|
20
|
+
font.h2=
|
21
|
+
font.h3=courier 11
|
22
|
+
freebsd::font.h3=courier 12
|
23
|
+
win::font.h3={Courier New} 9
|
24
|
+
font.h4=
|
25
|
+
font.h5=
|
26
|
+
font.h6=
|
27
|
+
font=>>>font.h3
|
28
|
+
|
29
|
+
background=#d9d9d9
|
30
|
+
foreground=#333333
|
31
|
+
activebackground=#EEEEEE
|
32
|
+
activeforeground=#6679f1
|
33
|
+
highlightbackground=>>>background
|
34
|
+
relief=flat
|
35
|
+
borderwidth=0
|
36
|
+
|
37
|
+
menu.background=>>>background
|
38
|
+
menu.foreground=>>>foreground
|
39
|
+
menu.activebackground=>>>activebackground
|
40
|
+
menu.activeforeground=>>>activeforeground
|
41
|
+
menu.relief=>>>relief
|
42
|
+
menu.borderwidth=>>>borderwidth
|
43
|
+
menu.font=>>>font
|
44
|
+
|
45
|
+
panel.background=>>>background
|
46
|
+
panel.highlightbackground=>>>background
|
47
|
+
panel.relief=>>>relief
|
48
|
+
panel.borderwidth=0
|
49
|
+
|
50
|
+
scrollbar.background=>>>background
|
51
|
+
scrollbar.highlightbackground=>>>background
|
52
|
+
scrollbar.relief=flat
|
53
|
+
scrollbar.borderwidth=1
|
54
|
+
|
55
|
+
titlelabel.background=#303b50
|
56
|
+
titlelabel.foreground=#e8e651
|
57
|
+
titlelabel.activebackground=#6679f1
|
58
|
+
titlelabel.activeforeground=#6679f1
|
59
|
+
titlelabel.highlightbackground=white
|
60
|
+
titlelabel.relief=flat
|
61
|
+
titlelabel.borderwidth=0
|
62
|
+
titlelabel.font=>>>font
|
63
|
+
|
64
|
+
titlecontext.foreground=#FFFFFF
|
65
|
+
|
66
|
+
|
67
|
+
linepanel.background=#dbe1cb
|
68
|
+
linepanel.foreground=>>>foreground
|
69
|
+
linepanel.highlightbackground=>>>background
|
70
|
+
linepanel.relief=>>>relief
|
71
|
+
linepanel.borderwidth=0
|
72
|
+
|
73
|
+
splitter.background=>>>background
|
74
|
+
splitter.highlightbackground=>>>foreground
|
75
|
+
splitter.relief=groove
|
76
|
+
splitter.borderwidth=1
|
77
|
+
|
78
|
+
tabpanel.background=>>>background
|
79
|
+
tabpanel.foreground=>>>foreground
|
80
|
+
tabpanel.activebackground=yellow
|
81
|
+
tabpanel.activeforeground=red
|
82
|
+
tabpanel.borderwidth=1
|
83
|
+
tabpanel.font=>>>font
|
84
|
+
|
85
|
+
treepanel.background=>>>edit.background
|
86
|
+
treepanel.selectforeground=#4c23b4
|
87
|
+
treepanel.selectbackground=#b9c989
|
88
|
+
treepanel.highlightbackground=>>>highlightbackground
|
89
|
+
treepanel.crossfill=>>>edit.foreground
|
90
|
+
treepanel.showlines=false
|
91
|
+
treepanel.selectfill=true
|
92
|
+
treepanel.linesfill=#e7de8f
|
93
|
+
treepanel.relief=>>>relief
|
94
|
+
treepanel.borderwidth=0
|
95
|
+
|
96
|
+
treeitem.fill=>>>foreground
|
97
|
+
treeitem.font=>>>font
|
98
|
+
|
99
|
+
|
100
|
+
button.background=>>>background
|
101
|
+
button.foreground=>>>foreground
|
102
|
+
button.activebackground=>>>activebackground
|
103
|
+
button.activeforeground=>>>activeforeground
|
104
|
+
button.highlightbackground=>>>highlightbackground
|
105
|
+
button.relief=groove
|
106
|
+
button.justify=center
|
107
|
+
button.borderwidth=2
|
108
|
+
button.font=>>>font
|
109
|
+
button.padx=1
|
110
|
+
button.pady=1
|
111
|
+
|
112
|
+
toolbar.=>>>panel
|
113
|
+
|
114
|
+
toolbarbutton.=>>>button
|
115
|
+
toolbarbutton.relief=flat
|
116
|
+
|
117
|
+
label.background=>>>background
|
118
|
+
label.foreground=>>>foreground
|
119
|
+
#label.activebackground=#6679f1
|
120
|
+
#label.activeforeground=#6679f1
|
121
|
+
label.highlightbackground=>>>background
|
122
|
+
label.relief=flat
|
123
|
+
label.borderwidth=0
|
124
|
+
label.font=>>>font
|
125
|
+
|
126
|
+
checkbox.=>>>label
|
127
|
+
checkbox.selectcolor=>>>edit.background
|
128
|
+
checkbox.offrelief=ridge
|
129
|
+
checkbox.borderwidth=1
|
130
|
+
|
131
|
+
edit.font=>>>font
|
132
|
+
edit.background=white
|
133
|
+
edit.foreground=>>>foreground
|
134
|
+
edit.highlightbackground=>>>background
|
135
|
+
edit.highlightcolor=>>>edit.background
|
136
|
+
edit.insertbackground=#ff8000
|
137
|
+
edit.relief=flat
|
138
|
+
edit.borderwidth=0
|
139
|
+
|
140
|
+
|
141
|
+
combobox.=>>>edit
|
142
|
+
combobox.background=>>>panel.background
|
143
|
+
combobox.entrybg=>>>edit.background
|
144
|
+
|
145
|
+
|
146
|
+
#hightlight.sel
|
147
|
+
hightlight.1.foreground=black
|
148
|
+
#hightlight.1.background=#68f914
|
149
|
+
hightlight.1.background=#abc9fc
|
150
|
+
hightlight.1.borderwidth=1
|
151
|
+
hightlight.1.relief=raised
|
152
|
+
#hightlight.selected
|
153
|
+
hightlight.2.background=yellow
|
154
|
+
#hightlight.tabs
|
155
|
+
hightlight.3.foreground=black
|
156
|
+
hightlight.3.background=#b1cfba
|
157
|
+
hightlight.3.borderwidth=1
|
158
|
+
hightlight.3.relief=raised
|
159
|
+
#hightlight.spaces
|
160
|
+
hightlight.4.foreground=black
|
161
|
+
hightlight.4.background=#d9f42b
|
162
|
+
hightlight.4.borderwidth=1
|
163
|
+
hightlight.4.relief=raised
|
164
|
+
#+--------------------------------------------------
|
165
|
+
|
166
|
+
|
167
|
+
#keyword
|
168
|
+
hightlight.5.foreground=#00007F
|
169
|
+
#method_name
|
170
|
+
hightlight.6.foreground=#007F7F
|
171
|
+
#class_name
|
172
|
+
hightlight.7.foreground=#0000FF
|
173
|
+
#module_name
|
174
|
+
hightlight.8.foreground=#0000FF
|
175
|
+
#instance_variable
|
176
|
+
hightlight.9.foreground=#7F7F7F
|
177
|
+
#global_variable
|
178
|
+
hightlight.10.foreground=#db66ca
|
179
|
+
#comment
|
180
|
+
hightlight.11.foreground=#007F00
|
181
|
+
#string
|
182
|
+
hightlight.12.foreground=#7F007F
|
183
|
+
#number
|
184
|
+
hightlight.13.foreground=#007F7F
|
185
|
+
#operator
|
186
|
+
hightlight.14.foreground=#000000
|
187
|
+
#symbol
|
188
|
+
hightlight.15.foreground=#bdc175
|
189
|
+
#debug
|
190
|
+
#hightlight.16.foreground=black
|
191
|
+
hightlight.16.background=#b3c1d9
|
192
|
+
hightlight.16.borderwidth=2
|
193
|
+
hightlight.16.relief=groove
|
194
|
+
|
195
|
+
#:::::::::::::::::::::::::::::::::::::::::::::::::<end>
|
196
|
+
#:::::::::::::::: toolbar ::::::::::::::::::::::<begin>
|
7
197
|
user_toolbar.contexts=file,run
|
8
198
|
#,sys
|
9
199
|
user_toolbar.file=new,open,save
|
@@ -58,10 +248,11 @@ e.user_toolbar.sys.exit.hint=Exit from Arcadia
|
|
58
248
|
e.user_toolbar.sys.exit.image_data=EXIT_STORY_GIF
|
59
249
|
e.user_toolbar.sys.exit.event_class=QuitEvent
|
60
250
|
|
61
|
-
|
62
251
|
user_toolbar_show=yes
|
252
|
+
#:::::::::::::::: toolbar ::::::::::::::::::::::<end>
|
63
253
|
|
64
254
|
#:::::::::::::::: splash group ::::::::::::::::::::::<begin>
|
255
|
+
splash.show=yes
|
65
256
|
splash.title.font=Courier 30 bold
|
66
257
|
splash.subtitle.font=Courier 12 bold
|
67
258
|
splash.version.font=Courier 10
|
@@ -115,8 +306,6 @@ win::inspectors.debug.tabs.font=courier 8
|
|
115
306
|
win::inspectors.debug.tabs.font.bold=courier 8 bold
|
116
307
|
#:::::::::::::::: inspector group ::::::::::::::::::::::<end>
|
117
308
|
|
118
|
-
|
119
|
-
|
120
309
|
#:::::::::::::::: all ::::::::::::::::::::::<begin>
|
121
310
|
all.frame.title.font=courier 11
|
122
311
|
all.frame.title.font.bold=courier 11 bold
|
@@ -128,3 +317,7 @@ win::all.frame.title.font=courier 9
|
|
128
317
|
win::all.frame.title.font.bold=courier 9 bold
|
129
318
|
win::all.frame.title.font.italic=courier 9 italic
|
130
319
|
#:::::::::::::::: all ::::::::::::::::::::::<end>
|
320
|
+
|
321
|
+
#theme=default
|
322
|
+
#theme=dark
|
323
|
+
|