arcadia 1.0.0 → 1.1.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.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +90 -28
  3. data/conf/LC/en-UK.LANG +6 -0
  4. data/conf/LC/ru-RU.LANG +0 -0
  5. data/conf/arcadia.conf +8 -4
  6. data/conf/arcadia.res.rb +86 -1
  7. data/conf/theme-dark.conf +2 -1
  8. data/ext/ae-breakpoints/ae-breakpoints.rb +1 -1
  9. data/ext/ae-dir-projects/ae-dir-projects.rb +42 -6
  10. data/ext/ae-editor/ae-editor.rb +227 -120
  11. data/ext/ae-editor/langs/coderay.tokens +0 -0
  12. data/ext/ae-editor/langs/conf.lang +0 -0
  13. data/ext/ae-editor/langs/css.lang +0 -0
  14. data/ext/ae-editor/langs/html.lang +0 -0
  15. data/ext/ae-editor/langs/java.lang +0 -0
  16. data/ext/ae-editor/langs/python.lang +0 -0
  17. data/ext/ae-editor/langs/ruby.lang +0 -0
  18. data/ext/ae-editor/langs/text.lang +0 -0
  19. data/ext/ae-editor/langs/xml.lang +0 -0
  20. data/ext/ae-editor/lib/rbeautify.rb +0 -0
  21. data/ext/ae-file-history/ae-file-history.rb +4 -3
  22. data/ext/ae-output/ae-output.rb +44 -31
  23. data/ext/ae-ruby-debug/ae-ruby-debug.conf +3 -2
  24. data/ext/ae-ruby-debug/ae-ruby-debug.rb +1 -0
  25. data/ext/ae-search-in-files/ae-search-in-files.rb +3 -3
  26. data/ext/ae-search-in-files/ext/ack-in-files/ack-in-files.conf +0 -0
  27. data/ext/ae-search-in-files/ext/ack-in-files/ack-in-files.rb +0 -0
  28. data/ext/ae-shell/ae-shell.rb +37 -15
  29. data/ext/ae-subprocess-inspector/ae-subprocess-inspector.rb +14 -8
  30. data/ext/ae-subprocess-inspector/butterfly.res +0 -0
  31. data/ext/ae-subprocess-inspector/process.res +0 -0
  32. data/ext/ae-subprocess-inspector/space-invader.res +0 -0
  33. data/ext/ae-term/ae-term.conf +0 -0
  34. data/ext/ae-term/ae-term.rb +0 -0
  35. data/ext/test-shutdown-after-startup/test-shutdown-after-startup.conf +0 -0
  36. data/ext/test-shutdown-after-startup/test-shutdown-after-startup.rb +0 -0
  37. data/lib/a-commons.rb +1 -1
  38. data/lib/a-contracts.rb +13 -3
  39. data/lib/a-core.rb +612 -142
  40. data/lib/a-tkcommons.rb +661 -50
  41. data/lib/anigif.rb +0 -0
  42. data/lib/iosync.rb +71 -0
  43. data/tcl/anigif/anigif.tcl +0 -0
  44. data/tcl/anigif/pkgIndex.tcl +0 -0
  45. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2df5f4413e33fb4b4a8fd03823047b42e1486445
4
- data.tar.gz: caeb243d2d11937f4747506e890ccc0554165948
3
+ metadata.gz: 4611baf00758fb21466c6dfd94cd49d42074dad1
4
+ data.tar.gz: f325bd7340e97c3a6ea3138f88294b30073da697
5
5
  SHA512:
6
- metadata.gz: 9325243de6229103cbebba1da241154ca8da09320c4bcc31b950d9a1b8fb50836482c15458e6f16cb817f35214dc906d86afa3c0b9d7a32665993b4c7eeee8e3
7
- data.tar.gz: a8645481d9ccf1563a8cd955e5cce3c95b3d86baf314a064384c456b4e6c52ae5f9ce47010ecb3048feca1f792c1ff30279afa2b6ee6c9453f2d61df875d1542
6
+ metadata.gz: f5288b57c81c601457884c1439f22baa190ac1ff4a89664acd5ae4772e398c5c58eedbf69d7973e4c3d03ac69830a0359b87416fd55d2102563c2acb7e7a45ec
7
+ data.tar.gz: 118c4e1c57fd930901eaf3188165b51e91284aab52cc60a907c89ffc28b094bffbde84a25bd3785be0386e77e10ec4930525a90f6f2961096e09692ba9c0a44a
data/README.md CHANGED
@@ -1,15 +1,16 @@
1
1
  # Arcadia IDE
