vimamsa 0.1.18 → 0.1.20
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/custom_example.rb +1 -1
- data/demo.txt +1 -1
- data/exe/vimamsa +1 -1
- data/ext/vmaext/extconf.rb +5 -0
- data/lib/vimamsa/ack.rb +7 -16
- data/lib/vimamsa/buffer.rb +10 -5
- data/lib/vimamsa/buffer_changetext.rb +1 -1
- data/lib/vimamsa/buffer_list.rb +44 -10
- data/lib/vimamsa/conf.rb +28 -60
- data/lib/vimamsa/debug.rb +1 -1
- data/lib/vimamsa/editor.rb +22 -27
- data/lib/vimamsa/file_finder.rb +78 -10
- data/lib/vimamsa/gui.rb +119 -153
- data/lib/vimamsa/gui_dialog.rb +11 -8
- data/lib/vimamsa/gui_form_generator.rb +6 -8
- data/lib/vimamsa/gui_menu.rb +12 -10
- data/lib/vimamsa/gui_select_window.rb +3 -1
- data/lib/vimamsa/gui_sourceview.rb +41 -23
- data/lib/vimamsa/key_actions.rb +16 -13
- data/lib/vimamsa/key_binding_tree.rb +0 -2
- data/lib/vimamsa/key_bindings_vimlike.rb +1 -2
- data/lib/vimamsa/langservp.rb +1 -2
- data/lib/vimamsa/macro.rb +1 -1
- data/lib/vimamsa/text_transforms.rb +4 -1
- data/lib/vimamsa/version.rb +1 -1
- data/lib/vimamsa.rb +3 -0
- data/vimamsa.gemspec +3 -2
- metadata +16 -3
- data/.vma_project +0 -0
@@ -119,6 +119,21 @@ class VSourceView < GtkSource::View
|
|
119
119
|
end
|
120
120
|
end
|
121
121
|
|
122
|
+
def focus_out()
|
123
|
+
set_cursor_color(:inactive)
|
124
|
+
|
125
|
+
# This does not seem to work: (TODO:why?)
|
126
|
+
# self.cursor_visible = false
|
127
|
+
end
|
128
|
+
|
129
|
+
def focus_in()
|
130
|
+
set_cursor_color(@ctype)
|
131
|
+
self.cursor_visible = false
|
132
|
+
self.cursor_visible = true
|
133
|
+
self.grab_focus
|
134
|
+
end
|
135
|
+
|
136
|
+
|
122
137
|
def register_signals()
|
123
138
|
check_controllers
|
124
139
|
|
@@ -581,33 +596,29 @@ class VSourceView < GtkSource::View
|
|
581
596
|
end
|
582
597
|
|
583
598
|
def draw_cursor
|
584
|
-
# if @tt.nil?
|
585
|
-
# @tt = buffer.create_tag("font_tag")
|
586
|
-
# @tt.font = "Arial"
|
587
|
-
# end
|
588
599
|
|
589
|
-
sv = vma.gui.sw.child
|
600
|
+
sv = vma.gui.active_window[:sw].child
|
601
|
+
return if sv.nil?
|
602
|
+
if sv != self # if we are not the current buffer
|
603
|
+
sv.draw_cursor
|
604
|
+
return
|
605
|
+
end
|
606
|
+
|
590
607
|
mode = vma.kbd.get_mode
|
591
608
|
ctype = vma.kbd.get_cursor_type
|
592
609
|
ctype = :visual if vma.buf.selection_active?
|
593
610
|
|
594
|
-
vma.gui.remove_overlay_cursor
|
595
611
|
if [:command, :replace, :browse].include?(ctype)
|
596
612
|
set_cursor_color(ctype)
|
597
613
|
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
603
|
-
|
604
|
-
|
605
|
-
|
606
|
-
# sv.reset_cursor_blink
|
607
|
-
Gtk::Settings.default.gtk_cursor_blink = false
|
608
|
-
# Gtk::Settings.default.gtk_cursor_blink_time = 8000
|
609
|
-
# vma.gui.sw.child.toggle_cursor_visible
|
610
|
-
# vma.gui.sw.child.cursor_visible = true
|
614
|
+
if !self.overwrite?
|
615
|
+
self.overwrite = true
|
616
|
+
|
617
|
+
# (Via trial and error) This combination is needed to make cursor visible:
|
618
|
+
# TODO: determine why "self.cursor_visible = true" is not enough
|
619
|
+
self.cursor_visible = false
|
620
|
+
self.cursor_visible = true
|
621
|
+
end
|
611
622
|
elsif ctype == :visual
|
612
623
|
set_cursor_color(ctype)
|
613
624
|
# debug "VISUAL MODE"
|
@@ -619,12 +630,11 @@ class VSourceView < GtkSource::View
|
|
619
630
|
buffer.select_range(itr, itr2)
|
620
631
|
elsif ctype == :insert
|
621
632
|
set_cursor_color(ctype)
|
622
|
-
|
623
|
-
# sv.cursor_visible = false
|
624
|
-
# sv.cursor_visible = true
|
633
|
+
self.overwrite = false
|
625
634
|
debug "INSERT MODE"
|
626
635
|
else # TODO
|
627
636
|
end
|
637
|
+
|
628
638
|
if [:insert, :command, :replace, :browse].include?(ctype)
|
629
639
|
# Place cursor where it already is
|
630
640
|
# Without this hack, the cursor doesn't always get drawn
|
@@ -632,5 +642,13 @@ class VSourceView < GtkSource::View
|
|
632
642
|
itr = buffer.get_iter_at(:offset => pos)
|
633
643
|
buffer.place_cursor(itr)
|
634
644
|
end
|
635
|
-
|
645
|
+
|
646
|
+
# Sometimes we lose focus and the cursor vanishes because of that
|
647
|
+
# TODO: determine why&when
|
648
|
+
if !self.has_focus?
|
649
|
+
self.grab_focus
|
650
|
+
self.cursor_visible = false
|
651
|
+
self.cursor_visible = true
|
652
|
+
end
|
653
|
+
end #end draw_cursor
|
636
654
|
end
|
data/lib/vimamsa/key_actions.rb
CHANGED
@@ -46,8 +46,9 @@ reg_act(:create_new_file, "create_new_file", "Create new file", { :group => :fil
|
|
46
46
|
reg_act(:backup_all_buffers, proc { backup_all_buffers }, "Backup all buffers", { :group => :file })
|
47
47
|
reg_act(:e_move_forward_char, "e_move_forward_char", "", { :group => [:move, :basic] })
|
48
48
|
reg_act(:e_move_backward_char, "e_move_backward_char", "", { :group => [:move, :basic] })
|
49
|
-
reg_act(:history_switch_backwards,
|
50
|
-
reg_act(:
|
49
|
+
# reg_act(:history_switch_backwards, proc{bufs.history_switch_backwards}, "", { :group => :file })
|
50
|
+
reg_act(:history_switch_backwards, proc{bufs.history_switch(-1)}, "", { :group => :file })
|
51
|
+
reg_act(:history_switch_forwards, proc{bufs.history_switch(+1)}, "", { :group => :file })
|
51
52
|
reg_act(:center_on_current_line, "center_on_current_line", "", { :group => :view })
|
52
53
|
reg_act(:run_last_macro, proc { vma.macro.run_last_macro }, "Run last recorded or executed macro", { :group => :macro })
|
53
54
|
reg_act(:jump_to_next_edit, "jump_to_next_edit", "")
|
@@ -169,11 +170,14 @@ act_list = {
|
|
169
170
|
:search_actions => { :proc => proc { vma.actions.gui_search },
|
170
171
|
:desc => "Search actions", :group => :search },
|
171
172
|
|
173
|
+
:edit_customrb => { :proc => proc { jump_to_file("~/.config/vimamsa/custom.rb") },
|
174
|
+
:desc => "Customize (edit custom.rb)", :group => :search },
|
175
|
+
|
172
176
|
:toggle_active_window => { :proc => proc { vma.gui.toggle_active_window },
|
173
|
-
:desc => "
|
177
|
+
:desc => "Switch active column in two column mode", :group => :search },
|
174
178
|
|
175
179
|
:toggle_two_column => { :proc => proc { vma.gui.toggle_two_column },
|
176
|
-
:desc => "
|
180
|
+
:desc => "Toggle two column mode", :group => :search },
|
177
181
|
|
178
182
|
:content_search => { :proc => proc { FileContentSearch.start_gui },
|
179
183
|
:desc => "Search content of files", :group => :search },
|
@@ -188,15 +192,14 @@ act_list = {
|
|
188
192
|
:desc => "Output SHA256 hex digest of curent buffer" },
|
189
193
|
|
190
194
|
:start_autocomplete => { :proc => proc { vma.buf.view.start_autocomplete },
|
191
|
-
|
192
|
-
|
193
|
-
:show_autocomplete => { :proc => proc {
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
195
|
+
:desc => "Start autocomplete" },
|
196
|
+
|
197
|
+
:show_autocomplete => { :proc => proc {
|
198
|
+
# vma.buf.view.signal_emit("show-completion")
|
199
|
+
# vma.buf.view.show_completion
|
200
|
+
vma.buf.view.show_completions
|
201
|
+
},
|
202
|
+
:desc => "Show autocomplete" },
|
200
203
|
|
201
204
|
}
|
202
205
|
|
@@ -18,8 +18,6 @@
|
|
18
18
|
# 'I ctrl-a'=> 'vma.buf.jump(BEGINNING_OF_LINE)',
|
19
19
|
#
|
20
20
|
|
21
|
-
setcnf :indent_based_on_last_line, true
|
22
|
-
setcnf :extensions_to_open, [".txt", ".h", ".c", ".cpp", ".hpp", ".rb", ".inc", ".php", ".sh", ".m", ".gd", ".js"]
|
23
21
|
|
24
22
|
class State
|
25
23
|
attr_accessor :key_name, :eval_rule, :children, :action, :label, :major_modes, :level, :cursor_type
|
@@ -18,6 +18,7 @@ cnf.mode.visual.cursor.background = "#bc6040"
|
|
18
18
|
cnf.mode.replace.cursor.background = "#fc0331"
|
19
19
|
cnf.mode.browse.cursor.background = "#f803fc"
|
20
20
|
cnf.mode.insert.cursor.background = "#ffffff"
|
21
|
+
cnf.mode.inactive.cursor.background = "#777777"
|
21
22
|
|
22
23
|
def _insert_move(op)
|
23
24
|
if op == :pagedown
|
@@ -100,9 +101,7 @@ bindkey "VC h", :e_move_backward_char
|
|
100
101
|
bindkey "C , , .", :backup_all_buffers
|
101
102
|
bindkey "C z ", :start_browse_mode
|
102
103
|
bindkey "B h", :history_switch_backwards
|
103
|
-
# bindkey "B h", [:browse_file_backwards, proc { vma.kbd.to_previous_mode; call_action(:history_switch_backwards); }, "Browse previous file"]
|
104
104
|
bindkey "B l", :history_switch_forwards
|
105
|
-
#bindkey 'B z', :center_on_current_line
|
106
105
|
bindkey "B z", "center_on_current_line();call_action(:exit_browse_mode)"
|
107
106
|
bindkey "B enter || B return || B esc || B j || B ctrl!", :exit_browse_mode
|
108
107
|
bindkey "B s", :page_up
|
data/lib/vimamsa/langservp.rb
CHANGED
@@ -52,7 +52,7 @@ class LangSrv
|
|
52
52
|
@id = 0
|
53
53
|
|
54
54
|
wf = []
|
55
|
-
for c in
|
55
|
+
for c in cnf.workspace_folders!
|
56
56
|
wf << LSP::Interface::WorkspaceFolder.new(uri: c[:uri], name: c[:name])
|
57
57
|
end
|
58
58
|
debug "WORKSPACE FOLDERS", 2
|
@@ -157,7 +157,6 @@ class LangSrv
|
|
157
157
|
@writer.write(id: id, params: a, method: "textDocument/definition")
|
158
158
|
r = wait_for_response(id)
|
159
159
|
return nil if r.nil?
|
160
|
-
# Ripl.start :binding => binding
|
161
160
|
pp r
|
162
161
|
line = HSafe.new(r)[:result][0][:range][:start][:line].val
|
163
162
|
uri = HSafe.new(r)[:result][0][:uri].val
|
data/lib/vimamsa/macro.rb
CHANGED
@@ -165,7 +165,7 @@ class Macro
|
|
165
165
|
m = @recorded_macros[name]
|
166
166
|
return if !(m.kind_of?(Array) and m.any?)
|
167
167
|
contents = m.join(";")
|
168
|
-
dot_dir = File.expand_path("~/.vimamsa")
|
168
|
+
dot_dir = File.expand_path("~/.config/.vimamsa")
|
169
169
|
Dir.mkdir(dot_dir) unless File.exist?(dot_dir)
|
170
170
|
save_fn = "#{dot_dir}/macro_#{name}.rb"
|
171
171
|
|
@@ -30,5 +30,8 @@ Converter.new(lambda { |x|
|
|
30
30
|
x + "\n" + nums.join("+") + "=#{sum}"
|
31
31
|
}, :lambda, :sum_of_numbers)
|
32
32
|
|
33
|
-
|
33
|
+
Converter.new(lambda { |x| x.scan(/[\w\.]+@[\w\.]+/).join("\n") }, :lambda, :get_emails)
|
34
|
+
|
35
|
+
# Eval selection as ruby code
|
36
|
+
Converter.new(lambda { |x| b = "eval failed"; begin; b = eval(x, TOPLEVEL_BINDING); rescue; end; "#{x}\n#{b}\n" }, :lambda, :eval)
|
34
37
|
|
data/lib/vimamsa/version.rb
CHANGED
data/lib/vimamsa.rb
CHANGED
data/vimamsa.gemspec
CHANGED
@@ -16,6 +16,8 @@ Gem::Specification.new do |spec|
|
|
16
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
17
17
|
f.match(%r{^(refcode|spec|features)/})
|
18
18
|
end
|
19
|
+
# spec.files = Dir["{ext}/**/*"]
|
20
|
+
|
19
21
|
spec.bindir = "exe"
|
20
22
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
21
23
|
spec.require_paths = ["lib","ext"]
|
@@ -36,10 +38,9 @@ Gem::Specification.new do |spec|
|
|
36
38
|
spec.add_runtime_dependency 'differ', '~> 0.1.2'
|
37
39
|
spec.add_runtime_dependency 'parallel', '~> 1.14' #TODO: update?
|
38
40
|
spec.add_runtime_dependency 'listen', '~> 3.4' #TODO: update?
|
41
|
+
spec.add_runtime_dependency 'StrIdx', '~> 0.1.1'
|
39
42
|
spec.add_runtime_dependency 'language_server-protocol', '~> 3.17.0.3'
|
40
43
|
|
41
44
|
spec.extensions = ["ext/vmaext/extconf.rb"]
|
42
45
|
spec.licenses = ['GPL-3.0+']
|
43
|
-
# FileList["ext/**/extconf.rb"]
|
44
|
-
|
45
46
|
end
|
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.20
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sami Sieranoja
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-05-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -192,6 +192,20 @@ dependencies:
|
|
192
192
|
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
194
|
version: '3.4'
|
195
|
+
- !ruby/object:Gem::Dependency
|
196
|
+
name: StrIdx
|
197
|
+
requirement: !ruby/object:Gem::Requirement
|
198
|
+
requirements:
|
199
|
+
- - "~>"
|
200
|
+
- !ruby/object:Gem::Version
|
201
|
+
version: 0.1.1
|
202
|
+
type: :runtime
|
203
|
+
prerelease: false
|
204
|
+
version_requirements: !ruby/object:Gem::Requirement
|
205
|
+
requirements:
|
206
|
+
- - "~>"
|
207
|
+
- !ruby/object:Gem::Version
|
208
|
+
version: 0.1.1
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
210
|
name: language_server-protocol
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
@@ -217,7 +231,6 @@ extensions:
|
|
217
231
|
extra_rdoc_files: []
|
218
232
|
files:
|
219
233
|
- ".gitignore"
|
220
|
-
- ".vma_project"
|
221
234
|
- Gemfile
|
222
235
|
- README.md
|
223
236
|
- Rakefile
|
data/.vma_project
DELETED
File without changes
|