vimamsa 0.1.12 → 0.1.14

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,20 +18,6 @@
18
18
  # 'I ctrl-a'=> 'vma.buf.jump(BEGINNING_OF_LINE)',
19
19
  #
20
20
 
21
- $cnf = {} # TODO
22
-
23
- def conf(id)
24
- return $cnf[id]
25
- end
26
-
27
- def set_conf(id, val)
28
- $cnf[id] = val
29
- end
30
-
31
- def setcnf(id, val)
32
- set_conf(id, val)
33
- end
34
-
35
21
  setcnf :indent_based_on_last_line, true
36
22
  setcnf :extensions_to_open, [".txt", ".h", ".c", ".cpp", ".hpp", ".rb", ".inc", ".php", ".sh", ".m", ".gd", ".js"]
37
23
 
@@ -55,18 +41,21 @@ class State
55
41
  end
56
42
 
57
43
  class KeyBindingTree
58
- attr_accessor :C, :I, :cur_state, :root, :match_state, :last_action, :cur_action, :modifiers
59
- attr_reader :mode_root_state, :state_trail, :act_bindings
44
+ attr_accessor :C, :I, :cur_state, :root, :match_state, :last_action, :cur_action, :modifiers, :next_command_count, :method_handles_repeat
45
+ attr_reader :mode_root_state, :state_trail, :act_bindings, :default_mode_stack
60
46
 
61
47
  def initialize()
48
+ @next_command_count = nil
62
49
  @modes = {}
63
50
  @root = State.new("ROOT")
64
51
  @cur_state = @root # used for building the tree
65
52
  @default_mode = nil
53
+ @default_mode_stack = []
66
54
  @mode_history = []
67
55
  @state_trail = []
68
56
  @last_action = nil
69
57
  @cur_action = nil
58
+ @method_handles_repeat = false
70
59
 
71
60
  @modifiers = { :ctrl => false, :shift => false, :alt => false } # TODO: create a queue
72
61
  @last_event = [nil, nil, nil, nil, nil]
@@ -80,10 +69,26 @@ class KeyBindingTree
80
69
  @match_state = [@modes[label]] # used for matching input
81
70
  @mode_root_state = @modes[label]
82
71
  @default_mode = label
72
+ @default_mode_stack << label
73
+ if !vma.buf.nil?
74
+ # vma.buf.mode_stack = @default_mode_stack.clone
75
+ end
76
+ end
77
+
78
+ def set_mode_stack(ms)
79
+ @default_mode_stack = ms
83
80
  end
84
81
 
85
82
  def set_mode_to_default()
86
- set_mode(@default_mode)
83
+ # set_mode(@default_mode)
84
+ set_mode(@default_mode_stack[-1])
85
+ end
86
+
87
+ def to_previous_mode()
88
+ if @default_mode_stack.size > 1
89
+ @default_mode_stack.pop
90
+ end
91
+ set_mode_to_default()
87
92
  end
88
93
 
89
94
  def add_mode(id, label, cursortype = :command, name: nil)
@@ -180,8 +185,6 @@ class KeyBindingTree
180
185
 
181
186
  if !vma.gui.view.nil?
182
187
  vma.gui.view.draw_cursor() #TODO: handle outside this class
183
-
184
- # Ripl.start :binding => binding
185
188
  end
186
189
  end
187
190
 
@@ -220,6 +223,7 @@ class KeyBindingTree
220
223
 
221
224
  # Print key bindings to show as documentation or for debugging
222
225
  def to_s()
226
+ # return self.class.to_s
223
227
  s = ""
224
228
  # @cur_state = @root
225
229
  stack = [[@root, ""]]
@@ -267,7 +271,12 @@ class KeyBindingTree
267
271
  for st in @state_trail
268
272
  st = st[0] if st.class == Array
269
273
  if first
270
- s_trail << "[#{st.to_s}]"
274
+ trailpfx = ""
275
+ if !st.major_modes.empty?
276
+ mmid = st.major_modes.first
277
+ trailpfx = "#{@modes[mmid].to_s}>"
278
+ end
279
+ s_trail << "[#{trailpfx}#{st.to_s}]"
271
280
  else
