vimamsa 0.1.6 → 0.1.7
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/lib/vimamsa/buffer.rb +29 -9
- data/lib/vimamsa/editor.rb +16 -6
- data/lib/vimamsa/gui.rb +1 -0
- data/lib/vimamsa/key_actions.rb +4 -2
- data/lib/vimamsa/key_bindings_vimlike.rb +2 -1
- data/lib/vimamsa/version.rb +1 -1
- data/vimamsa.gemspec +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a71f8392835d7a5a3245366764eb79f6058ea3ded74cc1a308f021f950881ba
|
4
|
+
data.tar.gz: 590ea0409a43aabafe349cfcff0cb91712e2a269e334b3663b64f6b895ae666f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1bf328f8cbe0b69e85a9720790c8f4616e1996466ad65f6473cf1cff1173d78b9cec197145c653a5d33804571d383246492e593445da390cbe567fc6ccfbb24a
|
7
|
+
data.tar.gz: 799f836afc3c0e304cac07f44e1b5c96affa3f6b5775b4d654b43a81168f2ab14cb4ee1218a3345ae3189203520885fd6cc1de7ce48205e78386b060c700f8ca
|
data/lib/vimamsa/buffer.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "digest"
|
2
2
|
require "tempfile"
|
3
|
+
require "fileutils"
|
3
4
|
require "pathname"
|
4
5
|
require "openssl"
|
5
6
|
require "ripl/multi_line"
|
@@ -79,6 +80,13 @@ class Buffer < String
|
|
79
80
|
# gui_set_current_buffer(@id)
|
80
81
|
end
|
81
82
|
|
83
|
+
def set_executable
|
84
|
+
if File.exists?(@fname)
|
85
|
+
FileUtils.chmod("+x", @fname)
|
86
|
+
message("Set executable: #{@fname}")
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
82
90
|
def detect_file_language
|
83
91
|
@lang = nil
|
84
92
|
@lang = "c" if @fname.match(/\.(c|h|cpp)$/)
|
@@ -451,7 +459,6 @@ class Buffer < String
|
|
451
459
|
return if @edit_pos_history.empty?
|
452
460
|
@edit_pos_history_i -= 1
|
453
461
|
@edit_pos_history_i = @edit_pos_history.size - 1 if @edit_pos_history_i < 0
|
454
|
-
# Ripl.start :binding => binding
|
455
462
|
debug "@edit_pos_history_i=#{@edit_pos_history_i}"
|
456
463
|
set_pos(@edit_pos_history[-@edit_pos_history_i])
|
457
464
|
center_on_current_line
|
@@ -568,7 +575,6 @@ class Buffer < String
|
|
568
575
|
ls = @line_ends[a] if a != nil
|
569
576
|
# if a != nil and ls != @line_ends[a]
|
570
577
|
# puts "NO MATCH @line_ends[a]"
|
571
|
-
# Ripl.start :binding => binding
|
572
578
|
# end
|
573
579
|
|
574
580
|
if ls == nil
|
@@ -580,7 +586,6 @@ class Buffer < String
|
|
580
586
|
end
|
581
587
|
|
582
588
|
def get_line_end(pos)
|
583
|
-
#Ripl.start :binding => binding
|
584
589
|
return @line_ends.select { |x| x > pos }.min
|
585
590
|
end
|
586
591
|
|
@@ -1328,9 +1333,9 @@ class Buffer < String
|
|
1328
1333
|
calculate_line_and_column_pos
|
1329
1334
|
end
|
1330
1335
|
|
1331
|
-
def execute_current_line_in_terminal()
|
1336
|
+
def execute_current_line_in_terminal(autoclose = false)
|
1332
1337
|
s = get_current_line
|
1333
|
-
exec_in_terminal(s)
|
1338
|
+
exec_in_terminal(s, autoclose)
|
1334
1339
|
end
|
1335
1340
|
|
1336
1341
|
def insert_new_line()
|
@@ -1350,8 +1355,18 @@ class Buffer < String
|
|
1350
1355
|
# Indent start of new line based on last line
|
1351
1356
|
last_line = line(@lpos)
|
1352
1357
|
m = /^( +)([^ ]+|$)/.match(last_line)
|
1353
|
-
|
1354
|
-
|
1358
|
+
if m
|
1359
|
+
c = c + " " * m[1].size if m
|
1360
|
+
end
|
1361
|
+
|
1362
|
+
|
1363
|
+
#if tab indent
|
1364
|
+
m = /^(\t+)([^\t]+|$)/.match(last_line)
|
1365
|
+
if m
|
1366
|
+
c = c + "\t" * m[1].size if m
|
1367
|
+
end
|
1368
|
+
|
1369
|
+
# debug m.inspect
|
1355
1370
|
end
|
1356
1371
|
if mode == BEFORE
|
1357
1372
|
insert_pos = @pos
|
@@ -1494,7 +1509,13 @@ class Buffer < String
|
|
1494
1509
|
return if !@visual_mode
|
1495
1510
|
|
1496
1511
|
debug "COPY SELECTION"
|
1497
|
-
|
1512
|
+
s = self[get_visual_mode_range]
|
1513
|
+
if x == :append
|
1514
|
+
puts "APPEND"
|
1515
|
+
s += "\n" + get_clipboard()
|
1516
|
+
end
|
1517
|
+
|
1518
|
+
set_clipboard(s)
|
1498
1519
|
end_visual_mode
|
1499
1520
|
return true
|
1500
1521
|
end
|
@@ -1639,7 +1660,6 @@ class Buffer < String
|
|
1639
1660
|
else
|
1640
1661
|
savepath = buflist.get_last_dir
|
1641
1662
|
end
|
1642
|
-
# Ripl.start :binding => binding
|
1643
1663
|
gui_file_saveas(savepath)
|
1644
1664
|
# calls back to file_saveas
|
1645
1665
|
end
|
data/lib/vimamsa/editor.rb
CHANGED
@@ -1,16 +1,23 @@
|
|
1
1
|
require "pty"
|
2
2
|
|
3
|
-
def exec_in_terminal(cmd)
|
3
|
+
def exec_in_terminal(cmd, autoclose = false)
|
4
4
|
# puts "CMD:#{cmd}"
|
5
5
|
|
6
6
|
# global to prevent garbage collect unlink
|
7
7
|
$initf = Tempfile.new("bashinit")
|
8
8
|
# puts $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
|
|
@@ -26,7 +33,7 @@ end
|
|
26
33
|
|
27
34
|
class Editor
|
28
35
|
attr_reader :file_content_search_paths, :file_name_search_paths, :gui
|
29
|
-
attr_accessor :converters, :fh, :paint_stack, :kbd
|
36
|
+
attr_accessor :converters, :fh, :paint_stack, :kbd
|
30
37
|
#attr_writer :call_func, :update_highlight
|
31
38
|
|
32
39
|
def initialize()
|
@@ -42,7 +49,6 @@ class Editor
|
|
42
49
|
@converters = {}
|
43
50
|
@paint_stack = []
|
44
51
|
@_plugins = {}
|
45
|
-
|
46
52
|
end
|
47
53
|
|
48
54
|
def open_file_listener(added)
|
@@ -294,6 +300,10 @@ def system_clipboard_changed(clipboard_contents)
|
|
294
300
|
$clipboard = $clipboard[-([$clipboard.size, max_clipboard_items].min)..-1]
|
295
301
|
end
|
296
302
|
|
303
|
+
def get_clipboard()
|
304
|
+
return $clipboard[-1]
|
305
|
+
end
|
306
|
+
|
297
307
|
def set_clipboard(s)
|
298
308
|
if !(s.class <= String) or s.size == 0
|
299
309
|
puts s.inspect
|
@@ -415,7 +425,7 @@ def minibuffer_new_char(c)
|
|
415
425
|
end
|
416
426
|
|
417
427
|
# def readchar_new_char(c)
|
418
|
-
|
428
|
+
# $input_char_call_func.call(c)
|
419
429
|
# end
|
420
430
|
|
421
431
|
def minibuffer_delete()
|
data/lib/vimamsa/gui.rb
CHANGED
@@ -154,6 +154,7 @@ def gui_create_buffer(id)
|
|
154
154
|
# provider.load(data: "textview { font-family: Arial; font-size: 12pt; }")
|
155
155
|
view.style_context.add_provider(provider)
|
156
156
|
view.wrap_mode = :char
|
157
|
+
view.set_tab_width(4) #TODO:add as setting
|
157
158
|
|
158
159
|
$vmag.buffers[id] = view
|
159
160
|
end
|
data/lib/vimamsa/key_actions.rb
CHANGED
@@ -48,6 +48,7 @@ reg_act(:put_file_path_to_clipboard, proc { buf.put_file_path_to_clipboard }, "P
|
|
48
48
|
# reg_act(:encrypt_file, proc{buf.set_encrypted},"Set current file to encrypt on save")
|
49
49
|
reg_act(:encrypt_file, proc { encrypt_cur_buffer }, "Set current file to encrypt on save")
|
50
50
|
reg_act(:set_unencrypted, proc { buf.set_unencrypted }, "Set current file to save unencrypted")
|
51
|
+
reg_act(:set_executable, proc { buf.set_executable }, "Set current file permissions to executable")
|
51
52
|
reg_act(:close_all_buffers, proc { bufs.close_all_buffers() }, "Close all buffers")
|
52
53
|
reg_act(:close_current_buffer, proc { bufs.close_current_buffer(true) }, "Close current buffer")
|
53
54
|
reg_act(:comment_selection, proc { buf.comment_selection }, "")
|
@@ -89,7 +90,8 @@ reg_act :page_up, proc { page_up }
|
|
89
90
|
reg_act :jump_to_start_of_buffer, proc { buf.jump(START_OF_BUFFER) }, "Jump to start of buffer"
|
90
91
|
reg_act :jump_to_end_of_buffer, proc { buf.jump(END_OF_BUFFER) }, "Jump to end of buffer"
|
91
92
|
reg_act(:auto_indent_buffer, proc { buf.indent }, "Auto format buffer")
|
92
|
-
reg_act(:execute_current_line_in_terminal, proc { buf.execute_current_line_in_terminal }, "Execute current line in
|
93
|
+
reg_act(:execute_current_line_in_terminal, proc { buf.execute_current_line_in_terminal }, "Execute current line in terminalL")
|
94
|
+
reg_act(:execute_current_line_in_terminal_autoclose, proc { buf.execute_current_line_in_terminal(true) }, "Execute current line in terminal. Close after execution.")
|
93
95
|
reg_act(:show_images, proc { hpt_scan_images() }, "Show images inserted with ⟦img:file.png⟧ syntax")
|
94
96
|
reg_act(:delete_current_file, proc { bufs.delete_current_buffer() }, "Delete current file")
|
95
97
|
|
@@ -256,7 +258,7 @@ act_list_todo = {
|
|
256
258
|
# Visual mode only:
|
257
259
|
"V esc" => "buf.end_visual_mode",
|
258
260
|
"V ctrl!" => "buf.end_visual_mode",
|
259
|
-
"V y" => "buf.copy_active_selection",
|
261
|
+
"V y" => "buf.copy_active_selection(:foo)",
|
260
262
|
"V g U" => "buf.transform_selection(:upcase)",
|
261
263
|
"V g u" => "buf.transform_selection(:downcase)",
|
262
264
|
"V g c" => "buf.transform_selection(:capitalize)",
|
@@ -189,7 +189,8 @@ default_keys = {
|
|
189
189
|
# Visual mode only:
|
190
190
|
"V esc" => "buf.end_visual_mode",
|
191
191
|
"V ctrl!" => "buf.end_visual_mode",
|
192
|
-
"V y" => "buf.copy_active_selection",
|
192
|
+
"V y" => "buf.copy_active_selection()",
|
193
|
+
"V a y" => "buf.copy_active_selection(:append)",
|
193
194
|
"V g U" => "buf.transform_selection(:upcase)",
|
194
195
|
"V g u" => "buf.transform_selection(:downcase)",
|
195
196
|
"V g c" => "buf.transform_selection(:capitalize)",
|
data/lib/vimamsa/version.rb
CHANGED
data/vimamsa.gemspec
CHANGED
@@ -20,7 +20,7 @@ Gem::Specification.new do |spec|
|
|
20
20
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
21
|
spec.require_paths = ["lib","ext"]
|
22
22
|
|
23
|
-
spec.add_development_dependency "bundler", "~>
|
23
|
+
spec.add_development_dependency "bundler", "~> 2.2.33"
|
24
24
|
spec.add_development_dependency "rake", "~> 13.0"
|
25
25
|
|
26
26
|
spec.add_runtime_dependency 'rufo', '~> 0.5'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vimamsa
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sami Sieranoja
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.2.33
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.2.33
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|