arcadia 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/README +132 -134
  2. data/bin/arcadia +13 -0
  3. data/conf/arcadia.conf +196 -3
  4. data/conf/arcadia.init.rb +27 -6
  5. data/conf/arcadia.res.rb +10 -0
  6. data/ext/ae-complete-code/ae-complete-code.rb +76 -82
  7. data/ext/ae-doc-code/ae-doc-code.rb +295 -291
  8. data/ext/ae-editor/ae-editor.conf +88 -67
  9. data/ext/ae-editor/ae-editor.rb +400 -202
  10. data/ext/ae-editor/langs/conf.lang +16 -5
  11. data/ext/ae-editor/langs/lang.lang.bind +1 -1
  12. data/ext/ae-editor/langs/rb.lang +77 -41
  13. data/ext/ae-editor/langs/rbw.lang.bind +1 -1
  14. data/ext/ae-event-log/ae-event-log.rb +46 -45
  15. data/ext/ae-file-history/ae-file-history.conf +1 -1
  16. data/ext/ae-file-history/ae-file-history.rb +373 -298
  17. data/ext/ae-output/ae-output.conf +2 -0
  18. data/ext/ae-output/ae-output.rb +200 -202
  19. data/ext/ae-rad/ae-rad-inspector.rb +64 -70
  20. data/ext/ae-rad/ae-rad-palette.rb +14 -14
  21. data/ext/ae-rad/ae-rad.conf +2 -0
  22. data/ext/ae-rad/lib/tk/al-tk.rb +2991 -2987
  23. data/ext/ae-rad/lib/tk/al-tkarcadia.rb +26 -26
  24. data/ext/ae-ruby-debug/ae-ruby-debug.conf +8 -8
  25. data/ext/ae-ruby-debug/ae-ruby-debug.rb +1566 -1465
  26. data/ext/ae-search-in-files/ae-search-in-files.rb +294 -284
  27. data/ext/ae-shell/ae-shell.rb +20 -11
  28. data/{base → lib}/a-commons.rb +291 -80
  29. data/{base → lib}/a-contracts.rb +40 -18
  30. data/{arcadia.rb → lib/a-core.rb} +238 -148
  31. data/{base → lib}/a-tkcommons.rb +81 -63
  32. metadata +64 -65
  33. data/ext/ae-action-dispatcher/ae-action-dispatcher.conf +0 -6
  34. data/ext/ae-action-dispatcher/ae-action-dispatcher.rb +0 -22
  35. data/ext/ae-inspector/ae-inspector.conf +0 -7
  36. data/ext/ae-inspector/ae-inspector.rb +0 -1519
  37. data/ext/ae-palette/ae-palette.conf +0 -7
  38. data/ext/ae-palette/ae-palette.rb +0 -265
data/README CHANGED
@@ -1,134 +1,132 @@
1
- = Arcadia Ruby Ide
2
- version 0.2.0
3
-
4
- by Antonio Galeone
5
- on Oct 25, 2007
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] extension architecture changes
22
- * [fix] bug-fixing
23
- * [new] added "search in files" features (in Search menu item)
24
-
25
- == How to install
26
- There are two way:
27
- 1. exec as root on command line "gem install arcadia"
28
- or as user "sudo gem install arcadia"
29
- 2. using archive distribution
30
- a. untar (on unix) (tar -xzf) arcadia-<version>.tar.gz
31
- b. unzip (on windows) arcadia-<version>.zip
32
-
33
-
34
- == How to run
35
- * exec on command line "ruby arcadia.rb"
36
-
37
-
38
- == Short User guide
39
- As you can see the application layout is splitted in vertical
40
- and horizontal resizing frames. Clicking on vertical splitter
41
- appear two button for left or right one shot frame close.
42
- The horizontal splitter has two little button for the same reason
43
- (perhaps i will conform them to the vertical style).
44
- Every frame has a title and a button to expand or resizing it.
45
- In this beta release there are very essential feature:
46
-
47
- ==== Main Toolbar
48
- The toolbar button are in order:
49
- - new, open, save
50
- (relatively to edit operation)
51
- - run current, run last
52
- (for execute the raised file in the editor or the last runned file)
53
- - debug current, debug last, quit debug panel
54
- (for debug need)
55
- - show rad palette
56
- (for tk rad need)
57
- - quit (to exit from arcadia)
58
-
59
- ==== Editor
60
- Editor use the notebook metaphor. Same command are on the popup menu
61
- that is raised on "Button-3" click event fundamentalally for closing the tab
62
- under the mouse pointer.
63
- These are same editor short-cut:
64
- - Ctrl-c => copy selected text
65
- - Ctrl-v => paste copied text
66
- - Ctrl-x => cut selected text
67
- - Ctrl-z => undo
68
- - Ctrl-f => copy the selected text on input combobox of find dialog and moves focus
69
- - Ctrl-s => save
70
- - Ctrl-space => completion code
71
- - Ctrl-shift-i => indent the selected block
72
- - Ctrl-shift-u => unindent the selected block
73
- - Ctrl-shift-c => comment/uncomment the selected code block
74
- - F5 => execute the file
75
- - F3 => find/ find next
76
- - F1 => contextual ruby documentation (called from editor or from code completion item)
77
-
78
- - Double-Click on line number set or unset a debug breakpoint
79
-
80
- ==== File history
81
- The last used files are organizing in tree so you can reopen them or there
82
- directory by clicking on the tree node.
83
-
84
- ==== Rad Palette
85
- It contain the wrapper components for the tk gui building.
86
- It is in very unstabled and incomplete state.
87
- The first component is a TkTopLevel wrapper, when you click on it a new form is created and a
88
- Object inspector appears.
89
- The other components must be first selected and then created by clicking on container widget.
90
- The so created widgets has a popup menu for deleting them or in the toplevel case to switch
91
- to a code view.
92
- On the palette there are also two button, one for deselect and other for copy from the selected
93
- created widget. The copy action copy also the code into the clipboard, so you can copy the
94
- code rapresenting the gui into the embedded editor or into external editor.
95
-
96
- ==== Rad Object Inspector
97
- It is for modify the widget property at runtime
98
-
99
- ==== Debug
100
- It is created when a debug session init.
101
- The debug button are: Step Next, Step Into, Step Over, Resume and quit.
102
- The debug frame show the local, instance and global variables for each
103
- step.
104
-
105
- ==== Configuration
106
- Same Arcadia properties are locally configurabled by editing the file arcadia.conf
107
- under ~/.arcadia directory. The format of property definition are:
108
- <OPERATING SYSTEM IDENTIFY::>PROPERTY_NAME=PROPERTY_VALUE
109
-
110
-
111
- == Requirement
112
- I include into distribution also the BWidget lib (under tcl directory) so
113
- are require realy only the standard tcl tk lib (tested on tcl tk 8.4).
114
- I have tested arcadia with ruby 1.8.4, 1.8.5, 1.8.6 on
115
- * FreeBsd6.x,
116
- * Vector linux 5.8,
117
- * Windows 2000/XP,
118
- * Cygwin (note: same page fault error on dll under cygwin may be solved in this way:
119
- by ash.exe exec "/bin/rebaseall").
120
- If you will test arcadia on other operating system sends me an e-mail.
121
-
122
- ==Developers information
123
- Soon i will write samething about the arcadia software architecture (when it is more stable)
124
- in order to allow extensions writing and collaborations.
125
-
126
-
127
-
128
- == License
129
- Arcadia is released under the Ruby License
130
-
131
- == Contacts
132
- For questions:
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
@@ -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
@@ -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
+