272
281
  s_trail << " #{st.to_s}"
273
282
  end
@@ -279,9 +288,21 @@ class KeyBindingTree
279
288
  act_s = cstate.action.to_s if cstate.action != nil
280
289
  children << " #{cstate.to_s} #{act_s}\n"
281
290
  end
291
+ if !@next_command_count.nil?
292
+ s_trail << " #{@next_command_count}"
293
+ end
282
294
  return [s_trail, children]
283
295
  end
284
296
 
297
+ def set_next_command_count(num)
298
+ if @next_command_count != nil
299
+ @next_command_count = @next_command_count * 10 + num.to_i
300
+ else
301
+ @next_command_count = num.to_i
302
+ end
303
+ debug("NEXT COMMAND COUNT: #{@next_command_count}")
304
+ end
305
+
285
306
  # Modifies state of key binding tree (move to new state) based on received event
286
307
  # Checks child nodes of current state if they match received event
287
308
  # if yes, change state to child
@@ -349,7 +370,7 @@ class KeyBindingTree
349
370
  if event_type == :key_press and c != "shift"
350
371
  # TODO:include other modifiers in addition to shift?
351
372
  set_state_to_root
352
- printf(", BACK TO ROOT") if $debug
373
+ printf(", BACK TO ROOT") if cnf.debug?
353
374
  end
354
375
 
355
376
  if event_type == :key_release and c == "shift!"
@@ -357,10 +378,10 @@ class KeyBindingTree
357
378
  # only on key release when no other key has been pressed
358
379
  # after said modifier key (shift).
359
380
  set_state_to_root
360
- printf(", BACK TO ROOT") if $debug
381
+ printf(", BACK TO ROOT") if cnf.debug?
361
382
  end
362
383
 
363
- printf("\n") if $debug
384
+ printf("\n") if cnf.debug?
364
385
  else
365
386
 
366
387
  # Don't execute action if one of the states has children
@@ -475,11 +496,11 @@ class KeyBindingTree
475
496
  end
476
497
 
477
498
  def handle_key_bindigs_action(action, c)
478
- $method_handles_repeat = false #TODO:??
499
+ $acth << action
500
+ @method_handles_repeat = false #TODO:??
479
501
  n = 1
480
- if $next_command_count and !(action.class == String and action.include?("set_next_command_count"))
481
- n = $next_command_count
482
- # $next_command_count = nil
502
+ if @next_command_count and !(action.class == String and action.include?("set_next_command_count"))
503
+ n = @next_command_count
483
504
  debug("COUNT command #{n} times")
484
505
  end
485
506
 
@@ -487,15 +508,18 @@ class KeyBindingTree
487
508
  n.times do
488
509
  ret = exec_action(action)
489
510
 
490
- if $macro.is_recording and ret != false
491
- $macro.record_action(action)
511
+ if vma.macro.is_recording and ret != false
512
+ debug "RECORD ACTION:#{action}", 2
513
+ vma.macro.record_action(action)
492
514
  end
493
- break if $method_handles_repeat
515
+ break if @method_handles_repeat
494
516
  # Some methods have specific implementation for repeat,
495
517
  # like '5yy' => copy next five lines. (copy_line())
496
518
  # By default the same command is just repeated n times
497
519
  # like '20j' => go to next line 20 times.
520
+ # But methods can also handle the number input themselves if vma.kbd.method_handles_repeat=true is set,
498
521
  end
522
+ # run_as_idle proc { vma.buf.refresh_cursor; vma.buf.refresh_cursor }, delay: 0.05
499
523
  rescue SyntaxError
500
524
  message("SYNTAX ERROR with eval cmd #{action}: " + $!.to_s)
501
525
  # rescue NoMethodError
@@ -515,8 +539,8 @@ class KeyBindingTree
515
539
  end
516
540
  end
517
541
 
518
- if action.class == String and !action.include?("set_next_command_count")
519
- $next_command_count = nil
542
+ if !(action.class == String and action.include?("set_next_command_count"))
543
+ @next_command_count = nil
520
544
  end
521
545
  end
522
546
  end