2
- version 1.0.0
2
+ version 1.1.0
3
3
 
4
4
  by Antonio Galeone
5
- on Nov 30, 2014
5
+ on Sep 06, 2015
6
6
 
7
7
  ## About
8
8
 
9
9
  Arcadia is a light editor (IDE) for Ruby language
10
- written in Ruby using the classic Tcl/Tk GUI toolkit.
10
+ written in Ruby using the classic Tcl/Tk GUI toolkit
11
+ and developed with Arcadia itself.
11
12
 
12
- Some of Arcadia ide project features include:
13
+ Some of Arcadia IDE project features include:
13
14
  * Editor with source browsing, syntax highlighting, code completion
14
15
  * Working on any platform where Ruby and Tcl-Tk work.
15
16
  * Debugging support
@@ -18,10 +19,6 @@ Some of Arcadia ide project features include:
18
19
  ## How to install
19
20
  * `exec on command line "gem install arcadia"`
20
21
 
21
- NOTE: on some linux distributions like archlinux the default Tcl/Tk runtime at this time is on versions >= 8.6
22
- on the other hand ruby-tk supports fully only versions <= 8.5.x.y so to make arcadia working a choice
23
- can be install ActiveTcl 8.5 and use ruby via rvm.
24
-
25
22
  ## How to run
26
23
  * `exec on command line "arcadia"`
27
24
 
