ver 2009.11.29 → 2009.12.14

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.
Files changed (47) hide show
  1. data/AUTHORS +6 -0
  2. data/CHANGELOG +353 -1
  3. data/LICENSE +18 -0
  4. data/MANIFEST +11 -1
  5. data/Rakefile +2 -1
  6. data/bin/ver +3 -12
  7. data/config/detect.rb +1 -1
  8. data/config/keymap/diakonos.rb +181 -0
  9. data/config/keymap/emacs.rb +24 -24
  10. data/config/keymap/vim.rb +162 -127
  11. data/config/rc.rb +29 -14
  12. data/config/syntax/Nemerle.json +3 -3
  13. data/lib/ver.rb +88 -134
  14. data/lib/ver/entry.rb +5 -0
  15. data/lib/ver/exception_view.rb +97 -0
  16. data/lib/ver/hover_completion.rb +14 -7
  17. data/lib/ver/keymap.rb +30 -1
  18. data/lib/ver/layout.rb +20 -14
  19. data/lib/ver/methods.rb +6 -15
  20. data/lib/ver/methods/bookmark.rb +189 -0
  21. data/lib/ver/methods/completion.rb +2 -2
  22. data/lib/ver/methods/control.rb +109 -26
  23. data/lib/ver/methods/ctags.rb +28 -4
  24. data/lib/ver/methods/delete.rb +85 -4
  25. data/lib/ver/methods/insert.rb +73 -52
  26. data/lib/ver/methods/move.rb +122 -35
  27. data/lib/ver/methods/open.rb +4 -43
  28. data/lib/ver/methods/search.rb +46 -17
  29. data/lib/ver/methods/select.rb +121 -24
  30. data/lib/ver/methods/undo.rb +23 -0
  31. data/lib/ver/methods/views.rb +5 -0
  32. data/lib/ver/mode.rb +18 -17
  33. data/lib/ver/status.rb +2 -2
  34. data/lib/ver/status/context.rb +166 -0
  35. data/lib/ver/text.rb +43 -81
  36. data/lib/ver/text/index.rb +24 -7
  37. data/lib/ver/undo.rb +289 -0
  38. data/lib/ver/vendor/sized_array.rb +70 -0
  39. data/lib/ver/vendor/textpow.rb +6 -1
  40. data/lib/ver/version.rb +3 -0
  41. data/lib/ver/view.rb +11 -8
  42. data/lib/ver/view/list/grep.rb +15 -4
  43. data/lib/ver/view/term.rb +9 -3
  44. data/spec/helper.rb +94 -0
  45. data/ver.gemspec +9 -6
  46. metadata +25 -5
  47. data/spec/keymap.rb +0 -224
data/Rakefile CHANGED
@@ -10,7 +10,8 @@ PROJECT_README = 'README.textile'
10
10
  PROJECT_VERSION = ENV['VERSION'] || Date.today.strftime('%Y.%m.%d')
11
11
 
12
12
  DEPENDENCIES = {
13
- 'ffi-tk' => {:version => '2009.11.29'},
13
+ 'ffi-tk' => {:version => '2009.12.14'},
14
+ 'eventmachine' => {:version => '0.12.10'},
14
15
  }
15
16
 
