arcadia 0.7.0 → 0.8.0
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/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
|