vimamsa 0.1.5 → 0.1.8
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.
- checksums.yaml +4 -4
- data/exe/vimamsa +4 -2
- data/lib/vimamsa/ack.rb +0 -4
- data/lib/vimamsa/actions.rb +26 -38
- data/lib/vimamsa/buffer.rb +117 -60
- data/lib/vimamsa/buffer_list.rb +27 -3
- data/lib/vimamsa/buffer_manager.rb +83 -0
- data/lib/vimamsa/conf.rb +21 -0
- data/lib/vimamsa/debug.rb +9 -8
- data/lib/vimamsa/easy_jump.rb +129 -125
- data/lib/vimamsa/editor.rb +66 -48
- data/lib/vimamsa/file_finder.rb +7 -8
- data/lib/vimamsa/file_history.rb +15 -8
- data/lib/vimamsa/file_manager.rb +9 -8
- data/lib/vimamsa/gui.rb +560 -0
- data/lib/vimamsa/gui_menu.rb +110 -0
- data/lib/vimamsa/gui_select_window.rb +177 -0
- data/lib/vimamsa/gui_sourceview.rb +294 -0
- data/lib/vimamsa/hyper_plain_text.rb +8 -10
- data/lib/vimamsa/{default_key_bindings.rb → key_actions.rb} +71 -190
- data/lib/vimamsa/key_binding_tree.rb +48 -36
- data/lib/vimamsa/key_bindings_vimlike.rb +260 -0
- data/lib/vimamsa/macro.rb +6 -6
- data/lib/vimamsa/main.rb +1 -2
- data/lib/vimamsa/rbvma.rb +25 -1031
- data/lib/vimamsa/search.rb +1 -5
- data/lib/vimamsa/search_replace.rb +4 -6
- data/lib/vimamsa/version.rb +1 -1
- data/vimamsa.gemspec +1 -1
- metadata +12 -5
data/lib/vimamsa/editor.rb
CHANGED
@@ -1,16 +1,23 @@
|
|
1
1
|
require "pty"
|
2
2
|
|
3
|
-
def exec_in_terminal(cmd)
|
4
|
-
#
|
3
|
+
def exec_in_terminal(cmd, autoclose = false)
|
4
|
+
# debug "CMD:#{cmd}"
|
5
5
|
|
6
6
|
# global to prevent garbage collect unlink
|
7
7
|
$initf = Tempfile.new("bashinit")
|
8
|
-
#
|
8
|
+
# debug $initf.path
|
9
9
|
$initf.write(cmd)
|
10
|
-
|
11
|
-
|
10
|
+
if autoclose
|
11
|
+
$initf.write("\nsleep 10; exit;\n")
|
12
|
+
$initf.write("rm #{$initf.path}\n")
|
13
|
+
else
|
14
|
+
$initf.write("rm #{$initf.path}\n")
|
15
|
+
$initf.write("\nexec bash\n")
|
16
|
+
end
|
12
17
|
$initf.close
|
13
18
|
# PTY.spawn("gnome-terminal", "--tab", "--", "bash", "-i", $initf.path, "-c", "exec bash")
|
19
|
+
# fork { exec "gnome-terminal", "--tab", "--", "bash", "-i", $initf.path, "-c", "exec bash" }
|
20
|
+
# Just another execution
|
14
21
|
fork { exec "gnome-terminal", "--tab", "--", "bash", "-i", $initf.path, "-c", "exec bash" }
|
15
22
|
end
|
16
23
|
|
@@ -19,13 +26,18 @@ def handle_drag_and_drop(fname)
|
|
19
26
|
buf.handle_drag_and_drop(fname)
|
20
27
|
end
|
21
28
|
|
29
|
+
def mkdir_if_not_exists(_dirpath)
|
30
|
+
dirpath = File.expand_path(_dirpath)
|
31
|
+
Dir.mkdir(dirpath) unless File.exist?(dirpath)
|
32
|
+
end
|
33
|
+
|
22
34
|
class Editor
|
23
|
-
attr_reader :file_content_search_paths, :file_name_search_paths
|
24
|
-
attr_accessor :converters, :fh, :paint_stack
|
35
|
+
attr_reader :file_content_search_paths, :file_name_search_paths, :gui
|
36
|
+
attr_accessor :converters, :fh, :paint_stack, :kbd
|
25
37
|
#attr_writer :call_func, :update_highlight
|
26
38
|
|
27
39
|
def initialize()
|
28
|
-
# Thread.new{10000.times{|x|sleep(3);10000.times{|y|y+2};
|
40
|
+
# Thread.new{10000.times{|x|sleep(3);10000.times{|y|y+2};debug "FOOTHREAD #{x}"}}
|
29
41
|
|
30
42
|
# Search for content inside files (e.g. using ack/grep) in:
|
31
43
|
@file_content_search_paths = []
|
@@ -42,7 +54,7 @@ class Editor
|
|
42
54
|
def open_file_listener(added)
|
43
55
|
if !added.empty?
|
44
56
|
for fp in added
|
45
|
-
|
57
|
+
sleep 0.1
|
46
58
|
x = IO.read(fp)
|
47
59
|
File.delete(fp)
|
48
60
|
for f in x.lines
|
@@ -62,9 +74,11 @@ class Editor
|
|
62
74
|
|
63
75
|
# GLib::Idle.add
|
64
76
|
# Ripl.start :binding => binding
|
65
|
-
# GLib::Idle.add(proc{
|
77
|
+
# GLib::Idle.add(proc{ debug "IDLEFUNC"})
|
66
78
|
# GLib::Idle.add(proc { idle_func })
|
67
79
|
|
80
|
+
@gui = $vmag #TODO
|
81
|
+
|
68
82
|
$hook = Hook.new
|
69
83
|
register_plugin(:Hook, $hook)
|
70
84
|
$macro = Macro.new
|
@@ -79,7 +93,8 @@ class Editor
|
|
79
93
|
|
80
94
|
debug "ARGV: " + ARGV.inspect
|
81
95
|
# build_key_bindings_tree
|
82
|
-
|
96
|
+
@kbd = KeyBindingTree.new()
|
97
|
+
$kbd = @kbd
|
83
98
|
$kbd.add_mode("C", :command)
|
84
99
|
$kbd.add_mode("I", :insert)
|
85
100
|
$kbd.add_mode("V", :visual)
|
@@ -87,17 +102,18 @@ class Editor
|
|
87
102
|
$kbd.add_mode("R", :readchar)
|
88
103
|
$kbd.add_mode("B", :browse)
|
89
104
|
$kbd.set_default_mode(:command)
|
90
|
-
require "vimamsa/
|
105
|
+
require "vimamsa/key_bindings_vimlike"
|
91
106
|
sleep(0.03)
|
92
107
|
|
93
108
|
FileManager.init
|
109
|
+
BufferManager.init
|
94
110
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
111
|
+
mkdir_if_not_exists("~/.vimamsa")
|
112
|
+
mkdir_if_not_exists("~/.vimamsa/backup")
|
113
|
+
mkdir_if_not_exists("~/.vimamsa/listen")
|
114
|
+
listen_dir = File.expand_path "~/.vimamsa/listen"
|
99
115
|
listener = Listen.to(listen_dir) do |modified, added, removed|
|
100
|
-
|
116
|
+
debug([modified: modified, added: added, removed: removed])
|
101
117
|
open_file_listener(added)
|
102
118
|
end
|
103
119
|
listener.start
|
@@ -109,7 +125,7 @@ class Editor
|
|
109
125
|
$cnf = eval(IO.read(settings_path))
|
110
126
|
end
|
111
127
|
|
112
|
-
#
|
128
|
+
# set_gui_style(1)
|
113
129
|
|
114
130
|
# Limit file search to these extensions:
|
115
131
|
$find_extensions = [".txt", ".h", ".c", ".cpp", ".hpp", ".rb"]
|
@@ -139,7 +155,7 @@ class Editor
|
|
139
155
|
if fname
|
140
156
|
buffer = Buffer.new(read_file("", fname), fname)
|
141
157
|
else
|
142
|
-
buffer = Buffer.new("
|
158
|
+
buffer = Buffer.new(" \n")
|
143
159
|
end
|
144
160
|
$buffers << buffer
|
145
161
|
|
@@ -173,6 +189,11 @@ class Editor
|
|
173
189
|
def buf()
|
174
190
|
return $buffer
|
175
191
|
end
|
192
|
+
|
193
|
+
def buffers()
|
194
|
+
return $buffers
|
195
|
+
end
|
196
|
+
|
176
197
|
|
177
198
|
def marshal_save(varname, vardata)
|
178
199
|
save_var_to_file(varname, Marshal.dump(vardata))
|
@@ -228,8 +249,7 @@ class Editor
|
|
228
249
|
# Register converter
|
229
250
|
def reg_conv(converter, converter_id)
|
230
251
|
@converters[converter_id] = converter
|
231
|
-
reg_act(converter_id, proc { $buffer.convert_selected_text(converter_id) }, "Converter #{converter_id}", [:selection])
|
232
|
-
# reg_act(converter_id, "$buffer.convert_selected_text(:#{converter_id})", "Converter #{converter_id}", [:selection])
|
252
|
+
reg_act(converter_id, proc { $buffer.convert_selected_text(converter_id) }, "Converter #{converter_id}", { :scope => [:selection] })
|
233
253
|
end
|
234
254
|
|
235
255
|
def apply_conv(converter_id, txt)
|
@@ -250,30 +270,29 @@ class Editor
|
|
250
270
|
exts = $cnf[:extensions_to_open]
|
251
271
|
extname = Pathname.new(filepath).extname.downcase
|
252
272
|
can_open = exts.include?(extname)
|
253
|
-
|
273
|
+
debug "CAN OPEN?: #{can_open}"
|
254
274
|
return can_open
|
255
275
|
end
|
256
276
|
end
|
257
277
|
|
258
278
|
def _quit()
|
259
279
|
vma.shutdown
|
260
|
-
|
280
|
+
Gtk.main_quit
|
261
281
|
end
|
262
282
|
|
263
283
|
def fatal_error(msg)
|
264
|
-
|
284
|
+
debug msg
|
265
285
|
exit!
|
266
286
|
end
|
267
287
|
|
268
288
|
def file_saveas(filename)
|
269
|
-
|
270
|
-
$buffer.save()
|
289
|
+
buf.save_as_callback(filename)
|
271
290
|
end
|
272
291
|
|
273
292
|
def open_file_dialog()
|
274
293
|
path = ""
|
275
294
|
path = $buffer.fname if $buffer.fname
|
276
|
-
|
295
|
+
gui_open_file_dialog(File.dirname(path))
|
277
296
|
end
|
278
297
|
|
279
298
|
def system_clipboard_changed(clipboard_contents)
|
@@ -283,14 +302,18 @@ def system_clipboard_changed(clipboard_contents)
|
|
283
302
|
$paste_lines = false
|
284
303
|
end
|
285
304
|
$clipboard << clipboard_contents
|
286
|
-
#
|
305
|
+
# debug $clipboard[-1]
|
287
306
|
$clipboard = $clipboard[-([$clipboard.size, max_clipboard_items].min)..-1]
|
288
307
|
end
|
289
308
|
|
309
|
+
def get_clipboard()
|
310
|
+
return $clipboard[-1]
|
311
|
+
end
|
312
|
+
|
290
313
|
def set_clipboard(s)
|
291
314
|
if !(s.class <= String) or s.size == 0
|
292
|
-
|
293
|
-
|
315
|
+
debug s.inspect
|
316
|
+
debug [s, s.class, s.size]
|
294
317
|
log_error("s.class != String or s.size == 0")
|
295
318
|
Ripl.start :binding => binding
|
296
319
|
return
|
@@ -361,9 +384,9 @@ def diff_buffer()
|
|
361
384
|
infile.write($buffer.to_s)
|
362
385
|
infile.flush
|
363
386
|
cmd = "diff -w '#{orig_path}' #{infile.path}"
|
364
|
-
#
|
387
|
+
# debug cmd
|
365
388
|
bufstr << run_cmd(cmd)
|
366
|
-
#
|
389
|
+
# debug bufstr
|
367
390
|
infile.close; infile.unlink
|
368
391
|
create_new_file(nil, bufstr)
|
369
392
|
end
|
@@ -407,9 +430,9 @@ def minibuffer_new_char(c)
|
|
407
430
|
#$buffer = $minibuffer
|
408
431
|
end
|
409
432
|
|
410
|
-
def readchar_new_char(c)
|
411
|
-
|
412
|
-
end
|
433
|
+
# def readchar_new_char(c)
|
434
|
+
# $input_char_call_func.call(c)
|
435
|
+
# end
|
413
436
|
|
414
437
|
def minibuffer_delete()
|
415
438
|
$minibuffer.delete(BACKWARD_CHAR)
|
@@ -417,7 +440,7 @@ end
|
|
417
440
|
|
418
441
|
def message(s)
|
419
442
|
s = "[#{DateTime.now().strftime("%H:%M")}] #{s}"
|
420
|
-
|
443
|
+
debug s
|
421
444
|
|
422
445
|
$vmag.add_to_minibuf(s)
|
423
446
|
# $minibuffer = Buffer.new(s, "")
|
@@ -455,7 +478,7 @@ GUESS_ENCODING_ORDER = [
|
|
455
478
|
def create_new_file(filename = nil, file_contents = "\n")
|
456
479
|
debug "NEW FILE CREATED"
|
457
480
|
buffer = Buffer.new(file_contents)
|
458
|
-
#
|
481
|
+
# gui_set_current_buffer(buffer.id) #TODO: remove?
|
459
482
|
$buffers << buffer
|
460
483
|
return buffer
|
461
484
|
end
|
@@ -481,7 +504,7 @@ def load_buffer(fname)
|
|
481
504
|
end
|
482
505
|
debug("LOAD BUFFER: #{fname}")
|
483
506
|
buffer = Buffer.new(read_file("", fname), fname)
|
484
|
-
#
|
507
|
+
# gui_set_current_buffer(buffer.id)
|
485
508
|
buffer.set_active
|
486
509
|
debug("DONE LOAD: #{fname}")
|
487
510
|
#buf = filter_buffer(buffer)
|
@@ -528,15 +551,12 @@ def draw_text(str, x, y)
|
|
528
551
|
vma.paint_stack << [4, x, y, str]
|
529
552
|
end
|
530
553
|
|
531
|
-
def center_on_current_line__2del()
|
532
|
-
center_where_cursor
|
533
|
-
end
|
534
|
-
|
535
554
|
def hook_draw()
|
536
555
|
# TODO: as hook.register
|
537
556
|
# easy_jump_draw()
|
538
557
|
end
|
539
558
|
|
559
|
+
#TODO: delete this
|
540
560
|
def render_buffer(buffer = 0, reset = 0)
|
541
561
|
tmpbuf = $buffer.to_s
|
542
562
|
debug "pos:#{$buffer.pos} L:#{$buffer.lpos} C:#{$buffer.cpos}"
|
@@ -549,8 +569,6 @@ def render_buffer(buffer = 0, reset = 0)
|
|
549
569
|
t1 = Time.now
|
550
570
|
hook_draw()
|
551
571
|
|
552
|
-
render_text(tmpbuf, pos, selection_start, reset) #TODO: remove?
|
553
|
-
|
554
572
|
if $buffer.need_redraw?
|
555
573
|
hpt_scan_images() if $debug #experimental
|
556
574
|
end
|
@@ -593,7 +611,7 @@ end
|
|
593
611
|
def run_cmd(cmd)
|
594
612
|
tmpf = Tempfile.new("vmarun", "/tmp").path
|
595
613
|
cmd = "#{cmd} > #{tmpf}"
|
596
|
-
|
614
|
+
debug "CMD:\n#{cmd}"
|
597
615
|
system("bash", "-c", cmd)
|
598
616
|
res_str = File.read(tmpf)
|
599
617
|
return res_str
|
@@ -622,11 +640,11 @@ def exec_cmd(bin_name, arg1 = nil, arg2 = nil, arg3 = nil, arg4 = nil, arg5 = ni
|
|
622
640
|
end
|
623
641
|
|
624
642
|
def file_is_text_file(fpath)
|
625
|
-
|
643
|
+
debug "file_is_text_file(#{fpath})"
|
626
644
|
fpath = File.expand_path(fpath)
|
627
645
|
return false if !File.exist?(fpath)
|
628
646
|
r = exec_cmd("file", fpath)
|
629
|
-
|
647
|
+
debug "DEBUG:#{r}"
|
630
648
|
return true if r.match(/UTF-8.*text/)
|
631
649
|
return true if r.match(/ASCII.*text/)
|
632
650
|
return false
|
@@ -662,6 +680,6 @@ def find_project_dir_of_cur_buffer()
|
|
662
680
|
if $buffer.fname
|
663
681
|
pdir = find_project_dir_of_fn($buffer.fname)
|
664
682
|
end
|
665
|
-
#
|
683
|
+
# debug "Proj dir of current file: #{pdir}"
|
666
684
|
return pdir
|
667
685
|
end
|
data/lib/vimamsa/file_finder.rb
CHANGED
@@ -1,5 +1,4 @@
|
|
1
1
|
require "parallel"
|
2
|
-
|
3
2
|
class FileFinder
|
4
3
|
def initialize()
|
5
4
|
$hook.register(:shutdown, self.method("save"))
|
@@ -21,7 +20,7 @@ class FileFinder
|
|
21
20
|
Thread.new { recursively_find_files() }
|
22
21
|
end
|
23
22
|
|
24
|
-
|
23
|
+
gui_select_update_window(l, $select_keys.collect { |x| x.upcase },
|
25
24
|
"gui_file_finder_select_callback",
|
26
25
|
"gui_file_finder_update_callback")
|
27
26
|
end
|
@@ -59,22 +58,22 @@ def filter_files(search_str)
|
|
59
58
|
for s in scores
|
60
59
|
dir_hash[s[0]] = s[1] if s[1] > 0
|
61
60
|
end
|
62
|
-
#
|
61
|
+
# debug scores
|
63
62
|
dir_hash = dir_hash.sort_by { |k, v| -v }
|
64
63
|
dir_hash = dir_hash[0..20]
|
65
64
|
dir_hash.map do |file, d|
|
66
|
-
|
65
|
+
debug "D:#{d} #{file}"
|
67
66
|
end
|
68
67
|
return dir_hash
|
69
68
|
end
|
70
69
|
|
71
70
|
def gui_file_finder_update_callback(search_str = "")
|
72
|
-
|
71
|
+
debug "FILE FINDER UPDATE CALLBACK: #{search_str}"
|
73
72
|
if (search_str.size > 1)
|
74
73
|
files = filter_files(search_str)
|
75
74
|
$file_search_list = files
|
76
75
|
return files
|
77
|
-
#
|
76
|
+
#debug files.inspect
|
78
77
|
#return files.values
|
79
78
|
end
|
80
79
|
return []
|
@@ -83,12 +82,12 @@ end
|
|
83
82
|
def gui_file_finder_select_callback(search_str, idx)
|
84
83
|
selected_file = $file_search_list[idx][0]
|
85
84
|
debug "FILE FINDER SELECT CALLBACK: s=#{search_str},i=#{idx}: #{selected_file}"
|
86
|
-
|
85
|
+
gui_select_window_close(0)
|
87
86
|
open_new_file(selected_file)
|
88
87
|
end
|
89
88
|
|
90
89
|
def gui_file_finder_handle_char(c)
|
91
|
-
|
90
|
+
debug "BUFFER SELECTOR INPUT CHAR: #{c}"
|
92
91
|
buffer_i = $select_keys.index(c)
|
93
92
|
if buffer_i != nil
|
94
93
|
gui_file_finder_callback(buffer_i)
|
data/lib/vimamsa/file_history.rb
CHANGED
@@ -21,7 +21,7 @@ class FileHistory
|
|
21
21
|
# end
|
22
22
|
|
23
23
|
def update(buf)
|
24
|
-
|
24
|
+
debug "FileHistory.update(buf=#{buf.fname})"
|
25
25
|
return if !buf.fname
|
26
26
|
@history[buf.fname] if !@history[buf.fname]
|
27
27
|
if !@history[buf.fname]
|
@@ -29,7 +29,7 @@ class FileHistory
|
|
29
29
|
else
|
30
30
|
@history[buf.fname] += 1
|
31
31
|
end
|
32
|
-
|
32
|
+
debug @history
|
33
33
|
|
34
34
|
# puts "FileHistory.update(buf=#{buf})"
|
35
35
|
end
|
@@ -55,9 +55,14 @@ class FileHistory
|
|
55
55
|
l = []
|
56
56
|
$select_keys = ["h", "l", "f", "d", "s", "a", "g", "z"]
|
57
57
|
|
58
|
-
|
59
|
-
|
60
|
-
|
58
|
+
opt = { :title => "File history search",
|
59
|
+
:desc => "Search for previously opened files. Fuzzy search." ,
|
60
|
+
:columns => [{:title=>'Filename',:id=>0}]
|
61
|
+
}
|
62
|
+
gui_select_update_window(l, $select_keys.collect { |x| x.upcase },
|
63
|
+
"gui_file_history_select_callback",
|
64
|
+
"gui_file_history_update_callback",
|
65
|
+
opt)
|
61
66
|
end
|
62
67
|
end
|
63
68
|
|
@@ -78,7 +83,7 @@ def fuzzy_filter(search_str, list, maxfinds)
|
|
78
83
|
end
|
79
84
|
|
80
85
|
def gui_file_history_update_callback(search_str = "")
|
81
|
-
|
86
|
+
debug "gui_file_history_update_callback: #{search_str}"
|
82
87
|
return [] if $vma.fh.history.empty?
|
83
88
|
$search_list = []
|
84
89
|
files = $vma.fh.history.keys.sort.collect { |x| [x, 0] }
|
@@ -86,8 +91,10 @@ def gui_file_history_update_callback(search_str = "")
|
|
86
91
|
if (search_str.size > 1)
|
87
92
|
files = fuzzy_filter(search_str, $vma.fh.history.keys, 40)
|
88
93
|
end
|
94
|
+
|
89
95
|
$search_list = files
|
90
|
-
|
96
|
+
ret = files.collect{|x|[x[0]]}
|
97
|
+
return ret
|
91
98
|
end
|
92
99
|
|
93
100
|
def gui_file_history_select_callback(search_str, idx)
|
@@ -95,6 +102,6 @@ def gui_file_history_select_callback(search_str, idx)
|
|
95
102
|
selected_file = $search_list[idx][0]
|
96
103
|
|
97
104
|
debug "FILE HISTORY SELECT CALLBACK: s=#{search_str},i=#{idx}: #{selected_file}"
|
98
|
-
|
105
|
+
gui_select_window_close(0)
|
99
106
|
open_new_file(selected_file)
|
100
107
|
end
|
data/lib/vimamsa/file_manager.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
|
1
2
|
class FileManager
|
2
3
|
@@cur
|
3
4
|
|
@@ -28,11 +29,11 @@ class FileManager
|
|
28
29
|
# bindkey "C o", :delete_state
|
29
30
|
|
30
31
|
$kbd.add_minor_mode("fexp", :file_exp, :command)
|
31
|
-
|
32
|
+
|
32
33
|
bindkey "fexp o m", :fexp_sort_mtime
|
33
|
-
bindkey "fexp o f", :fexp_sort_fname
|
34
|
+
bindkey "fexp o f", :fexp_sort_fname
|
34
35
|
|
35
|
-
# bindkey "fexp l", [:fexp_right, proc {
|
36
|
+
# bindkey "fexp l", [:fexp_right, proc { debug "==fexp_right==" }, ""]
|
36
37
|
bindkey "fexp h", :fexp_chdir_parent
|
37
38
|
bindkey "fexp esc", [:fexp_quit, proc { $kbd.set_mode(:command) }, ""]
|
38
39
|
bindkey "fexp enter", :fexp_select
|
@@ -49,7 +50,7 @@ class FileManager
|
|
49
50
|
@@cur = self
|
50
51
|
ld = buflist.get_last_dir
|
51
52
|
dir_to_buf(ld)
|
52
|
-
#
|
53
|
+
# debug "ld=#{ld}"
|
53
54
|
# dlist = Dir["#{ld}/*"]
|
54
55
|
end
|
55
56
|
|
@@ -83,7 +84,7 @@ class FileManager
|
|
83
84
|
next
|
84
85
|
end
|
85
86
|
next if x[0] == "."
|
86
|
-
if File.directory?(fpath)
|
87
|
+
if File.directory?(fpath)
|
87
88
|
# if f.directory?(fpath)
|
88
89
|
@cdirs << x
|
89
90
|
else
|
@@ -126,10 +127,10 @@ class FileManager
|
|
126
127
|
|
127
128
|
def select_line
|
128
129
|
return if @buf.lpos < @header.size
|
129
|
-
#
|
130
|
+
# debug "def select_line"
|
130
131
|
fn = fullp(@buf.get_current_line[0..-2])
|
131
132
|
if File.directory?(fn)
|
132
|
-
|
133
|
+
debug "CHDIR: #{fn}"
|
133
134
|
dir_to_buf(fn)
|
134
135
|
# elsif vma.can_open_extension?(fn)
|
135
136
|
# jump_to_file(fn)
|
@@ -139,6 +140,6 @@ class FileManager
|
|
139
140
|
else
|
140
141
|
open_with_default_program(fn)
|
141
142
|
end
|
142
|
-
#
|
143
|
+
# debug l.inspect
|
143
144
|
end
|
144
145
|
end
|