arcadia 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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