@@ -531,7 +555,7 @@ def exec_action(action)
531
555
  $kbd.last_action = $kbd.cur_action
532
556
  $kbd.cur_action = action
533
557
  if action.class == Symbol
534
- return call(action)
558
+ return call_action(action)
535
559
  elsif action.class == Proc
536
560
  return action.call
537
561
  else
@@ -3,17 +3,19 @@ vma.kbd.add_mode("I", :insert, :insert)
3
3
  vma.kbd.add_mode("V", :visual, :visual)
4
4
  vma.kbd.add_mode("M", :minibuffer) #TODO: needed?
5
5
  vma.kbd.add_mode("R", :readchar)
6
+ vma.kbd.add_minor_mode("audio", :audio, :command)
6
7
  vma.kbd.add_mode("B", :browse, :command)
7
8
  vma.kbd.add_mode("X", :replace, :command, name: "Replace")
8
9
  vma.kbd.set_default_mode(:command)
9
10
  vma.kbd.set_mode(:command)
10
- vma.kbd.show_state_trail
11
+ # vma.kbd.show_state_trail
12
+
11
13
 
12
14
  bindkey ["VCB M", "B m"], :run_last_macro
13
15
 
14
16
  bindkey "VC s", :easy_jump
15
- bindkey "VC , m f", [:find_macro_gui, proc { $macro.find_macro_gui }, "Find named macro"]
16
- bindkey "C , m n", [:gui_name_macro, proc { $macro.gui_name_macro }, "Name last macro"]
17
+ bindkey "VC , m f", [:find_macro_gui, proc { vma.macro.find_macro_gui }, "Find named macro"]
18
+ bindkey "C , m n", [:gui_name_macro, proc { vma.macro.gui_name_macro }, "Name last macro"]
17
19
  bindkey "C , j r", :jump_to_random
18
20
  bindkey "I enter", :insert_new_line
19
21
  bindkey "C , ; s k", :show_key_bindings #TODO: better binding
@@ -49,6 +51,15 @@ bindkey "C , b", :start_buf_manager
49
51
  bindkey "C , w", :toggle_active_window
50
52
  bindkey "C , , w", :toggle_two_column
51
53
 
54
+ bindkey "C , u s", :audio_stop
55
+ bindkey "C , m a", "vma.kbd.set_mode(:audio)"
56
+ bindkey "audio s", :audio_stop
57
+ bindkey "audio f || audio right", [:audio_forward, proc { Audio.seek_forward }, "Seek forward in audio stream"]
58
+ bindkey "audio left", [:audio_backward, proc { Audio.seek_forward(-5.0) }, "Seek backward in audio stream"]
59
+
60
+ bindkey "audio space", :audio_stop
61
+ bindkey "audio q || audio esc", "vma.kbd.set_mode_to_default"
62
+
52
63
  # bindkey "C , f o", :open_file_dialog
53
64
  bindkey "CI ctrl-o", :open_file_dialog
54
65
  # bindkey "M enter", :minibuffer_end
@@ -61,9 +72,10 @@ bindkey "VC h", :e_move_backward_char
61
72
  bindkey "C , , .", :backup_all_buffers
62
73
  bindkey "C z ", :start_browse_mode
63
74
  bindkey "B h", :history_switch_backwards
75
+ # bindkey "B h", [:browse_file_backwards, proc { vma.kbd.to_previous_mode; call_action(:history_switch_backwards); }, "Browse previous file"]
64
76
  bindkey "B l", :history_switch_forwards
65
77
  #bindkey 'B z', :center_on_current_line
66
- bindkey "B z", "center_on_current_line();call(:exit_browse_mode)"
78
+ bindkey "B z", "center_on_current_line();call_action(:exit_browse_mode)"
67
79
  bindkey "B enter || B return || B esc || B j || B ctrl!", :exit_browse_mode
68
80
  bindkey "B s", :page_up
69
81
  bindkey "B d", :page_down
@@ -76,7 +88,6 @@ bindkey "B ;", "buf.jump_to_last_edit"
76
88
  bindkey "B q", :jump_to_last_edit
77
89
  bindkey "B w", :jump_to_next_edit
