Module: ViEditable

Includes:
ListEditable
Defined in:
lib/rbcurse/vieditable.rb

Instance Method Summary collapse

Methods included from ListEditable

#add_to_kill_ring, #append_next_kill, #append_row, #delete_at, #delete_curr_char, #delete_eol, #delete_forward, #delete_line, #delete_prev_char, #delete_word, #join_next_line, #kill_ring_save, #remove_all, #undo_handler, #yank, #yank_pop

Instance Method Details

#edit_charsObject

return str if ret == 0 return “”



94
95
96
# File 'lib/rbcurse/vieditable.rb', line 94

def edit_chars

end

#edit_line(lineno = @current_index) ⇒ Object

edit current or given line



43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/rbcurse/vieditable.rb', line 43

def edit_line lineno=@current_index
  line = @list[lineno]
  prompt = "Edit: "
  maxlen = 80
  config={}; 
  config[:default] = line
  ret, str = rbgetstr(@form.window, $error_message_row, $error_message_col,  prompt, maxlen, config)
  $log.debug " rbgetstr returned #{ret} , #{str} "
  return if ret != 0
  @list[lineno].replace(str)
  @repaint_required = true
end

#edit_string(string, prompt = "Edit: ", maxlen = 80) ⇒ 0, -1

common method to edit given string

Parameters:

  • string (String)

    to edit/modify

  • prompt (String) (defaults to: "Edit: ")

    to display before string

  • max (int)

    length of input

Returns:

  • (0, -1)

    return value 0 if okay, -1 if error



77
78
79
80
81
82
83
# File 'lib/rbcurse/vieditable.rb', line 77

def edit_string string, prompt="Edit: ", maxlen=80
  config={}; 
  config[:default] = string
  ret, str = rbgetstr(@form.window, $error_message_row, $error_message_col,  prompt, maxlen, config)
  #return str if ret == 0
  #return ""
end

#edit_wordObject



97
98
99
# File 'lib/rbcurse/vieditable.rb', line 97

def edit_word

end

#input_string(prompt = "Insert: ", maxlen = 80) ⇒ 0, -1

common method to input a blank string

Parameters:

  • prompt (String) (defaults to: "Insert: ")

    to display before string

  • max (int)

    length of input

Returns:

  • (0, -1)

    return value 0 if okay, -1 if error



89
90
91
92
93
# File 'lib/rbcurse/vieditable.rb', line 89

def input_string prompt="Insert: ", maxlen=80
  ret, str = rbgetstr(@form.window, $error_message_row, $error_message_col,  prompt, maxlen, config)
  #return str if ret == 0
  #return ""
end

#insert_line(lineno = @current_index) ⇒ Object

insert a line



57
58
59
60
61
62
63
64
65
66
67
68
69
# File 'lib/rbcurse/vieditable.rb', line 57

def insert_line lineno=@current_index
  prompt = "Insert: "
  maxlen = 80
  #config={}; 
  #config[:default] = line
  #ret, str = rbgetstr(@form.window, $error_message_row, $error_message_col,  prompt, maxlen, config)
  ret, str = input_string prompt
  #ret, str = rbgetstr(@form.window, @row+@height-1, @col+1, prompt, maxlen, config)
  $log.debug " rbgetstr returned #{ret} , #{str} "
  return if ret != 0
  @list.insert lineno, str
  @repaint_required = true
end

#vieditable_initObject

def ViEditable.vieditable_init



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/rbcurse/vieditable.rb', line 16

def vieditable_init
  $log.debug " inside vieditable_init "
  @editable = true
  bind_key( ?C, :edit_line)
  bind_key( ?o, :insert_line)
  bind_key( ?O) { insert_line(@current_index-1) } 
  bind_key( ?D, :delete_eol)
  bind_key( [?d, ?$], :delete_eol)
  bind_key( [?d, ?d] , :delete_line ) 
  bind_key( [?d, ?w], :delete_word )
  bind_key( [?d, ?t], :delete_till )
  bind_key( [?d, ?f], :delete_forward )
  bind_key( ?\C-_ ) { @undo_handler.undo if @undo_handler }
  bind_key( ?u ) { @undo_handler.undo if @undo_handler }
  bind_key( ?\C-r ) { @undo_handler.redo if @undo_handler }
  bind_key( ?x, :delete_curr_char )
  bind_key( ?X, :delete_prev_char )
  bind_key( [?y, ?y] , :kill_ring_save ) 
  bind_key( ?p, :yank ) # paste after this line
  bind_key( ?P ) { yank(@current_index - 1) } # should be before this line
  bind_key(?\w, :forward_word)
  bind_key(?f, :forward_char)

end