arcadia 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +39 -38
- data/bin/arc +3 -0
- data/bin/arcadia +0 -1
- data/conf/arcadia.conf +54 -35
- data/conf/arcadia.init.rb +26 -3
- data/conf/arcadia.res.rb +56 -4
- data/ext/ae-breakpoints/ae-breakpoints.rb +1 -1
- data/ext/ae-dir-projects/ae-dir-projects.rb +113 -45
- data/ext/ae-editor/ae-editor.conf +6 -2
- data/ext/ae-editor/ae-editor.rb +1009 -616
- data/ext/ae-editor/langs/coderay.tokens +40 -0
- data/ext/ae-editor/langs/conf.lang +12 -10
- data/ext/ae-editor/langs/erb.lang.bind +1 -0
- data/ext/ae-editor/langs/java.lang +4 -0
- data/ext/ae-editor/langs/rb.lang +25 -55
- data/ext/ae-editor/langs/rhtml.lang +4 -0
- data/ext/ae-editor/langs/tokens.lang.bind +1 -0
- data/ext/ae-editor/langs/xml.lang +4 -0
- data/ext/ae-file-history/ae-file-history.rb +140 -32
- data/ext/ae-output/ae-output.rb +267 -262
- data/ext/ae-rad/ae-rad-inspector.rb +1 -1
- data/ext/ae-rad/ae-rad-libs.rb +15 -7
- data/ext/ae-rad/ae-rad.conf +4 -4
- data/ext/ae-rad/lib/tk/al-tk.rb +4 -3
- data/ext/ae-ruby-debug/ae-ruby-debug.conf +4 -2
- data/ext/ae-ruby-debug/ae-ruby-debug.rb +40 -15
- data/ext/ae-search-in-files/ae-search-in-files.rb +70 -14
- data/ext/ae-search-in-files/ext/ack-in-files/ack-in-files.conf +15 -0
- data/ext/ae-search-in-files/ext/ack-in-files/ack-in-files.rb +80 -0
- data/ext/ae-shell/ae-shell.conf +4 -1
- data/ext/ae-shell/ae-shell.rb +78 -43
- data/ext/test-shutdown-after-startup/test-shutdown-after-startup.conf +4 -0
- data/ext/test-shutdown-after-startup/test-shutdown-after-startup.rb +20 -0
- data/lib/a-commons.rb +118 -22
- data/lib/a-contracts.rb +46 -2
- data/lib/a-core.rb +970 -284
- data/lib/a-tkcommons.rb +16 -8
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ArrowButton.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/BWidget.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Button.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ButtonBox.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ComboBox.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Dialog.html +20 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/DragSite.html +6 -4
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/DropSite.html +15 -3
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/DynamicHelp.html +8 -5
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Entry.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Label.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/LabelEntry.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/LabelFrame.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ListBox.html +1 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/MainFrame.html +8 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/MessageDlg.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/NoteBook.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/PagesManager.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/PanedWindow.html +21 -5
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/PanelFrame.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/PasswdDlg.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ProgressBar.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ProgressDlg.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ScrollView.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ScrollableFrame.html +5 -2
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/ScrolledWindow.html +36 -4
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/SelectColor.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/SelectFont.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Separator.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/SpinBox.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/StatusBar.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/TitleFrame.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Tree.html +21 -31
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/Widget.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/contents.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/index.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/navtree.html +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/BWman/options.htm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/CHANGES.txt +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/ChangeLog +289 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/LICENSE.txt +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/README.txt +2 -2
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/arrow.tcl +1 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/bitmap.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/button.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/buttonbox.tcl +23 -12
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/color.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/combobox.tcl +101 -25
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/basic.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/bwidget.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/demo.tcl +1 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/dnd.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/manager.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/select.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/tmpldlg.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/tree.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/demo/x1.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/dialog.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/dragsite.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/dropsite.tcl +2 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/dynhelp.tcl +194 -33
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/entry.tcl +8 -5
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/font.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/bold.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/copy.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/cut.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/dragfile.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/dragicon.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/error.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/file.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/folder.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/hourglass.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/info.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/italic.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/minus.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/new.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/opcopy.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/open.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/openfold.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/oplink.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/opmove.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/overstrike.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/palette.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/passwd.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/paste.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/plus.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/print.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/question.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/redo.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/save.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/target.xbm +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/underline.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/undo.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/images/warning.gif +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/init.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/label.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/labelentry.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/labelframe.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/da.rc +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/de.rc +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/en.rc +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/es.rc +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/lang/fr.rc +0 -0
- data/tcl/BWidget-1.9.0/lang/hu.rc +52 -0
- data/tcl/BWidget-1.9.0/lang/nl.rc +52 -0
- data/tcl/BWidget-1.9.0/lang/no.rc +52 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/listbox.tcl +89 -34
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/mainframe.tcl +14 -13
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/messagedlg.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/notebook.tcl +3 -1
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/pagesmgr.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/panedw.tcl +22 -18
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/panelframe.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/passwddlg.tcl +7 -3
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/pkgIndex.tcl +2 -2
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/progressbar.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/progressdlg.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/scrollframe.tcl +60 -24
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/scrollview.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/scrollw.tcl +13 -11
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/separator.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/spinbox.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/statusbar.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/tests/entry.test +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/titleframe.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/tree.tcl +51 -41
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/utils.tcl +26 -11
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/widget.tcl +53 -19
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/wizard.tcl +0 -0
- data/tcl/{BWidget-1.8.0 → BWidget-1.9.0}/xpm2image.tcl +0 -0
- metadata +170 -145
data/ext/ae-rad/ae-rad-libs.rb
CHANGED
@@ -218,12 +218,16 @@ class AGRenderer
|
|
218
218
|
code = code, value.renderer.obj_code(_ind+1),"\n"
|
219
219
|
end
|
220
220
|
}
|
221
|
-
|
221
|
+
if code.kind_of?(Array)
|
222
|
+
code.flatten.join
|
223
|
+
else
|
224
|
+
code
|
225
|
+
end
|
222
226
|
end
|
223
227
|
|
224
228
|
def class_end(_ind=0)
|
225
229
|
code = code, "\n", INDENT_UNIT*(_ind+1),"end\n",INDENT_UNIT*(_ind),"end"
|
226
|
-
return code.
|
230
|
+
return code.flatten.join
|
227
231
|
end
|
228
232
|
|
229
233
|
def obj_code(_ind=0)
|
@@ -317,7 +321,7 @@ class AGRenderer
|
|
317
321
|
return nil
|
318
322
|
end
|
319
323
|
|
320
|
-
_prop['def_string'] != nil && !_prop['def_string'] ? is_string = false: is_string = true
|
324
|
+
_prop['def_string'] != nil && !_prop['def_string'] ? is_string = false : is_string = true
|
321
325
|
|
322
326
|
if _val.kind_of?(String) && is_string
|
323
327
|
_val = "'",_val,"'"
|
@@ -325,17 +329,21 @@ class AGRenderer
|
|
325
329
|
_val = _val.to_s
|
326
330
|
end
|
327
331
|
#Tk.messageBox('message'=>_val)
|
328
|
-
|
332
|
+
if _val.kind_of?(Array)
|
333
|
+
_val.flatten.join
|
334
|
+
else
|
335
|
+
_val
|
336
|
+
end
|
329
337
|
end
|
330
338
|
|
331
339
|
def render_value_default(_prop, _family)
|
332
340
|
return nil if _prop == nil
|
333
341
|
_val = _prop['value']
|
334
|
-
_prop['def_string'] != nil && !_prop['def_string'] ? is_string = false: is_string = true
|
342
|
+
_prop['def_string'] != nil && !_prop['def_string'] ? is_string = false : is_string = true
|
335
343
|
if _val.kind_of?(String) && is_string
|
336
344
|
_val = "'",_val,"'"
|
337
345
|
elsif _val != nil
|
338
|
-
_val = _val.
|
346
|
+
_val = _val.flatten.join
|
339
347
|
end
|
340
348
|
return _val
|
341
349
|
end
|
@@ -1115,4 +1123,4 @@ end
|
|
1115
1123
|
# end
|
1116
1124
|
# def update(_tobj)
|
1117
1125
|
# end
|
1118
|
-
#end
|
1126
|
+
#end
|
data/ext/ae-rad/ae-rad.conf
CHANGED
@@ -13,9 +13,9 @@ user_toolbar.contexts=tkrad
|
|
13
13
|
user_toolbar.tkrad = show
|
14
14
|
user_toolbar.tkrad.show.name=show_rad
|
15
15
|
user_toolbar.tkrad.show.hint=Show Rad Palette
|
16
|
-
user_toolbar.tkrad.show.image_data
|
17
|
-
user_toolbar.tkrad.show.event_class
|
18
|
-
user_toolbar.tkrad.show.event_args
|
16
|
+
user_toolbar.tkrad.show.image_data=!AGTKTOPLEVEL_GIF
|
17
|
+
user_toolbar.tkrad.show.event_class=!ActionEvent
|
18
|
+
user_toolbar.tkrad.show.event_args=!{'receiver'=>self, 'action' =>'show_rad'}
|
19
19
|
#:::::::::::::::: user toolbar :::::::::::::::::::::::::<end>
|
20
20
|
|
21
21
|
#:::::::::::::::: Libraries group ::::::::::::::::::::::<begin>
|
@@ -71,4 +71,4 @@ libraries.tkArcadia.action=
|
|
71
71
|
libraries.tkArcadia.require=tk
|
72
72
|
|
73
73
|
|
74
|
-
#:::::::::::::::: Libraries group ::::::::::::::::::::::<end>
|
74
|
+
#:::::::::::::::: Libraries group ::::::::::::::::::::::<end>
|
data/ext/ae-rad/lib/tk/al-tk.rb
CHANGED
@@ -2379,14 +2379,15 @@ class AGTkToplevel < AGTkContainer
|
|
2379
2379
|
|
2380
2380
|
def form2code
|
2381
2381
|
_title = @i_name+'.rb'
|
2382
|
-
_text = @renderer.class_code.
|
2382
|
+
_text = @renderer.class_code.flatten.join
|
2383
|
+
|
2383
2384
|
Arcadia.process_event(OpenBufferEvent.new(self,'title'=>_title, 'text'=>_text))
|
2384
2385
|
meditor = $arcadia['editor']
|
2385
2386
|
if meditor
|
2386
2387
|
_editor = meditor.raised
|
2387
2388
|
code2form = proc{
|
2388
2389
|
Revparsel.new(_editor.text_value)
|
2389
|
-
meditor.close_editor(_editor,
|
2390
|
+
meditor.close_editor(_editor, true)
|
2390
2391
|
InspectorContract.instance.raise_last_widget(meditor)
|
2391
2392
|
}
|
2392
2393
|
_editor.insert_popup_menu_item('end',
|
@@ -2992,4 +2993,4 @@ class ArcadiaLibTk < ArcadiaLib
|
|
2992
2993
|
self.add_class(AGTkMenu)
|
2993
2994
|
self.add_class(AGTkMenuButton)
|
2994
2995
|
end
|
2995
|
-
end
|
2996
|
+
end
|
@@ -7,11 +7,14 @@ frames.names=ruby_debug_inspector,ruby_debug_server
|
|
7
7
|
active=yes
|
8
8
|
require=ext/ae-ruby-debug/ae-ruby-debug
|
9
9
|
class=RubyDebug
|
10
|
+
gems=ruby-debug,whichr
|
11
|
+
1.9:@:gems=ruby-debug19,whichr
|
10
12
|
#========================================
|
11
13
|
#========================================
|
12
14
|
server.host=localhost
|
13
15
|
server.port=8989
|
14
16
|
server.timeout=10
|
17
|
+
auto_resume_break_on_first_line=yes
|
15
18
|
#font=courier 10
|
16
19
|
#font.bold=courier 10 bold
|
17
20
|
#color.background=#ffffff
|
@@ -20,5 +23,4 @@ server.timeout=10
|
|
20
23
|
#freebsd::font.bold=courier 10 bold
|
21
24
|
#win::font={Courier New} 8
|
22
25
|
#win::font.bold={Courier New} 8 bold
|
23
|
-
#========================================
|
24
|
-
|
26
|
+
#========================================
|
@@ -3,6 +3,7 @@
|
|
3
3
|
# by Antonio Galeone <antonio-galeone@rubyforge.org>
|
4
4
|
#
|
5
5
|
|
6
|
+
require 'whichr'
|
6
7
|
|
7
8
|
class RubyDebugView
|
8
9
|
include TkUtil
|
@@ -474,8 +475,8 @@ class RubyDebugView
|
|
474
475
|
begin
|
475
476
|
if _command == 'quit'
|
476
477
|
msg = "Really quit debug ? (y/n)"
|
477
|
-
ans = Tk.messageBox('icon' => 'question', 'type' => 'yesno',
|
478
|
-
'title' => '(Arcadia) Debug', 'message' => msg)
|
478
|
+
ans = 'yes'#Tk.messageBox('icon' => 'question', 'type' => 'yesno',
|
479
|
+
# 'title' => '(Arcadia) Debug', 'message' => msg)
|
479
480
|
if ans == 'yes'
|
480
481
|
debug_send(:quit_yes)
|
481
482
|
clear
|
@@ -559,7 +560,7 @@ class RubyDebugView
|
|
559
560
|
end
|
560
561
|
|
561
562
|
def is_simple_class?(_var)
|
562
|
-
['Numeric','Fixnum','String','FalseClass','TrueClass','NilClass'].include?(_var.value_class) && !_var.value.to_s.strip.include?("\n")
|
563
|
+
['Numeric','Fixnum','String','FalseClass','TrueClass','NilClass','Float','BigDecimal','Bignum','Symbol'].include?(_var.value_class) && !_var.value.to_s.strip.include?("\n")
|
563
564
|
end
|
564
565
|
|
565
566
|
def show_expression(_exp, _hash)
|
@@ -664,7 +665,7 @@ class RubyDebugView
|
|
664
665
|
end
|
665
666
|
|
666
667
|
def node_name(_node, _parent)
|
667
|
-
return "#{_parent}@@@#{_node.gsub('$','__S__').gsub('&','__E__').gsub(':','__D__').gsub('!','__A__')}"
|
668
|
+
return "#{_parent}@@@#{_node.to_s.gsub('$','__S__').gsub('&','__E__').gsub(':','__D__').gsub('!','__A__')}"
|
668
669
|
end
|
669
670
|
|
670
671
|
def var_name(_node)
|
@@ -744,7 +745,7 @@ class RubyDebugView
|
|
744
745
|
end
|
745
746
|
#@controller.rdc.send(_command)
|
746
747
|
rescue Exception => e
|
747
|
-
Arcadia.console(self, 'msg'=>"---> "+e.to_s, 'level'=>'debug')
|
748
|
+
Arcadia.console(self, 'msg'=>"---> "+e.to_s + ' ' + e.backtrace[0], 'level'=>'debug')
|
748
749
|
#Arcadia.new_debug_msg(self,"---> "+e.to_s)
|
749
750
|
end
|
750
751
|
end
|
@@ -769,7 +770,14 @@ class RubyDebugServer
|
|
769
770
|
|
770
771
|
def start_session_new(_filename, _host='localhost', _remote_port='8989')
|
771
772
|
if is_windows?
|
772
|
-
|
773
|
+
if RubyWhich.new.which("rdebug.bat") != []
|
774
|
+
rdebug_cmd = "rdebug.bat"
|
775
|
+
elsif RubyWhich.new.which("rdebug.cmd") != []
|
776
|
+
rdebug_cmd = "rdebug.cmd"
|
777
|
+
else
|
778
|
+
rdebug_cmd = "rdebug"
|
779
|
+
end
|
780
|
+
commandLine = "#{rdebug_cmd} --host #{_host} --port #{_remote_port} -sw #{_filename}"
|
773
781
|
else
|
774
782
|
commandLine = "rdebug --host #{_host} --port #{_remote_port} -sw #{_filename}"
|
775
783
|
end
|
@@ -786,7 +794,14 @@ class RubyDebugServer
|
|
786
794
|
|
787
795
|
def start_session(_filename, _host='localhost', _remote_port='8989')
|
788
796
|
if is_windows?
|
789
|
-
|
797
|
+
if RubyWhich.new.which("rdebug.bat") != []
|
798
|
+
rdebug_cmd = "rdebug.bat"
|
799
|
+
elsif RubyWhich.new.which("rdebug.cmd") != []
|
800
|
+
rdebug_cmd = "rdebug.cmd"
|
801
|
+
else
|
802
|
+
rdebug_cmd = "rdebug"
|
803
|
+
end
|
804
|
+
commandLine = "#{rdebug_cmd} --port #{_remote_port} -sw #{_filename}"
|
790
805
|
else
|
791
806
|
commandLine = "rdebug --host #{_host} --port #{_remote_port} -sw #{_filename}"
|
792
807
|
end
|
@@ -875,7 +890,7 @@ end
|
|
875
890
|
# * undisp[lay][ nnn]
|
876
891
|
# delete one particular or all display expressions if no expression number given
|
877
892
|
# * del[ete][ nnn]
|
878
|
-
# delete some or all breakpoints (get the number using
|
893
|
+
# delete some or all breakpoints (get the number using break)
|
879
894
|
# * c[ont]
|
880
895
|
# run until program ends or hit breakpoint
|
881
896
|
# * r[un]
|
@@ -1032,7 +1047,7 @@ class RubyDebugClient
|
|
1032
1047
|
end
|
1033
1048
|
return @session
|
1034
1049
|
rescue Exception => e
|
1035
|
-
Arcadia.console(self, 'msg'=>"Error on start_session : #{e.class}:#{e.message}", 'level'=>'debug')
|
1050
|
+
Arcadia.console(self, 'msg'=>"Error on start_session : #{e.class}:#{e.message} #{e.backtrace.join('..')}", 'level'=>'debug')
|
1036
1051
|
#Arcadia.new_debug_msg(self,"Error on start_session : #{e.class}:#{e.message}")
|
1037
1052
|
end
|
1038
1053
|
end
|
@@ -1369,7 +1384,7 @@ class RubyDebug < ArcadiaExt
|
|
1369
1384
|
attr_reader :rds
|
1370
1385
|
attr_reader :rdc
|
1371
1386
|
def on_before_build(_event)
|
1372
|
-
if
|
1387
|
+
if RubyWhich.new.which("rdebug") != []
|
1373
1388
|
#ArcadiaContractListener.new(self, EditorContract, :do_editor_event)
|
1374
1389
|
Arcadia.attach_listener(self, BufferEvent)
|
1375
1390
|
@breakpoints = Hash.new
|
@@ -1397,7 +1412,14 @@ class RubyDebug < ArcadiaExt
|
|
1397
1412
|
when StartDebugEvent
|
1398
1413
|
_filename = _event.file
|
1399
1414
|
_filename = @arcadia['pers']['run.file.last'] if _filename == "*LAST"
|
1400
|
-
|
1415
|
+
if File.exist?(_filename)
|
1416
|
+
debug(_filename)
|
1417
|
+
else
|
1418
|
+
Arcadia.dialog(self,
|
1419
|
+
'type'=>'ok',
|
1420
|
+
'title'=>'File not exist',
|
1421
|
+
'msg'=>"File #{_filename} not exist!")
|
1422
|
+
end
|
1401
1423
|
when StepDebugEvent
|
1402
1424
|
if (_event.command == :quit_yes)
|
1403
1425
|
@rds.quit_confirm_request = true
|
@@ -1541,10 +1563,13 @@ class RubyDebug < ArcadiaExt
|
|
1541
1563
|
@static_breakpoints.each{|_b|
|
1542
1564
|
#Arcadia.console(self,'msg'=>" breakpoint_add #{_b[:file]}:#{_b[:line]}")
|
1543
1565
|
breakpoint_add_live(_b[:file], _b[:line])
|
1544
|
-
}
|
1566
|
+
}
|
1567
|
+
if @static_breakpoints.length > 0 && conf("auto_resume_break_on_first_line")!='no'
|
1568
|
+
@rdv.debug_send(:resume)
|
1569
|
+
end
|
1545
1570
|
end
|
1546
1571
|
rescue Exception => e
|
1547
|
-
Arcadia.console(self, 'msg'=>"---> "+e.to_s, 'level'=>'debug')
|
1572
|
+
Arcadia.console(self, 'msg'=>"---> "+e.to_s+ ' ' + e.backtrace[0], 'level'=>'debug')
|
1548
1573
|
end
|
1549
1574
|
end
|
1550
1575
|
end
|
@@ -1581,7 +1606,7 @@ class RubyDebug < ArcadiaExt
|
|
1581
1606
|
begin
|
1582
1607
|
debug_free
|
1583
1608
|
rescue Exception => e
|
1584
|
-
Arcadia.console(self, 'msg'=>"debug_quit:---> "+e.to_s, 'level'=>'debug')
|
1609
|
+
Arcadia.console(self, 'msg'=>"debug_quit:---> "+e.to_s+ ' ' + e.backtrace[0], 'level'=>'debug')
|
1585
1610
|
#Arcadia.new_debug_msg(self, "debug_quit:---> "+e.to_s)
|
1586
1611
|
#@arcadia['shell'].outln("debug_quit:---> "+e.to_s )
|
1587
1612
|
end
|
@@ -1591,4 +1616,4 @@ class RubyDebug < ArcadiaExt
|
|
1591
1616
|
|
1592
1617
|
|
1593
1618
|
|
1594
|
-
end
|
1619
|
+
end
|
@@ -11,15 +11,17 @@ class SearchInFilesService < ArcadiaExt
|
|
11
11
|
|
12
12
|
end
|
13
13
|
|
14
|
-
|
15
14
|
class SearchInFilesListener
|
16
15
|
def initialize(_service)
|
17
16
|
@service = _service
|
18
|
-
create_find
|
17
|
+
create_find 'Search in files'
|
19
18
|
end
|
20
19
|
|
21
20
|
def on_before_search_in_files(_event)
|
22
21
|
if _event.what.nil?
|
22
|
+
if _event.dir
|
23
|
+
@find.e_dir.text(_event.dir)
|
24
|
+
end
|
23
25
|
@find.show
|
24
26
|
end
|
25
27
|
end
|
@@ -31,21 +33,54 @@ class SearchInFilesListener
|
|
31
33
|
#def on_after_search_in_files(_event)
|
32
34
|
#end
|
33
35
|
|
34
|
-
def create_find
|
36
|
+
def create_find title
|
35
37
|
@find = FindFrame.new(@service.arcadia.layout.root)
|
36
38
|
@find.on_close=proc{@find.hide}
|
37
39
|
@find.hide
|
38
|
-
@find.b_go.bind('1', proc{Thread.new{do_find}})
|
39
|
-
|
40
|
+
@find.b_go.bind('1', proc{Thread.new{update_all_combo;do_find}}) # add trigger to button
|
41
|
+
|
42
|
+
enter_proc = proc {|e|
|
40
43
|
case e.keysym
|
41
44
|
when 'Return'
|
45
|
+
update_all_combo
|
42
46
|
do_find
|
43
47
|
Tk.callback_break
|
44
48
|
end
|
45
49
|
}
|
46
|
-
|
50
|
+
|
51
|
+
for method in [:e_what_entry, :e_filter_entry, :e_dir_entry] do
|
52
|
+
@find.send(method).bind_append('KeyRelease') { |*args| enter_proc.call *args } # ltodo why can't we pass it in like &enter_proc?
|
53
|
+
end
|
54
|
+
@find.title(title)
|
47
55
|
end
|
48
56
|
private :create_find
|
57
|
+
|
58
|
+
def update_what_combo(_txt)
|
59
|
+
values = @find.e_what.cget('values')
|
60
|
+
if (values != nil && !values.include?(_txt))
|
61
|
+
@find.e_what.insert('end', _txt)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
def update_filter_combo(_txt)
|
66
|
+
values = @find.e_filter.cget('values')
|
67
|
+
if (values != nil && !values.include?(_txt))
|
68
|
+
@find.e_filter.insert('end', _txt)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def update_dir_combo(_txt)
|
73
|
+
values = @find.e_dir.cget('values')
|
74
|
+
if (values != nil && !values.include?(_txt))
|
75
|
+
@find.e_dir.insert('end', _txt)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
def update_all_combo
|
80
|
+
update_what_combo(@find.e_what.text)
|
81
|
+
update_filter_combo(@find.e_filter.text)
|
82
|
+
update_dir_combo(@find.e_dir.text)
|
83
|
+
end
|
49
84
|
|
50
85
|
def do_find
|
51
86
|
return if @find.e_what.text.strip.length == 0 || @find.e_filter.text.strip.length == 0 || @find.e_dir.text.strip.length == 0
|
@@ -56,6 +91,9 @@ class SearchInFilesListener
|
|
56
91
|
@service.frame.show
|
57
92
|
end
|
58
93
|
begin
|
94
|
+
|
95
|
+
MonitorLastUsedDir.set_last @find.e_dir.text # save it away TODO make it into a message
|
96
|
+
|
59
97
|
_search_title = 'search result for : "'+@find.e_what.text+'" in :"'+@find.e_dir.text+'"'+' ['+@find.e_filter.text+']'
|
60
98
|
_filter = @find.e_dir.text+'/**/'+@find.e_filter.text
|
61
99
|
_files = Dir[_filter]
|
@@ -80,7 +118,7 @@ class SearchInFilesListener
|
|
80
118
|
Arcadia.console(self, 'msg'=>e.message, 'level'=>'error')
|
81
119
|
#Arcadia.new_error_msg(self, e.message)
|
82
120
|
ensure
|
83
|
-
@progress_bar.destroy
|
121
|
+
@progress_bar.destroy if @progress_bar
|
84
122
|
end
|
85
123
|
|
86
124
|
end
|
@@ -188,14 +226,27 @@ class SearchOutput
|
|
188
226
|
@results[_node][_node_name]=[_file,_line]
|
189
227
|
Tk.update
|
190
228
|
end
|
229
|
+
|
230
|
+
def add_result(_node, _file, _line='', _line_text='')
|
231
|
+
@count = @count+1
|
232
|
+
@tree.itemconfigure(_node, 'fill'=>@found_color, 'text'=>@text_result+' { '+@count.to_s+' found }')
|
233
|
+
_text = _file+':'+_line+' : '+_line_text
|
234
|
+
_node_name = new_node_name
|
235
|
+
@tree.insert('end', _node ,_node+'@@@'+_node_name, {
|
236
|
+
'fill'=>@item_color,
|
237
|
+
'anchor'=>'w',
|
238
|
+
'font' => Arcadia.conf('treeitem.font'),
|
239
|
+
'text' => _text.strip
|
240
|
+
})
|
241
|
+
@results[_node][_node_name]=[_file,_line]
|
242
|
+
Tk.update
|
243
|
+
end
|
191
244
|
|
192
245
|
end
|
193
246
|
|
194
247
|
class FindFrame < TkFloatTitledFrame
|
195
|
-
attr_reader :e_what
|
196
|
-
attr_reader :e_what_entry
|
197
|
-
attr_reader :e_filter
|
198
|
-
attr_reader :e_dir
|
248
|
+
attr_reader :e_what, :e_filter, :e_dir
|
249
|
+
attr_reader :e_what_entry, :e_filter_entry, :e_dir_entry
|
199
250
|
attr_reader :b_go
|
200
251
|
def initialize(_parent)
|
201
252
|
super(_parent)
|
@@ -215,6 +266,7 @@ class FindFrame < TkFloatTitledFrame
|
|
215
266
|
place('relwidth' => 1, 'width'=>-16,'x' => 8,'y' => y0,'height' => 19)
|
216
267
|
}
|
217
268
|
@e_what_entry = TkWinfo.children(@e_what)[0]
|
269
|
+
# this means "after each key press
|
218
270
|
@e_what_entry.bind_append("1",proc{Arcadia.process_event(InputEnterEvent.new(self,'receiver'=>@e_what_entry))})
|
219
271
|
|
220
272
|
y0 = y0 + d
|
@@ -230,12 +282,14 @@ class FindFrame < TkFloatTitledFrame
|
|
230
282
|
autocomplete 'true'
|
231
283
|
expand 'tab'
|
232
284
|
takefocus 'true'
|
233
|
-
|
285
|
+
#pack('padx'=>10, 'fill'=>'x')
|
234
286
|
place('relwidth' => 1, 'width'=>-16,'x' => 8,'y' => y0,'height' => 19)
|
235
287
|
}
|
236
288
|
@e_filter_entry = TkWinfo.children(@e_filter)[0]
|
237
289
|
@e_filter_entry.bind_append("1",proc{Arcadia.process_event(InputEnterEvent.new(self,'receiver'=>@e_filter_entry))})
|
238
290
|
|
291
|
+
@e_filter.insert('end', '*.*')
|
292
|
+
@e_filter.insert('end', '*.rb')
|
239
293
|
@e_filter.text('*.rb')
|
240
294
|
y0 = y0 + d
|
241
295
|
|
@@ -256,7 +310,9 @@ class FindFrame < TkFloatTitledFrame
|
|
256
310
|
#pack('fill'=>'x')
|
257
311
|
#place('relwidth' => 1, 'width'=>-16,'x' => 8,'y' => y0,'height' => 19)
|
258
312
|
}
|
259
|
-
@e_dir.text(
|
313
|
+
@e_dir.text(MonitorLastUsedDir.get_last_dir)
|
314
|
+
@e_dir_entry = TkWinfo.children(@e_dir)[0]
|
315
|
+
|
260
316
|
@b_dir = TkButton.new(@e_dir, Arcadia.style('button') ){
|
261
317
|
compound 'none'
|
262
318
|
default 'disabled'
|
@@ -296,4 +352,4 @@ class FindFrame < TkFloatTitledFrame
|
|
296
352
|
@e_what.focus
|
297
353
|
@e_what_entry.selection_range(0,'end')
|
298
354
|
end
|
299
|
-
end
|
355
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
name=ack_in_files
|
2
|
+
frames=1.1
|
3
|
+
frames.labels=Ack in files
|
4
|
+
frames.names=ack_in_files
|
5
|
+
active=yes
|
6
|
+
require=ext/ae-search-in-files/ext/ack-in-files/ack-in-files
|
7
|
+
class=AckInFilesService
|
8
|
+
font=courier 10
|
9
|
+
font.bold=courier 10 bold
|
10
|
+
color.background=#ffffff
|
11
|
+
color.foreground=#000000
|
12
|
+
freebsd::font=courier 12 italic
|
13
|
+
freebsd::font.bold=courier 12 bold
|
14
|
+
win::font={Courier New} 9
|
15
|
+
win::font.bold={Courier New} 9 bold
|