16
17
  GEMSPEC = Gem::Specification.new{|s|
data/bin/ver CHANGED
@@ -26,16 +26,8 @@ module VER
26
26
  # TODO: remove before release
27
27
  $LOAD_PATH.unshift(ROOT)
28
28
 
29
- if options[:fork]
30
- fork do
31
- trap(:HUP){ 'terminal disconnected' }
32
- require 'ver'
33
- run(options)
34
- end
35
- else
36
- require 'ver'
37
- run(options)
38
- end
29
+ require 'ver'
30
+ run(options)
39
31
  end
40
32
 
41
33
  def install_tm_bundle(path)
@@ -86,8 +78,7 @@ options = { fork: true }
86
78
  op = OptionParser.new{|o|
87
79
  o.on('-Eex[:in]', '--encoding EXTERNAL[:INTERNAL]', 'used encoding'){|enc|
88
80
  options[:encoding] = enc }
89
- o.on('--font-family NAME', 'font family'){|fn| options[:font_family] = fn }
90
- o.on('--font-size INT', 'font size'){|fs| options[:font_size] = fs }
81
+ o.on('--font FONT', 'font family'){|fn| options[:font] = fn }
91
82
  o.on('-f', '--nofork', 'stay attached to terminal'){ options[:fork] = false }
92
83
  o.on('-k', '--keymap NAME', 'vim or emacs'){|k| options[:keymap] = k }
93
84
  o.separator ' '
@@ -66,7 +66,7 @@ module VER::Syntax::Detector
66
66
  exts "HTML (ASP.net)", ["aspx", "ascx"]
67
67
  exts "HTML (Active4D)", ["a4d", "a4p"]
68
68
  exts "HTML (Erlang)", ["yaws"]
69
- exts "HTML (Tcl)", ["tcl", "adp", "inc"]
69
+ exts "HTML (Tcl)", ["adp", "inc"]
70
70
  exts "HTML", ["html", "htm", "shtml", "xhtml", "phtml", "php", "inc", "tmpl", "tpl", "ctp"]
71
71
  head "HTML", /<!DOCTYPE|<(?i:html)|<\?(?i:php)/
72
72
  exts "Haskell", ["hs"]
@@ -0,0 +1,181 @@
1
+ module VER
2
+ class Keymap
3
+ def self.diakonos(options)
4
+ diakonos = new(options)
5
+ diakonos.mode = options.fetch(:mode, :buffer)
6
+ diakonos.arguments = false
7
+
8
+ diakonos.in_mode :basic do
9
+ key :quit, %w[Control-q]
10
+ end
11
+
12
+ diakonos.in_mode :buffers do
13
+ key :view_close, %w[Control-w]
14
+
15
+ 1.upto(9) do |n|
16
+ key [:view_focus, n], ["Alt-#{n}"], ["Escape", n.to_s]
17
+ end
18
+ end
19
+
20
+ diakonos.in_mode :readline do
21
+ key [:kill_motion, :backward_char], %w[BackSpace]
22
+ key [:kill_motion, :forward_char], %w[Delete], %w[Control-d]
23
+ key [:kill_motion, :backward_word], %w[Control-w]
24
+ key :backward_char, %w[Left], %w[Control-b]
25
+ key :forward_char, %w[Right], %w[Control-f]
26
+ key :backward_word, %w[Shift-Left], %w[Alt-b]
27
+ key :forward_word, %w[Shift-Right], %w[Alt-f]
28
+ key :beginning_of_line, %w[Home], %w[Control-a]
29
+ key :end_of_line, %w[End], %w[Control-e]
30
+ key :insert_selection, %w[Shift-Insert]
31
+ key :accept_line, %w[Return]
32
+ key :previous_history, %w[Up], %w[Control-p]
33
+ key :next_history, %w[Down], %w[Control-n]
34
+ key :beginning_of_history, %w[Control-less]
35
+ key :end_of_history, %w[Control-greater]
36
+ key :transpose_chars, %w[Control-t]
37
+ key :insert_tab, %w[Control-v Tab]
38
+
39
+ KEYSYMS.each do |sym, name|
40
+ key [:insert_string, sym], [name]
41
+ end
42
+ end
43
+
44
+ diakonos.in_mode :status_query do
45
+ inherits :basic, :readline
46
+
47
+ key :ask_abort, %w[Escape], %w[Control-c]
48
+ key :history_prev, %w[Up], %w[Control-p]
49
+ key :history_next, %w[Down], %w[Control-n]
50
+ key :history_complete, %w[Tab]
51
+ key :ask_submit, %w[Return]
52
+
53
+ missing :insert_string
54
+ end
55
+
56
+ diakonos.in_mode :bookmark do
57
+ key :bookmark_toggle, %w[Alt-b Alt-b]
58
+ key :next_bookmark, %w[Alt-b Alt-n]
59
+ key :prev_bookmark, %w[Alt-b Alt-p]
60
+
61
+ key :named_bookmark_add, %w[Alt-b Alt-a]
62
+ key :named_bookmark_remove, %w[Alt-b Alt-r]
63
+ key :named_bookmark_visit, %w[Alt-b Alt-g]
64
+
65
+ # these are only valid on US keymap, don't know a better way.
66
+ key [:named_bookmark_add, '1'], %w[Alt-b Alt-exclam]
67
+ key [:named_bookmark_add, '2'], %w[Alt-b Alt-at]
68
+ key [:named_bookmark_add, '3'], %w[Alt-b Alt-numbersign]
69
+ key [:named_bookmark_add, '4'], %w[Alt-b Alt-dollar]
70
+ key [:named_bookmark_add, '5'], %w[Alt-b Alt-percent]
71
+
72
+ key [:named_bookmark_visit, '1'], %w[Alt-b Alt-1]
73
+ key [:named_bookmark_visit, '2'], %w[Alt-b Alt-2]
74
+ key [:named_bookmark_visit, '3'], %w[Alt-b Alt-3]
75
+ key [:named_bookmark_visit, '4'], %w[Alt-b Alt-4]
76
+ key [:named_bookmark_visit, '5'], %w[Alt-b Alt-5]
77
+ end
78
+
79
+ diakonos.in_mode :ctags do
80
+ key :ctags_go, %w[Alt-t]
81
+ key :ctags_find_current, %w[Alt-parenright]
82
+ key :ctags_prev, %w[Alt-parenleft]
83
+ end
84
+
85
+ diakonos.in_mode :search do
86
+ key :status_search_next, %w[Control-f]
87
+ key :search_next, %w[F3]
88
+ key :search_clear, %w[Control-Alt-u]
89
+
90
+ # TODO: this doesn't work, investiate.
91
+ key :search_prev, %w[Shift-F3]
92
+ end
93
+
94
+ diakonos.in_mode :select do
95
+ key :start_select_char_mode, %w[Control-space]
96
+ key :start_select_line_mode, %w[Escape Control-space], %w[Control-Alt-space]
97
+ end
98
+
99
+ diakonos.in_mode :buffer do
100
+ inherits :basic, :buffers, :readline, :bookmark, :search, :select
101
+
102
+ key :backward_char, %w[Left]
103
+ key :forward_char, %w[Right]
104
+ key :previous_line, %w[Up]
105
+ key :next_line, %w[Down]
106
+ key :beginning_of_line, %w[Home]
107
+ key :end_of_line, %w[End]
108
+ key :page_up, %w[Prior]
109
+ key :page_down, %w[Next]
110
+ key :end_of_file, %w[Alt-greater]
111
+ key :go_line, %w[Alt-less]
112
+
113
+ key :forward_scroll, %w[Alt-n]
114
+ key :backward_scroll, %w[Alt-p]
115
+
116
+ key [:delete_motion, :backward_char], %w[BackSpace]
117
+ key [:delete_motion, :forward_char], %w[Delete]
118
+ key :kill_line, %w[Control-k], %w[Control-d Control-d]
119
+ key [:delete_motion, :end_of_line], %w[Control-Alt-k], %w[Control-d dollar]
120
+ key [:delete_motion, :end_of_line], %w[Control-Alt-k], %w[Control-d dollar]
121
+
122
+ key :insert_indented_newline, %w[Return]
123
+
124
+ key :indent_line, %w[Alt-i], %w[Escape i]
125
+ key :unindent_line, %w[Alt-I], %w[Escape I]
126
+
127
+ key :complete_word, %w[Alt-e], %w[Escape e]
128
+
129
+ key :exec_into_new, %w[F2]
130
+ key :exec_into_void, %w[F8]
131
+ key [:exec_into_new, 'ruby -c $f'], %w[Control-Alt-c]
132
+
133
+ key :insert_tab, %w[Control-t]
134
+ key :paste, %w[Control-v]
135
+ key :undo, %w[Control-z]
136
+ key :redo, %w[Control-y]
137
+
138
+ =begin
139
+ # TODO
140
+ key :top_of_view, %w[Alt-comma], %w[Escape comma]
141
+ key :bottom_of_view, %w[Alt-period], %w[Escape period]
142
+ key :previous_cursor, %w[Control-j]
143
+ key :forward_cursor, %w[Control-l]
144
+
145
+ key :ask_go_line, %w[Control-g]
146
+
147
+
148
+ key :forward_join_lines, %w[Alt-j], %w[Escape j]
149
+ key :backward_join_lines, %w[Alt-J], %w[Escape J]
150
+ =end
151
+
152
+ KEYSYMS.each do |sym, name|
153
+ key [:insert_string, sym], [name]
154
+ end
155
+
156
+ missing :insert_string
157
+ end
158
+
159
+ diakonos.in_mode :select_char do
160
+ inherits :buffer
161
+
162
+ key :copy_selection, %w[Control-c]
163
+ key :kill_selection, %w[Control-x]
164
+ key :delete_selection, %w[BackSpace], %w[Delete]
165
+ key :replace_selection_with_clipboard, %w[Control-v]
166
+ end
167
+
168
+ diakonos.in_mode :hover_completion do
169
+ inherits :basic
170
+
171
+ key :go_up, %w[Up], %w[Control-n]
172
+ key :go_down, %w[Down], %w[Control-p]
173
+ key :continue_completion, %w[Right], %w[Tab]
174
+ key :submit, %w[Return]
175
+ key :cancel, %w[Escape], %w[BackSpace]
176
+ end
177
+
178
+ diakonos
179
+ end
180
+ end
181
+ end
@@ -17,29 +17,29 @@ module VER
17
17
  mode.arguments = false
18
18
  mode.missing :insert_string
19
19
 
20
- mode.map :quit, %w[Control-x Control-c]
21
- mode.map :go_page_down, %w[Control-v], %w[Next]
22
- mode.map :go_page_up, %w[Alt-v], %w[Prior]
23
- mode.map :go_line_up, %w[Control-p], %w[Up]
24
- mode.map :go_line_down, %w[Control-n], %w[Down]
25
- mode.map :go_char_left, %w[Control-b], %w[Left]
26
- mode.map :go_char_right, %w[Control-f], %w[Right]
27
- mode.map :go_word_left, %w[Alt-b]
28
- mode.map :go_word_right, %w[Alt-f]
29
- mode.map :go_beginning_of_line, %w[Control-a]
30
- mode.map :go_end_of_line, %w[Control-e]
31
- mode.map :go_line, %w[Control-less]
32
- mode.map :go_end_of_file, %w[Control-greater]
33
- mode.map :undo, %w[Control-slash], %w[Undo]
34
- mode.map :redo, %w[Redo]
35
- mode.map :join_lines, %w[Control-j]
36
- mode.map :insert_newline, %w[Return]
37
- mode.map :delete_char_left, %w[BackSpace]
38
- mode.map :delete_char_right, %w[Control-d], %w[Delete]
39
- mode.map :delete_to_eol, %w[Control-k]
40
- mode.map :delete_sentence, %w[Alt-k]
41
- mode.map :delete_word_right, %w[Alt-d]
42
- mode.map :delete_word_left, %w[Alt-BackSpace]
20
+ mode.map :quit, %w[Control-x Control-c]
21
+ mode.map :page_down, %w[Control-v], %w[Next]
22
+ mode.map :page_up, %w[Alt-v], %w[Prior]
23
+ mode.map :previous_line, %w[Control-p], %w[Up]
24
+ mode.map :next_line, %w[Control-n], %w[Down]
25
+ mode.map :backward_char, %w[Control-b], %w[Left]
26
+ mode.map :forward_char, %w[Control-f], %w[Right]
27
+ mode.map :backward_word, %w[Alt-b]
28
+ mode.map :forward_word, %w[Alt-f]
29
+ mode.map :beginning_of_line, %w[Control-a]
30
+ mode.map :end_of_line, %w[Control-e]
31
+ mode.map :go_line, %w[Control-less]
32
+ mode.map :end_of_file, %w[Control-greater]
33
+ mode.map :undo, %w[Control-slash], %w[Undo]
34
+ mode.map :redo, %w[Redo]
35
+ mode.map :join_lines, %w[Control-j]
36
+ mode.map :insert_newline, %w[Return]
37
+ mode.map [:delete_motion, :backward_char], %w[BackSpace]
38
+ mode.map [:delete_motion, :forward_char], %w[Control-d], %w[Delete]
39
+ mode.map [:kill_motion, :end_of_line], %w[Control-k]
40
+ mode.map :kill_sentence, %w[Alt-k]
41
+ mode.map [:kill_motion, :forward_word], %w[Alt-d]
42
+ mode.map [:kill_motion, :backward_word], %w[Alt-BackSpace]
43
43
 
44
44
  # HACK, this probably shouldn't switch modes.
45
45
  mode.map [:start_selection, :block], %w[Control-space]
@@ -63,4 +63,4 @@ module VER
63
63
  emacs
64
64
  end
65
65
  end
66
- end
66
+ end
@@ -14,11 +14,14 @@ module VER
14
14
  mode.map :start_control_mode, %w[Escape], %w[Control-c]
15
15
  mode.map :open_method_list, %w[F10]
16
16
  mode.map :open_terminal, %w[F9]
17
- mode.map :open_grep_list, %w[Alt-g], %w[Control-m g]
18
17
  mode.map :describe_key, %w[Control-h k]
19
18
  mode.map :help_for_help, %w[Control-h question], %w[F1], %w[Help]
20
19
  mode.map :tags_at, %w[Control-g t]
21
20
 
21
+ mode.map :open_grep_list, %w[Control-Alt-g], %w[Control-m Control-g]
22
+ mode.map :grep_buffer, %w[Alt-g], %w[Control-m g]
23
+ mode.map :grep_buffers, %w[Alt-G], %w[Control-m G]
24
+
22
25
  mode.map :buffer_switch, %w[Alt-b], %w[Control-m b]
23
26
  mode.map :window_switch, %w[Alt-B], %w[Control-m B]
24
27
  mode.map :open_console, %w[Control-exclam]
@@ -58,7 +61,9 @@ module VER
58
61
  mode.map :page_up, %w[Control-b], %w[Prior]
59
62
  mode.map :prev_newline_block, %w[braceright]
60
63
  mode.map :backward_word, %w[b], %w[Shift-Left]
64
+ mode.map :backward_chunk, %w[B]
61
65
  mode.map :forward_word, %w[w], %w[Shift-Right]
66
+ mode.map :forward_chunk, %w[W]
62
67
  mode.map :word_right_end, %w[e]
63
68
  mode.map :matching_brace, %w[percent]
64
69
  end
@@ -76,34 +81,44 @@ module VER
76
81
 
77
82
  vim.add_mode :ctags do |mode|
78
83
  mode.map :ctags_find_current, %w[Control-bracketright] # C-]
84
+ mode.map :ctags_prev, %w[Control-bracketleft] # C-[
85
+ end
86
+
87
+ vim.add_mode :bookmark do |mode|
88
+ mode.arguments = false
89
+
90
+ mode.map :char_bookmark_add, %w[m]
91
+ mode.map :char_bookmark_visit, %w[quoteleft]
92
+ # vim also has quoteright to jump to the start of the line, but who
93
+ # needs that *_*
79
94
  end
80
95
 
81
96
  vim.add_mode :complete do |mode|
82
97
  mode.arguments = false
83
98
 
84
- mode.to :complete_file, %w[Control-x Control-f]
85
- mode.to :complete_line, %w[Control-x Control-l]
86
- mode.to :complete_word, %w[Control-x Control-w]
87
- mode.to :complete_aspell, %w[Control-x Control-a]
88
- mode.to :complete_tm, %w[Control-x Control-x]
89
- mode.to :smart_tab, %w[Tab]
99
+ mode.map :complete_file, %w[Control-x Control-f]
100
+ mode.map :complete_line, %w[Control-x Control-l]
101
+ mode.map :complete_word, %w[Control-x Control-w]
102
+ mode.map :complete_aspell, %w[Control-x Control-a]
103
+ mode.map :complete_tm, %w[Control-x Control-x]
104
+ mode.map :smart_tab, %w[Tab]
90
105
  end
91
106
 
92
107
  vim.add_mode :control do |mode|
93
- mode.inherits :basic, :move, :views, :search, :ctags
108
+ mode.inherits :basic, :move, :views, :search, :ctags, :bookmark
94
109
 
95
110
  mode.map :copy_left_word, %w[y b]
96
111
  mode.map :copy_line, %w[y y], %w[Y]
97
112
  mode.map :copy_right_word, %w[y w]
98
- mode.map :delete_line, %w[d d]
113
+ mode.map :kill_line, %w[d d]
99
114
  mode.map :change_line, %w[c c]
100
- mode.map [:delete_motion, :backward_char], %w[X]
101
- mode.map [:delete_motion, :forward_char], %w[x]
102
- mode.map [:delete_motion, :end_of_line], %w[D]
115
+ mode.map [:kill_motion, :backward_char], %w[X]
116
+ mode.map [:kill_motion, :forward_char], %w[x]
117
+ mode.map [:kill_motion, :end_of_line], %w[D]
103
118
  mode.map [:change_motion, :end_of_line], %w[C]
104
119
 
105
120
  mode.map :change_motion, ['c', :move]
106
- mode.map :delete_motion, ['d', :move]
121
+ mode.map :kill_motion, ['d', :move]
107
122
 
108
123
  mode.map :eol_then_insert_mode, %w[A]
109
124
  mode.map :forward_char_then_insert_mode, %w[a]
@@ -113,7 +128,6 @@ module VER
113
128
  mode.map :insert_indented_newline_below, %w[o]
114
129
  mode.map :join_lines, %w[J]
115
130
  mode.map :paste, %w[p]
116
- mode.map :redo, %w[Control-r]
117
131
  mode.map :replace_char, %w[r]
118
132
  mode.map :smart_evaluate, %w[Alt-e], %w[Control-m e]
119
133
  mode.map :sol_then_insert_mode, %w[I]
@@ -125,24 +139,23 @@ module VER
125
139
  mode.map :status_theme_select, %w[Alt-t], %w[Control-m t]
126
140
  mode.map :syntax_switch, %w[Control-y]
127
141
  mode.map :theme_switch, %w[Control-t]
128
- mode.map :undo, %w[u]
129
142
  mode.map :unindent_line, %w[less]
130
143
  mode.map :wrap_line, %w[g w]
131
144
  mode.map :preview, %w[F5]
132
145
  mode.map :status_ex, %w[colon]
133
146
  mode.map :syntax_indent_file, %w[equal]
134
- end
147
+ mode.map :repeat_command, %w[period]
135
148
 
136
- vim.add_mode :replace do |mode|
137
- mode.inherits :basic
149
+ mode.map :undo, %w[u]
150
+ mode.map :redo, %w[Control-r]
138
151
  end
139
152
 
140
153
  vim.add_mode :readline do |mode|
141
154
  mode.arguments = false
142
155
 
143
- mode.map [:delete_motion, :backward_char], %w[BackSpace]
144
- mode.map [:delete_motion, :forward_char], %w[Delete], %w[Control-d]
145
- mode.map [:delete_motion, :backward_word], %w[Control-w]
156
+ mode.map [:kill_motion, :backward_char], %w[BackSpace]
157
+ mode.map [:kill_motion, :forward_char], %w[Delete], %w[Control-d]
158
+ mode.map [:kill_motion, :backward_word], %w[Control-w]
146
159
  mode.map :backward_char, %w[Left], %w[Control-b]
147
160
  mode.map :forward_char, %w[Right], %w[Control-f]
148
161
  mode.map :backward_word, %w[Shift-Left], %w[Alt-b]
@@ -177,11 +190,18 @@ module VER
177
190
  mode.missing :insert_string
178
191
  end
179
192
 
193
+ vim.add_mode :replace do |mode|
194
+ mode.inherits :insert
195
+ mode.arguments = false
196
+
197
+ mode.missing :replace_string
198
+ end
199
+
180
200
  vim.add_mode :select do |mode|
181
201
  mode.inherits :basic, :move, :search
182
202
 
183
203
  mode.map :copy_selection, %w[y], %w[Y]
184
- mode.map :delete_selection, %w[d], %w[D], %w[x], %w[BackSpace], %w[Delete]
204
+ mode.map :kill_selection, %w[d], %w[D], %w[x], %w[BackSpace], %w[Delete]
185
205
  mode.map :indent_selection, %w[greater]
186
206
  mode.map :pipe_selection, %w[exclam]
187
207
  mode.map :smart_evaluate, %w[Alt-e], %w[Control-e]
@@ -213,11 +233,11 @@ module VER
213
233
  mode.inherits :basic, :readline
214
234
  mode.arguments = false
215
235
 
216
- mode.to :ask_abort, %w[Escape], %w[Control-c]
217
- mode.to :history_prev, %w[Up], %w[Control-p]
218
- mode.to :history_next, %w[Down], %w[Control-n]
219
- mode.to :history_complete, %w[Tab]
220
- mode.to :ask_submit, %w[Return]
236
+ mode.map :ask_abort, %w[Escape], %w[Control-c]
237
+ mode.map :history_prev, %w[Up], %w[Control-p]
238
+ mode.map :history_next, %w[Down], %w[Control-n]
239
+ mode.map :history_complete, %w[Tab]
240
+ mode.map :ask_submit, %w[Return]
221
241
 
222
242
  mode.missing :insert_string
223
243
  end
@@ -226,12 +246,12 @@ module VER
226
246
  mode.inherits :basic, :readline
227
247
  mode.arguments = false
228
248
 
229
- # mode.to :update, %w[Key]
230
- mode.to :pick_selection, %w[Return]
231
- mode.to :cancel, %w[Escape], %w[Control-c]
232
- mode.to :line_up, %w[Up]
233
- mode.to :line_down, %w[Down]
234
- mode.to :completion, %w[Tab]
249
+ # mode.map :update, %w[Key]
250
+ mode.map :pick_selection, %w[Return]
251
+ mode.map :cancel, %w[Escape], %w[Control-c]
252
+ mode.map :line_up, %w[Up]
253
+ mode.map :line_down, %w[Down]
254
+ mode.map :completion, %w[Tab]
235
255
 
236
256
  mode.missing :insert_string
237
257
  end
@@ -239,111 +259,126 @@ module VER
239
259
  vim.add_mode :list_view_list do |mode|
240
260
  mode.inherits :basic
241
261
 
242
- mode.to :pick_selection, %w[Return], %w[Double-Button-1]
243
- mode.to :line_up, %w[Up]
244
- mode.to :line_down, %w[Down]
262
+ mode.map :pick_selection, %w[Return], %w[Double-Button-1]
263
+ mode.map :line_up, %w[Up]
264
+ mode.map :line_down, %w[Down]
245
265
  end
246
266
 
247
267
  vim.add_mode :hover_completion do |mode|
248
268
  mode.inherits :basic
249
269
 
250
- mode.to :go_up, %w[Up], %w[k]
251
- mode.to :go_down, %w[Down], %w[j]
252
- mode.to :continue_completion, %w[Right], %w[l]
253
- mode.to :submit, %w[Return]
254
- mode.to :cancel, %w[Escape], %w[BackSpace]
270
+ mode.map :go_up, %w[Up], %w[k]
271
+ mode.map :go_down, %w[Down], %w[j]
272
+ mode.map :continue_completion, %w[Right], %w[l]
273
+ mode.map :submit, %w[Return]
274
+ mode.map :cancel, %w[Escape], %w[BackSpace]
255
275
  end
256
276
 
277
+ vim.ignore_sends = [
278
+ :repeat_command,
279
+ :start_control_mode,
280
+ :start_insert_mode,
281
+ :start_replace_mode,
282
+ :start_select_block_mode,
283
+ :start_select_char_mode,
284
+ :start_select_line_mode,
285
+ ]
286
+
287
+ vim.accumulate_sends = [
288
+ :insert_string
289
+ ]
290
+
291
+ vim
292
+ end
293
+ end
294
+ end
295
+
296
+ __END__
257
297
  vim.add_mode :console_entry do |mode|
258
298
  mode.inherits :basic, :readline
259
299
  mode.arguments = false
260
300
 
261
- # mode.to :execute, %w[Return]
262
- # mode.to :cancel, %w[Escape], %w[Control-c]
263
- # mode.to :history_up, %w[Up]
264
- # mode.to :history_down, %w[Down]
265
-
266
- mode.to :vi_eof_maybe, %w[Control-d]
267
- mode.to :emacs_editing_mode, %w[Control-e]
268
- mode.to :abort, %w[Control-g]
269
- mode.to :backward_char, %w[Control-h]
270
- mode.to :accept_line, %w[Control-j], %w[Control-m]
271
- mode.to :kill_line, %w[Control-k]
272
- mode.to :clear_screen, %w[Control-l]
273
- mode.to :next_history, %w[Control-n]
274
- mode.to :previous_history, %w[Control-p], %w[minus]
275
- mode.to :quoted_insert, %w[Control-o], %w[Control-V]
276
- mode.to :reverse_search_history, %w[Control-r]
277
- mode.to :forward_search_history, %w[Control-s]
278
- mode.to :transpose_chars, %w[Control-t]
279
- mode.to :unix_line_discard, %w[Control-u]
280
- mode.to :unix_word_rubout, %w[Control-w]
281
- mode.to :yank, %w[Control-y]
282
- mode.to :vi_undo, %w[Control-underscore]
283
- mode.to :forwad_char, %w[space]
284
- mode.to :insert_comment, %w[numbersign]
285
- mode.to :end_of_line, %w[dollar]
286
- mode.to :vi_match, %w[percent]
287
- mode.to :vi_tilde_expand, %w[ampersand]
288
- mode.to :vi_complete, %w[asterisk]
289
- mode.to :next_history, %w[plus]
290
- mode.to :vi_char_search, %w[comma]
291
- mode.to :vi_redo, %w[period]
292
- mode.to :vi_search, %w[numbersign]
293
- mode.to :beginning_of_line, %w[KeyPress-0]
294
- mode.to :vi_char_search, %w[semicolon]
295
- mode.to :vi_complete, %w[equal]
296
- mode.to :vi_search, %w[question]
297
- mode.to :vi_append_eol, %w[A]
298
- mode.to :vi_prev_word, %w[B]
299
- mode.to :vi_change_to, %w[C]
300
- mode.to :vi_delete_to, %w[D]
301
- mode.to :vi_end_word, %w[E]
302
- mode.to :vi_char_search, %w[F]
303
- mode.to :vi_fetch_history, %w[G]
304
- mode.to :vi_insert_beg, %w[I]
305
- mode.to :vi_search_again, %w[N]
306
- mode.to :vi_put, %w[P]
307
- mode.to :vi_replace, %w[R]
308
- mode.to :vi_subst, %w[S]
309
- mode.to :vi_char_search, %w[T]
310
- mode.to :revert_line, %w[U]
311
- mode.to :vi_next_word, %w[W]
312
- mode.to :backward_delete_char, %w[X]
313
- mode.to :vi_yank_to, %w[Y]
314
- mode.to :vi_complete, %w[backslash]
315
- mode.to :vi_first_print, %w[asciicircum]
316
- mode.to :vi_yank_arg, %w[underscore]
317
- mode.to :vi_goto_mark, %w[quoteleft]
318
- mode.to :vi_append_mode, %w[a]
319
- mode.to :vi_prev_word, %w[b]
320
- mode.to :vi_change_to, %w[c]
321
- mode.to :vi_delete_to, %w[d]
322
- mode.to :vi_end_word, %w[e]
323
- mode.to :vi_char_search, %w[f]
324
- mode.to :backward_char, %w[h]
325
- mode.to :vi_insertion_mode, %w[i]
326
- mode.to :next_history, %w[j]
327
- mode.to :prev_history, %w[k]
328
- mode.to :forward_char, %w[l]
329
- mode.to :forward_char, %w[l]
330
- mode.to :vi_set_mark, %w[m]
331
- mode.to :vi_search_again, %w[n]
332
- mode.to :vi_put, %w[p]
333
- mode.to :vi_change_char, %w[r]
334
- mode.to :vi_subst, %w[s]
335
- mode.to :vi_char_search, %w[t]
336
- mode.to :vi_undo, %w[u]
337
- mode.to :vi_next_word, %w[w]
338
- mode.to :vi_delete, %w[x]
339
- mode.to :vi_yank_to, %w[y]
340
- mode.to :vi_column, %w[bar]
341
- mode.to :vi_change_case, %w[asciitilde]
301
+ # mode.map :execute, %w[Return]
302
+ # mode.map :cancel, %w[Escape], %w[Control-c]
303
+ # mode.map :history_up, %w[Up]
304
+ # mode.map :history_down, %w[Down]
305
+
306
+ mode.map :vi_eof_maybe, %w[Control-d]
307
+ mode.map :emacs_editing_mode, %w[Control-e]
308
+ mode.map :abort, %w[Control-g]
309
+ mode.map :backward_char, %w[Control-h]
310
+ mode.map :accept_line, %w[Control-j], %w[Control-m]
311
+ mode.map :kill_line, %w[Control-k]
312
+ mode.map :clear_screen, %w[Control-l]
313
+ mode.map :next_history, %w[Control-n]
314
+ mode.map :previous_history, %w[Control-p], %w[minus]
315
+ mode.map :quoted_insert, %w[Control-o], %w[Control-V]
316
+ mode.map :reverse_search_history, %w[Control-r]
317
+ mode.map :forward_search_history, %w[Control-s]
318
+ mode.map :transpose_chars, %w[Control-t]
319
+ mode.map :unix_line_discard, %w[Control-u]
320
+ mode.map :unix_word_rubout, %w[Control-w]
321
+ mode.map :yank, %w[Control-y]
322
+ mode.map :vi_undo, %w[Control-underscore]
323
+ mode.map :forwad_char, %w[space]
324
+ mode.map :insert_comment, %w[numbersign]
325
+ mode.map :end_of_line, %w[dollar]
326
+ mode.map :vi_match, %w[percent]
327
+ mode.map :vi_tilde_expand, %w[ampersand]
328
+ mode.map :vi_complete, %w[asterisk]
329
+ mode.map :next_history, %w[plus]
330
+ mode.map :vi_char_search, %w[comma]
331
+ mode.map :vi_redo, %w[period]
332
+ mode.map :vi_search, %w[numbersign]
333
+ mode.map :beginning_of_line, %w[KeyPress-0]
334
+ mode.map :vi_char_search, %w[semicolon]
335
+ mode.map :vi_complete, %w[equal]
336
+ mode.map :vi_search, %w[question]
337
+ mode.map :vi_append_eol, %w[A]
338
+ mode.map :vi_prev_word, %w[B]
339
+ mode.map :vi_change_to, %w[C]
340
+ mode.map :vi_delete_to, %w[D]
341
+ mode.map :vi_end_word, %w[E]
342
+ mode.map :vi_char_search, %w[F]
343
+ mode.map :vi_fetch_history, %w[G]
344
+ mode.map :vi_insert_beg, %w[I]
345
+ mode.map :vi_search_again, %w[N]
346
+ mode.map :vi_put, %w[P]
347
+ mode.map :vi_replace, %w[R]
348
+ mode.map :vi_subst, %w[S]
349
+ mode.map :vi_char_search, %w[T]
350
+ mode.map :revert_line, %w[U]
351
+ mode.map :vi_next_word, %w[W]
352
+ mode.map :backward_delete_char, %w[X]
353
+ mode.map :vi_yank_to, %w[Y]
354
+ mode.map :vi_complete, %w[backslash]
355
+ mode.map :vi_first_print, %w[asciicircum]
356
+ mode.map :vi_yank_arg, %w[underscore]
357
+ mode.map :vi_goto_mark, %w[quoteleft]
358
+ mode.map :vi_append_mode, %w[a]
359
+ mode.map :vi_prev_word, %w[b]
360
+ mode.map :vi_change_to, %w[c]
361
+ mode.map :vi_delete_to, %w[d]
362
+ mode.map :vi_end_word, %w[e]
363
+ mode.map :vi_char_search, %w[f]
364
+ mode.map :backward_char, %w[h]
365
+ mode.map :vi_insertion_mode, %w[i]
366
+ mode.map :next_history, %w[j]
367
+ mode.map :prev_history, %w[k]
368
+ mode.map :forward_char, %w[l]
369
+ mode.map :forward_char, %w[l]
370
+ mode.map :vi_set_mark, %w[m]
371
+ mode.map :vi_search_again, %w[n]
372
+ mode.map :vi_put, %w[p]
373
+ mode.map :vi_change_char, %w[r]
374
+ mode.map :vi_subst, %w[s]
375
+ mode.map :vi_char_search, %w[t]
376
+ mode.map :vi_undo, %w[u]
377
+ mode.map :vi_next_word, %w[w]
378
+ mode.map :vi_delete, %w[x]
379
+ mode.map :vi_yank_to, %w[y]
380
+ mode.map :vi_column, %w[bar]
381
+ mode.map :vi_change_case, %w[asciitilde]
342
382
 
343
383
  mode.missing :insert_string
344
384
  end
345
-
346
- vim
347
- end
348
- end
349
- end