@@ -29,20 +26,41 @@ can be install ActiveTcl 8.5 and use ruby via rvm.
29
26
  [https://github.com/angal/arcadia/wiki]
30
27
 
31
28
  ## News
29
+ [1.1.0] This release:
30
+ - added possibility to define custom runner:
31
+ go to "run current" menubutton and click on "Manage runner ...". A dialog window will open.
32
+ You can do actions as: "add new runner", "copy a runner", "delete a personal runner", "save".
33
+ The list of runners is usable also in "Dir Projects".
34
+
35
+ These are keywords that you can use in cmd definitions (see preconfigured runners):
36
+ <<RUBY>> ruby interpreter
37
+ <<FILE>> current file
38
+ <<DIR>> current dir
39
+ <<FILE_BASENAME>> basename of current file
40
+ <<FILE_BASENAME_WITHOUT_EXT>> basename of current file without extension
41
+ <<INPUT_FILE>> open select file dialog to get file
42
+ <<INPUT_DIR>> open select dir dialog to get dir
43
+ <<INPUT_STRING>> open select string dialog to get a generic string
44
+
45
+ - on ruby >= 2.0 added runner "debug selected as ruby file in console"
46
+ - on ruby >= 2.0 discontinued dependence from rdebug gem
47
+ - done changes for ruby >= 2.0 and tck/tk 8.6 compatability
48
+ - improved "Output", added option to auto open in editor a file, usefull with
49
+ the runner "debug selected as ruby file in console"
50
+ - fixed bugs
51
+ - introduces other general improvements
52
+
32
53
  [1.0.0]
33
- This release:
34
54
  - improves crossplatform features
35
55
  - changes dialogs metaphor
36
56
  - improves start speed
37
57
  - introduces other general improvements
38
58
 
39
59
  [0.13.1]
40
- This release:
41
60
  - added Russian translation (Thanks to Michael)
42
61
  - bug fixes and various improvements
43
62
 
44
63
  [0.13.0]
45
- This release:
46
64
  - improves file-history introducing bookmarks management
47
65
  - improves layout
48
66
  - fixes bugs
@@ -68,23 +86,23 @@ can be install ActiveTcl 8.5 and use ruby via rvm.
68
86
 
69
87
  ## Dependencies
70
88
 
71
- - rubygems
72
- - ruby-tk
73
- - tcl/tk (ruby-tk supports fully Tcl/Tk runtime <= 8.5 )
74
- - tk-tile (if Tcl/Tk < 8.5)
75
- - ctags (Linux)
76
- - xterm (Linux, optional)
77
- - xdotool (Linux, optional)
78
- - ack (optional)
79
- - gem coderay (> 1.0)
80
- - gem debugger (ruby-debug on Ruby < 1.9)
81
- - gem win32-process (only on Windows)
82
- - gem ruby-wmi (only on Windows)
89
+ - rubygems
90
+ - ruby-tk
91
+ - tcl/tk
92
+ - tk-tile (if Tcl/Tk < 8.5)
93
+ - ctags (Linux)
94
+ - xterm (Linux, optional)
95
+ - xdotool (Linux, optional)
96
+ - ack (optional)
97
+ - gem coderay (> 1.0)
98
+ - gem debugger (only for Ruby < 2.0)
99
+ - gem win32-process (only on Windows)
100
+ - gem ruby-wmi (only on Windows)
83
101
 
84
102
 
85
103
  ## Short User guide
86
104
  Application layout is splitted in vertical and horizontal resizable frames.
87
- On vertical and horizontal splitter appear two button for left or right
105
+ On vertical and horizontal splitter two button appear for left or right
88
106
  one shot frame closing.
89
107
  Every frame has a title, a button to expand or resizing it and a menu-button
90
108
  for dynamic layout functions (like add row, add column, close or for move a frame).
@@ -94,11 +112,11 @@ The toolbar button are in order:
94
112
  - new, open, save, find
95
113
  (relatively to edit/find operation)
96
114
  after "new" there is a menubutton to choose a type of file
115
+ - new, open Dir Project, search in files, Open terminal from current folder, Toggle bookmark
97
116
  - run current, run last
98
117
  (for execute the raised file in the editor or the last runned file)
99
118
  after "run current" there is a menubutton to choose a configurated runner to apply at current file
100
- - debug current, debug last, quit debug panel
101
- (for debug need)
119
+ - (on ruby < 2.0) debug current, debug last, quit debug panel
102
120
  - quit (to exit from arcadia)
103
121
 
104
122
  #### Editor
@@ -134,6 +152,7 @@ These are same editor short-cut:
134
152
  It is a navigational tree:
135
153
  - open or create dir as project
136
154
  - make commons file system activity (by contextual menu)
155
+ - make custom action (by runners)
137
156
  - open terminal from selected dir
138
157
 
139
158
  #### File history
@@ -141,13 +160,56 @@ The last used files are organizing in tree so you can reopen them or their
141
160
  directory by clicking on the tree node.
142
161
 
143
162
  #### Debug
144
- Require debugger gem.
163
+ Require debugger gem and ruby < 2.0.
145
164
  It is created when a debug session init.
146
165
  The debug button are: Step Next, Step Into, Step Over, Resume and quit.
147
166
  The debug frame show the local, instance and global variables for each
148
167
  step.
149
168
 
150
- NOTE: at this moment debugger doesn't seem to work with ruby >= 2.0
169
+ NOTE: at this moment on ruby >= 2.0 you can debug by using "debug selected as ruby file in console" runner
170
+ and optionally on "Output" the flag "auto open file in editor" using standard ruby debug input commands:
171
+
172
+ Debugger help v.-0.002b
173
+ Commands
174
+ b[reak] [file:|class:]<line|method>
175
+ b[reak] [class.]<line|method>
176
+ set breakpoint to some position
177
+ wat[ch] <expression> set watchpoint to some expression
178
+ cat[ch] (<exception>|off) set catchpoint to an exception
179
+ b[reak] list breakpoints
180
+ cat[ch] show catchpoint
181
+ del[ete][ nnn] delete some or all breakpoints
182
+ disp[lay] <expression> add expression into display expression list
183
+ undisp[lay][ nnn] delete one particular or all display expressions
184
+ c[ont] run until program ends or hit breakpoint
185
+ s[tep][ nnn] step (into methods) one line or till line nnn
186
+ n[ext][ nnn] go over one line or till line nnn
187
+ w[here] display frames
188
+ f[rame] alias for where
189
+ l[ist][ (-|nn-mm)] list program, - lists backwards
190
+ nn-mm lists given lines
191
+ up[ nn] move to higher frame
192
+ down[ nn] move to lower frame
193
+ fin[ish] return to outer frame
194
+ tr[ace] (on|off) set trace mode of current thread
195
+ tr[ace] (on|off) all set trace mode of all threads
196
+ q[uit] exit from debugger
197
+ v[ar] g[lobal] show global variables
198
+ v[ar] l[ocal] show local variables
199
+ v[ar] i[nstance] <object> show instance variables of object
200
+ v[ar] c[onst] <object> show constants of object
201
+ m[ethod] i[nstance] <obj> show methods of object
202
+ m[ethod] <class|module> show instance methods of class or module
203
+ th[read] l[ist] list all threads
204
+ th[read] c[ur[rent]] show current thread
205
+ th[read] [sw[itch]] <nnn> switch thread context to nnn
206
+ th[read] stop <nnn> stop thread nnn
207
+ th[read] resume <nnn> resume thread nnn
208
+ pp expression evaluate expression and pretty_print its value
209
+ p expression evaluate expression and print its value
210
+ r[estart] restart program
211
+ h[elp] print this help
212
+ <everything else> evaluate
151
213
 
152
214
  #### Configuration
153
215
  Same Arcadia properties are locally configurabled by editing the file arcadia.conf
@@ -4,6 +4,7 @@ main.menu.file.open=Open
4
4
  main.menu.file.new=New
5
5
  main.menu.file.save=Save
6
6
  main.menu.file.save_as=Save as ...
7
+ main.menu.file.delete=Delete current file
7
8
  main.menu.file.quit=Quit
8
9
  #main.menu.edit
9
10
  main.menu.edit=Edit
@@ -90,6 +91,8 @@ main.d.confirm_delete_ext_instance.msg=Shure delete '$0'?
90
91
  main.d.confirm_delete_ext_instance.title=(Arcadia) Delete $0
91
92
  main.d.confirm_override_file.msg=The filename $0 already exists. Do you want to overwrite it?
92
93
  main.d.confirm_override_file.title=Overriding existing file
94
+ main.d.confirm_exit_runners_manager.msg=Something has changed! Really do you want to close?
95
+ main.d.confirm_exit_runners_manager.title=(Arcadia) Close dialog
93
96
  main.about.by=by $0
94
97
  main.about.version=version: $0
95
98
  main.about.contributors=Contributors: $0
@@ -159,6 +162,8 @@ ext.editor.file.save_modified.msg=$0 modified. Save?
159
162
  ext.editor.file.save_modified.title=Confirm saving
160
163
  ext.editor.file.close_modified_by_other.msg=$0 modified by other process. Continue closing?
161
164
  ext.editor.file.close_modified_by_other.title=Continue closing
165
+ ext.editor.file.d.delete.msg=Delete $0 ?
166
+ ext.editor.file.d.delete.title=Confirm delete
162
167
  ext.editor.e.ctags.msg="exuberant ctags" package is required by class browsing, without it only ruby language is supported!
163
168
  ext.editor.e.ctags.title=Exuberant Ctags missing!
164
169
  ext.editor.e.prettify.title=(Arcadia) code prettify
@@ -179,6 +184,7 @@ ext.dir_projects.menu.refactor=Refactor
179
184
  ext.dir_projects.menu.refactor.rename=Rename
180
185
  ext.dir_projects.menu.refactor.move=Move
181
186
  ext.dir_projects.menu.search=Search from here
187
+ ext.dir_projects.menu.runners=Runners
182
188
  ext.dir_projects.menu.search.find=Find in files...
183
189
  ext.dir_projects.menu.search.act=Act in files...
184
190
  ext.dir_projects.menu.term=Terminal from here
File without changes
@@ -318,7 +318,8 @@ hightlight.debug.foreground=#d95ed9
318
318
  hightlight.debug.background=#b3c1d9
319
319
  hightlight.debug.borderwidth=2
320
320
  hightlight.debug.relief=groove
321
- hightlight.edge.foreground=#3c3c3c
321
+ #hightlight.edge.foreground=#3c3c3c
322
+ hightlight.edge.foreground=#00006f5c6f5c
322
323
  hightlight.prompt.foreground=#009900
323
324
  hightlight.system_error.foreground=#ffff00
324
325
  hightlight.system_error.background=#990000
@@ -385,7 +386,7 @@ user_menu.contexts=File,Edit,Search,View,Tools,Help,menubutton_run,menubutton_ne
385
386
  #---- File
386
387
  user_menu.File.context_underline=0
387
388
  user_menu.File.context_path=/
388
- user_menu.File=open,new,save,save_as,-,quit
389
+ user_menu.File=open,new,save,save_as,-,delete,-,quit
389
390
  #
390
391
  user_menu.File.open.name=open
391
392
  #user_menu.File.open.hint=Open
@@ -410,6 +411,9 @@ user_menu.File.save_as.name=save_as
410
411
  user_menu.File.save_as.caption=!Arcadia.text('main.menu.file.save_as')
411
412
  user_menu.File.save_as.event_class=!SaveAsBufferEvent
412
413
 
414
+ user_menu.File.delete.name=delete
415
+ user_menu.File.delete.caption=!Arcadia.text('main.menu.file.delete')
416
+ user_menu.File.delete.event_class=!DeleteFileBufferEvent
413
417
 
414
418
  user_menu.File.quit.name=quit
415
419
  #user_menu.File.quit.hint=Quit
@@ -668,9 +672,9 @@ theme=dark
668
672
  # runners keywords related the current file => FILE, DIR, FILE_BASENAME, FILE_BASENAME_WITHOUT_EXT
669
673
  runners_instance_history=3
670
674
  runners.ruby_file = {:lang=>"ruby",:cmd=>"<<RUBY>> -C'<<DIR>>' '<<FILE>>'",:file=>"*CURR",:title=>Arcadia.text('main.runner.run_selected.title',['ruby']),:file_exts=>".rb,.rbw"}
671
- #runners.ruby.debug_console = {:lang=>"ruby",:cmd=>"rdebug <<FILE>>",:file=>"*CURR",:title=>Arcadia.text('main.runner.rdebug_selected.title',['ruby']),:file_exts=>".rb,.rbw"}
672
675
  WINDOWS::runners.ruby_file = {:lang=>"ruby", :cmd=>"rubyw -C'<<DIR>>' '<<FILE>>'",:file=>"*CURR",:title=>Arcadia.text('main.runner.run_selected.title',['ruby']),:file_exts=>".rb,.rbw"}
676
+ 2:@:runners.ruby.debug.curr.inconsole = {:cmd=>"<<RUBY>> -r debug '<<FILE>>'",:file=>"*CURR",:title=>Arcadia.text('main.runner.rdebug_selected.title',['ruby']),:file_exts=>".rb,.rbw",:image=>DEBUG_CURRENT_GIF}
673
677
  runners.java_file = {:lang=>"java",:cmd=>"javac -g <<FILE>> && java -classpath <<DIR>> <<FILE_BASENAME_WITHOUT_EXT>>",:file=>"*CURR",:title=>Arcadia.text('main.runner.compile_and_run_selected.title',['java']),:file_exts=>".java"}
674
678
  runners.python_file = {:lang=>"python",:cmd=>"python '<<FILE>>'",:file=>"*CURR",:title=>Arcadia.text('main.runner.run_selected.title',['python']),:file_exts=>".py", :lang=>"python"} # todo delete file_exts
675
679
  runners.generic_file = {:cmd=>"<<FILE>>",:file=>"*CURR",:title=>Arcadia.text('main.runner.run_selected.title',['generic']),:file_exts=>""}
676
- #runners.android.new_project = {:cmd=>"android --name <<NAME>> --version <<VERSION>>",:prompt=>"NAME:Name;VERSION:Version",:title=>Arcadia.text('main.runner.run_android.title',['generic']),:file_exts=>""}
680
+ #runners.android.new_project = {:cmd=>"android --name <<INPUT_STRING>> --version <<INPUT_STRING>>",:title=>"Test - Create new Android project",:file_exts=>""}
@@ -1815,6 +1815,91 @@ ybL3Jxknt4ZJuUloh5dWeRUSmli0OuVUU8eEqgnJ0rlherrkyhrbuxUMKExc
1815
1815
  bHyMnKy8zNwMUgAAOw==
1816
1816
  EOS
1817
1817
 
1818
+ ARCADIA_7THE_GIF=<<EOS
1819
+ R0lGODlhGwESAOfTAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoK
1820
+ CgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBoa
1821
+ GhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJScnJygoKCkpKSsr
1822
+ KywsLC0tLS4uLi8vLzAwMDIyMjMzMzQ0NDU1NTY2Njc3Nzk5OTo6Ojs7Ozw8
1823
+ PD09PT4+Pj8/P0BAQEJCQkNDQ0VFRUZGRkhISEpKSktLS09PT1BQUFFRUVJS
1824
+ UlRUVFVVVVZWVllZWVpaWlxcXF1dXV5eXmBgYGFhYWJiYmRkZGZmZmdnZ2pq
1825
+ amtra2xsbG1tbW5ubm9vb3BwcHFxcXNzc3V1dXx8fH19fX5+fn9/f4CAgIKC
1826
+ goODg4SEhIWFhYaGhoeHh4iIiIuLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOT
1827
+ k5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKi
1828
+ oqOjo6SkpKWlpaampqenp6ioqKqqqqysrK2tra6urq+vr7CwsLGxsbKysrOz
1829
+ s7S0tLW1tba2tri4uLm5ubu7u7y8vL29vb+/v8PDw8TExMXFxcbGxsfHx8nJ
1830
+ ycrKysvLy8zMzM3Nzc/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19nZ2dra
1831
+ 2tvb29zc3N3d3d7e3t/f3+Dg4OHh4eLi4uTk5OXl5ebm5ufn5+jo6Onp6erq
1832
+ 6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5
1833
+ +fr6+vv7+/z8/P39/f7+/v//////////////////////////////////////
1834
+ ////////////////////////////////////////////////////////////
1835
+ ////////////////////////////////////////////////////////////
1836
+ /////////////////////yH+OUNSRUFUT1I6IGdkLWpwZWcgdjEuMCAodXNp
1837
+ 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
1900
+ cUQUcCzQ0F0PU20VYQwF9QEoDTELGwAAAQEAOw==
1901
+ EOS
1902
+
1818
1903
 
1819
1904
  MENUBUTTON_ARROW_DOWN_GIF=<<EOS
1820
1905
  R0lGODlhCQAKAIABADOi1P///yH5BAEAAAEALAAAAAAJAAoAAAIUDBB5uofs
@@ -2048,4 +2133,4 @@ CHECKBOX_2_DARK_GIF=<<EOS
2048
2133
  R0lGODlhEAAQAMIDAD8/P4yMjKampv///////////////////yH5BAEAAAQA
2049
2134
  LAAAAAAQABAAAAM6SLrc/k7ISWVYAujNxVUZJ3qYNpyoRoImeqofEbovsMqt
2050
2135
  C5cAPeysHg2IE3ViISOxwrwFntAoFEJNAAA7
2051
- EOS
2136
+ EOS
@@ -1,6 +1,7 @@
1
1
  background=#33302e
2
2
 
3
- foreground=gray
3
+ #foreground=gray
4
+ foreground=#ffffff
4
5
  activebackground=#334b56
5
6
  activeforeground=yellow
6
7
  inactiveforeground=#3ae13ae13ae1
@@ -153,7 +153,7 @@ class Breakpoints < ArcadiaExt
153
153
 
154
154
 
155
155
  @tree_break.textbind_append("Button-3",
156
- proc{|*x|
156
+ proc{
157
157
  _x = TkWinfo.pointerx(@tree_break)
158
158
  _y = TkWinfo.pointery(@tree_break)
159
159
  #_selected = @tree_break.selection_get[0]
@@ -444,7 +444,23 @@ class DirProjects < ArcadiaExtPlus
444
444
  :menu=>sub_ref_search,
445
445
  :hidemargin => false
446
446
  )
447
+
448
+ #-----------------
449
+ #----- runners submenu
450
+ @sub_ref_runners = Arcadia.wf.menu(
451
+ :parent=>@pop_up_tree,
452
+ :tearoff=>0,
453
+ :title => Arcadia.text('ext.dir_projects.menu.runners')
454
+ )
447
455
 
456
+ @pop_up_tree.insert('end',
457
+ :cascade,
458
+ :label=>Arcadia.text('ext.dir_projects.menu.runners'),
459
+ :menu=>@sub_ref_runners,
460
+ :hidemargin => false
461
+ )
462
+
463
+ #-----------------
448
464
 
449
465
  @pop_up_tree.insert('end',
450
466
  :command,
@@ -522,6 +538,19 @@ class DirProjects < ArcadiaExtPlus
522
538
  _x = TkWinfo.pointerx(@htree)
523
539
  _y = TkWinfo.pointery(@htree)
524
540
  @pop_up_tree.popup(_x,_y)
541
+
542
+ selected = @htree.selected
543
+ if selected && @htree.exist?(selected)
544
+ if File.ftype(selected) == 'file'
545
+ file = selected
546
+ dir = nil
547
+ else
548
+ file = nil
549
+ dir = selected
550
+ end
551
+ Arcadia.instance.refresh_runners_on_menu(@sub_ref_runners, file, dir)
552
+ end
553
+
525
554
  },
526
555
  "%x %y")
527
556
  end
@@ -818,7 +847,7 @@ class DirProjects < ArcadiaExtPlus
818
847
  else
819
848
  _msg = Arcadia.text("ext.dir_projects.d.delete.msg", [_node, 'file'])
820
849
  end
821
- if !_interactive || Arcadia.dialog(self,'type'=>'yes_no', 'level'=>'warning','title' => Arcadia.text("ext.dir_projects.d.delete.title"), 'msg'=>_msg)=='yes'
850
+ if !_interactive || type == 'file' || Arcadia.dialog(self,'type'=>'yes_no', 'level'=>'warning','title' => Arcadia.text("ext.dir_projects.d.delete.title"), 'msg'=>_msg)=='yes'
822
851
  delete_node = true
823
852
  if type == 'directory'
824
853
  entries = Dir.entries(node2file(_node))
@@ -846,8 +875,9 @@ class DirProjects < ArcadiaExtPlus
846
875
  del_project(_node)
847
876
  end
848
877
  else
849
- Arcadia.process_event(CloseBufferEvent.new(self,'file'=>node2file(_node)))
850
- File.delete(node2file(_node))
878
+ _event = Arcadia.process_event(DeleteFileBufferEvent.new(self,'file'=>node2file(_node)))
879
+ delete_node = _event && _event.flag == Event::FLAG_DEFAULT
880
+ #File.delete(node2file(_node))
851
881
  end
852
882
  shure_delete_node(_node) if delete_node
853
883
  end
@@ -896,6 +926,9 @@ class DirProjects < ArcadiaExtPlus
896
926
  _drawcross = 'always'
897
927
  end
898
928
  rescue Errno::EACCES
929
+ return
930
+ rescue Errno::ENOENT
931
+ return
899
932
  end
900
933
  end
901
934
  @htree.insert('end', _parent ,_node, {
@@ -929,6 +962,9 @@ class DirProjects < ArcadiaExtPlus
929
962
  end
930
963
 
931
964
  def add_project(_dir)
965
+ if _dir && _dir.length > 0 && _dir[-1..-1] == File::SEPARATOR
966
+ _dir = _dir[0..-2]
967
+ end
932
968
  @projects[_dir] = Project.new(_dir)
933
969
  add_node('root', _dir, "project")
934
970
  add_project_to_file(_dir)
@@ -1012,7 +1048,7 @@ class DirProjects < ArcadiaExtPlus
1012
1048
  f = File.new(projects_file, "w")
1013
1049
  begin
1014
1050
  _lines.each{|_line|
1015
- f.syswrite(_line+"\n")
1051
+ f.syswrite(_line+"\n") if _line.strip[0..0] == '#' || File.exists?(_line)
1016
1052
  }
1017
1053
  f.syswrite(_project+"\n")
1018
1054
  ensure
@@ -1078,7 +1114,7 @@ class DirProjects < ArcadiaExtPlus
1078
1114
  path = File::SEPARATOR
1079
1115
  end
1080
1116
  path = path + steps[j]
1081
- if @htree.exist?(path)
1117
+ if @htree.exist?(path)
1082
1118
  @htree.open_tree(path, false)
1083
1119
  end
1084
1120
  j=j+1
@@ -1125,4 +1161,4 @@ class DirProjects < ArcadiaExtPlus
1125
1161
  end
1126
1162
 
1127
1163
 
1128
- end
1164
+ end