78
90
  # bindkey "C , d", :diff_buffer
79
- bindkey "C , g", :invoke_grep_search
80
91
  #bindkey 'C , g', proc{invoke_grep_search}
81
92
  bindkey "C , v", :auto_indent_buffer
82
93
  bindkey "C , , d", :savedebug
@@ -99,7 +110,6 @@ default_keys = {
99
110
  # 'C , s'=> 'gui_select_buffer',
100
111
  "C , r v b" => :buf_revert,
101
112
  "C , c b" => "bufs.close_current_buffer",
102
- #"C , b" => 'vma.kbd.set_mode("S");gui_select_buffer',
103
113
  "C , n b" => :buf_new,
104
114
  # "C , , ." => "backup_all_buffers()",
105
115
  "VC , , s" => :search_actions,
@@ -127,16 +137,16 @@ default_keys = {
127
137
  "VC f space" => "buf.jump_to_next_instance_of_char(' ')",
128
138
  "VC F space" => "buf.jump_to_next_instance_of_char(' ',BACKWARD)",
129
139
 
130
- "VC /[1-9]/" => "set_next_command_count(<char>)",
140
+ "VC /[1-9]/" => "vma.kbd.set_next_command_count(<char>)",
131
141
  # 'VC number=/[0-9]/+ g'=> 'jump_to_line(<number>)',
132
142
  # 'VC X=/[0-9]/+ * Y=/[0-9]/+ '=> 'x_times_y(<X>,<Y>)',
133
- "VC ^" => "buf.jump(BEGINNING_OF_LINE)",
134
- "VC G($next_command_count!=nil)" => "buf.jump_to_line()",
135
- "VC 0($next_command_count!=nil)" => "set_next_command_count(<char>)",
136
- "VC 0($next_command_count==nil)" => "buf.jump(BEGINNING_OF_LINE)",
143
+ "VC G(vma.kbd.next_command_count!=nil)" => "buf.jump_to_line()",
144
+ "VC 0(vma.kbd.next_command_count!=nil)" => "set_next_command_count(<char>)",
145
+ "VC 0(vma.kbd.next_command_count==nil)" => "buf.jump(BEGINNING_OF_LINE)",
137
146
  # 'C 0'=> 'buf.jump(BEGINNING_OF_LINE)',
138
147
  "VC g g" => "buf.jump(START_OF_BUFFER)",
139
148
  "VC g ;" => "buf.jump_to_last_edit",
149
+ "VC ^" => "buf.jump(BEGINNING_OF_LINE)",
140
150
  "VC G" => "buf.jump(END_OF_BUFFER)",
141
151
  # 'VC z z' => 'center_on_current_line',
142
152
  "VC *" => "buf.jump_to_next_instance_of_word",
@@ -162,6 +172,7 @@ default_keys = {
162
172
  "C , d b" => "debug_print_buffer",
163
173
  "C , d c" => "debug_dump_clipboard",
164
174
  "C , d d" => "debug_dump_deltas",
175
+
165
176
  "VC O" => "buf.jump(END_OF_LINE)",
166
177
  "VC $" => "buf.jump(END_OF_LINE)",
167
178
 
@@ -174,7 +185,7 @@ default_keys = {
174
185
  "C u" => "buf.undo()",
175
186
 
176
187
  "C ^" => "buf.jump(BEGINNING_OF_LINE)",
177
- "C /[1-9]/" => "set_next_command_count(<char>)",
188
+ # "C /[1-9]/" => "vma.kbd.set_next_command_count(<char>)",
178
189
 
179
190
  # Command mode only:
180
191
  "C ctrl-r" => "buf.redo()", # TODO:???
@@ -197,10 +208,11 @@ default_keys = {
197
208
  "C d $" => "buf.delete2(:to_line_end)",
198
209
  # 'C d e'=> 'buf.delete_to_next_word_end',
199
210
  "C d <num> e" => "delete_next_word",
211
+ "C d ' <char>" => "buf.delete2(:to_mark,<char>)",
200
212
  "C r <char>" => "buf.replace_with_char(<char>)", # TODO
201
213
  "C , l b" => "load_buffer_list",
202
214
  "C , l l" => "save_buffer_list",
203
- "C , r <char>" => "set_register(<char>)", # TODO
215
+ "C , r <char>" => "vma.set_register(<char>)", # TODO
204
216
  "C , p <char>" => "buf.paste(BEFORE,<char>)", # TODO
205
217
 
206
218
  "C ctrl-c" => "buf.comment_line()",
@@ -248,16 +260,16 @@ default_keys = {
248
260
 
249
261
  # Macros
250
262
  # (experimental, may not work correctly)
251
- # "C q a" => '$macro.start_recording("a")',
252
- "VC q <char>" => "$macro.start_recording(<char>)",
253
- "VC q($macro.is_recording==true) " => "$macro.end_recording", # TODO
254
- # 'C q'=> '$macro.end_recording', #TODO
255
- "C q v" => "$macro.end_recording",
256
- # 'C v'=> '$macro.end_recording',
257
- # "C M" => '$macro.run_last_macro',
258
- "C @ <char>" => "$macro.run_macro(<char>)",
259
- "C , m S" => '$macro.save_macro("a")',
260
- "C , m s" => "$macro.save",
263
+ # "C q a" => 'vma.macro.start_recording("a")',
264
+ "VC q <char>" => "vma.macro.start_recording(<char>)",
265
+ "VC q(vma.macro.is_recording==true) " => "$macro.end_recording", # TODO
266
+ # 'C q'=> 'vma.macro.end_recording', #TODO
267
+ "C q v" => "vma.macro.end_recording",
268
+ # 'C v'=> 'vma.macro.end_recording',
269
+ # "C M" => 'vma.macro.run_last_macro',
270
+ "C @ <char>" => "vma.macro.run_macro(<char>)",
271
+ "C , m S" => 'vma.macro.save_macro("a")',
272
+ "C , m s" => "vma.macro.save",
261
273
  "C , t r" => "run_tests()",
262
274
 
263
275
  # "C ." => "repeat_last_action", # TODO
@@ -265,10 +277,10 @@ default_keys = {
265
277
  # "CV Q" => :quit,
266
278
  "CV ctrl-q" => :quit,
267
279
  "CV , R" => "restart_application",
268
- "I ctrl!" => "vma.kbd.set_mode(:command)",
280
+ # "I ctrl!" => "vma.kbd.to_previous_mode",
269
281
  "C shift!" => "buf.save",
270
282
  "I <char>" => "buf.insert_txt(<char>)",
271
- "I esc" => "vma.kbd.set_mode(:command)",
283
+ "I esc || I ctrl!" => "vma.kbd.set_mode_to_default",
272
284
 
273
285
  "I ctrl-d" => "buf.delete2(:to_word_end)",
274
286
 
@@ -282,7 +294,8 @@ default_keys = {
282
294
  "IX alt-f" => "buf.jump_word(FORWARD,WORD_START)",
283
295
  "IX alt-b" => "buf.jump_word(BACKWARD,WORD_START)",
284
296
 
285
- "I tab" => 'buf.insert_txt(" ")',
297
+ "I tab" => 'buf.insert_tab',
298
+ "I shift-tab" => 'buf.unindent',
286
299
  "I space" => 'buf.insert_txt(" ")',
287
300
  # "I return" => 'buf.insert_new_line()',
288
301
  }
data/lib/vimamsa/macro.rb CHANGED
@@ -1,6 +1,6 @@
1
1
  def gui_find_macro_update_callback(search_str = "")
2
2
  debug "gui_find_macro_update_callback: #{search_str}"
3
- heystack = $macro.named_macros
3
+ heystack = vma.macro.named_macros
4
4
  return [] if heystack.empty?
5
5
  $macro_search_list = []
6
6
  files = heystack.keys.sort.collect { |x| [x, 0] }
@@ -15,11 +15,11 @@ end
15
15
  def gui_find_macro_select_callback(search_str, idx)
16
16
  debug "gui_find_macro_select_callback"
17
17
  selected = $macro_search_list[idx]
18
- m = $macro.named_macros[selected[0]].clone
18
+ m = vma.macro.named_macros[selected[0]].clone
19
19
  debug "SELECTED MACRO:#{selected}, #{m}"
20
- id = $macro.last_macro
21
- $macro.recorded_macros[id] = m
22
- $macro.run_macro(id)
20
+ id = vma.macro.last_macro
21
+ vma.macro.recorded_macros[id] = m
22
+ vma.macro.run_macro(id)
23
23
  end
24
24
 
25
25
  class Macro
@@ -52,7 +52,7 @@ class Macro
52
52
  end
53
53
 
54
54
  def find_macro_gui()
55
- l = $macro.named_macros.keys.sort.collect { |x| [x, 0] }
55
+ l = vma.macro.named_macros.keys.sort.collect { |x| [x, 0] }
56
56
  $macro_search_list = l
57
57
  $select_keys = ["h", "l", "f", "d", "s", "a", "g", "z"]
58
58
 
@@ -116,36 +116,46 @@ class Macro
116
116
  run_macro(@last_macro)
117
117
  end
118
118
 
119
- def run_macro(name)
120
- if $macro.is_recording == true
121
- message("Can't run a macro that runs a macro (recursion risk)")
122
- return false
123
- end
124
- message("Start running macro [#{name}]")
125
- if @recorded_macros.has_key?(name)
126
- @last_macro = name
127
- end
128
- acts = @recorded_macros[name]
119
+ # Run the provided list of actions
120
+ def run_actions(acts)
121
+ isok = true
129
122
  if acts.kind_of?(Array) and acts.any?
130
123
  @running_macro = true
131
- set_last_command({ method: $macro.method("run_macro"), params: [name] })
132
- #
124
+ # TODO:needed?
125
+ # set_last_command({ method: vma.macro.method("run_macro"), params: [name] })
133
126
  for a in acts
134
127
  ret = exec_action(a)
135
- debug ret
136
128
  if ret == false
137
- message("Error while running macro")
138
- Ripl.start :binding => binding
139
-
129
+ error "Error while running macro"
130
+ isok=false
140
131
  break
141
132
  end
142
133
  end
143
- # eval_str = m.join(";")
144
- # debug(eval_str)
145
- # eval(eval_str)
146
134
  end
147
135
  @running_macro = false
148
136
  buf.set_pos(buf.pos)
137
+ # TODO: Should be a better way to trigger this. Sometimes need to wait for GTK to process things before updating the cursor.
138
+ run_as_idle proc { vma.buf.refresh_cursor; vma.buf.refresh_cursor }, delay: 0.15
139
+ return isok
140
+ end
141
+
142
+ def run_macro(name)
143
+ if vma.macro.is_recording == true
144
+ message("Can't run a macro that runs a macro (recursion risk)")
145
+ return false
146
+ end
147
+ message("Start running macro [#{name}]")
148
+ if @recorded_macros.has_key?(name)
149
+ @last_macro = name
150
+ end
151
+ acts = @recorded_macros[name]
152
+ return run_actions(acts)
153
+ end
154
+
155
+ def dump_last_macro()
156
+ puts "======MACRO START======="
157
+ puts @recorded_macros[@last_macro].inspect
158
+ puts "======MACRO END========="
149
159
  end
150
160
 
151
161
  def save_macro(name)
data/lib/vimamsa/main.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  #scriptdir=File.expand_path(File.dirname(__FILE__))
2
2
  $:.unshift File.dirname(__FILE__) + "/lib"
3
3
 
4
- # require 'benchmark/ips'
4
+ #/home/samsam/Drive/code/vimamsa/git/lib/vimamsa/lib/vimamsa/main.rb require 'benchmark/ips'
5
5
 
6
6
  # load "vendor/ver/lib/ver/vendor/textpow.rb"
7
7
  # load "vendor/ver/lib/ver/syntax/detector.rb"
@@ -19,20 +19,13 @@ end
19
19
  Encoding.default_external = Encoding::UTF_8
20
20
  Encoding.default_internal = Encoding::UTF_8
21
21
 
22
- # Globals
22
+ # Globals (TODO:refactor)
23
23
  $command_history = []
24
- $clipboard = []
25
- $register = Hash.new("")
26
- $cnf = {}
27
24
  $errors = []
28
25
 
29
- $cur_register = "a"
30
26
  $debuginfo = {}
31
27
 
32
- $jump_sequence = []
33
-
34
- $debug = false
35
- $experimental = false
28
+ cnf.debug = false
36
29
 
37
30
  # Return currently active buffer
38
31
  def buf()
@@ -49,18 +42,11 @@ end
49
42
 
50
43
  require "vimamsa/editor.rb"
51
44
 
52
- # load "gui_funcs.rb"
53
-
54
45
  $vma = Editor.new
55
46
  def vma()
56
47
  return $vma
57
48
  end
58
49
 
59
- # c_startup
60
- # run_random_jump_test
61
- # main_loop
62
-
63
- # debug("END")
64
50
 
65
51
 
66
52
 
data/lib/vimamsa/rbvma.rb CHANGED
@@ -12,18 +12,24 @@ require "ripl/multi_line"
12
12
  require "shellwords"
13
13
  require "cgi"
14
14
  require "uri"
15
+ require "vimamsa/conf"
15
16
  require "vimamsa/util"
16
17
  # exit!
17
18
  require "vimamsa/main"
18
- require "vimamsa/form_generator"
19
+ require "vimamsa/terminal"
19
20
 
20
21
  require "vimamsa/actions"
21
22
  require "vimamsa/key_binding_tree"
22
23
  require "vimamsa/key_actions"
23
24
 
25
+ require "vimamsa/clipboard"
26
+
24
27
  # Graphical stuff:
25
28
  require "vimamsa/gui"
29
+ require "vimamsa/gui_form_generator"
30
+ require "vimamsa/gui_text"
26
31
  require "vimamsa/gui_menu"
32
+ require "vimamsa/gui_dialog"
27
33
  require "vimamsa/gui_select_window"
28
34
  require "vimamsa/gui_sourceview"
29
35
  require "vimamsa/gui_image"
@@ -31,10 +37,13 @@ require "vimamsa/hyper_plain_text"
31
37
 
32
38
  require "vimamsa/ack"
33
39
  require "vimamsa/buffer"
40
+ require "vimamsa/buffer_cursor"
41
+ require "vimamsa/buffer_changetext"
34
42
  require "vimamsa/buffer_list"
35
43
  require "vimamsa/buffer_manager"
36
44
  require "vimamsa/constants"
37
45
  require "vimamsa/debug"
46
+ require "vimamsa/tests"
38
47
  require "vimamsa/easy_jump"
39
48
  require "vimamsa/encrypt"
40
49
  require "vimamsa/file_finder"
@@ -43,30 +52,15 @@ require "vimamsa/hook"
43
52
  require "vimamsa/macro"
44
53
  require "vimamsa/search"
45
54
  require "vimamsa/search_replace"
46
- require "vimamsa/conf"
47
55
  # load "vendor/ver/lib/ver/vendor/textpow.rb"
48
56
  # load "vendor/ver/lib/ver/syntax/detector.rb"
49
57
  # load "vendor/ver/config/detect.rb"
50
58
 
51
- $vma = Editor.new
52
-
53
- def vma()
54
- return $vma
55
- end
56
-
57
59
  def unimplemented
58
60
  debug "unimplemented"
59
61
  end
60
62
 
61
-
62
- $debug = false
63
-
64
- def scan_indexes(txt, regex)
65
- # indexes = txt.enum_for(:scan, regex).map { Regexp.last_match.begin(0) + 1 }
66
- indexes = txt.enum_for(:scan, regex).map { Regexp.last_match.begin(0) }
67
- return indexes
68
- end
69
-
63
+ cnf.debug = false
70
64
  $update_cursor = false
71
65
 
72
66
 
@@ -2,7 +2,7 @@
2
2
  def execute_search(input_str)
3
3
  $search = Search.new
4
4
  eval_str="execute_search(#{input_str.dump})"
5
- $macro.overwrite_current_action(eval_str)
5
+ vma.macro.overwrite_current_action(eval_str)
6
6
  return $search.set(input_str, "simple", vma.buf)
7
7
  end
8
8