mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Implement line_no correctly
This commit is contained in:
parent
17e6536fe0
commit
2fb1564c02
2 changed files with 7 additions and 7 deletions
|
@ -42,13 +42,13 @@ class RubyLex
|
|||
end
|
||||
end
|
||||
if @io.respond_to?(:dynamic_prompt)
|
||||
@io.dynamic_prompt do |lines, base_line_no|
|
||||
@io.dynamic_prompt do |lines|
|
||||
lines << '' if lines.empty?
|
||||
result = []
|
||||
lines.each_index { |i|
|
||||
c = lines[0..i].map{ |l| l + "\n" }.join
|
||||
ltype, indent, continue, code_block_open = check_state(c)
|
||||
result << @prompt.call(ltype, indent, continue, base_line_no + i)
|
||||
result << @prompt.call(ltype, indent, continue, @line_no + i)
|
||||
}
|
||||
result
|
||||
end
|
||||
|
@ -104,7 +104,7 @@ class RubyLex
|
|||
unless l = lex
|
||||
throw :TERM_INPUT if @line == ''
|
||||
else
|
||||
@line_no += 1
|
||||
@line_no += l.count("\n")
|
||||
next if l == "\n"
|
||||
@line.concat l
|
||||
if @code_block_open or @ltype or @continue or @indent > 0
|
||||
|
|
|
@ -287,7 +287,7 @@ class Reline::LineEditor
|
|||
back = 0
|
||||
prompt_list = nil
|
||||
if @prompt_proc
|
||||
prompt_list = @prompt_proc.(whole_lines, 0)
|
||||
prompt_list = @prompt_proc.(whole_lines)
|
||||
prompt = prompt_list[@line_index]
|
||||
prompt_width = calculate_width(prompt, true)
|
||||
end
|
||||
|
@ -318,7 +318,7 @@ class Reline::LineEditor
|
|||
end
|
||||
prompt_list = nil
|
||||
if @prompt_proc
|
||||
prompt_list = @prompt_proc.(new_lines, 0)
|
||||
prompt_list = @prompt_proc.(new_lines)
|
||||
prompt = prompt_list[@line_index]
|
||||
prompt_width = calculate_width(prompt, true)
|
||||
end
|
||||
|
@ -387,7 +387,7 @@ class Reline::LineEditor
|
|||
new_buffer = whole_lines
|
||||
prompt_list = nil
|
||||
if @prompt_proc
|
||||
prompt_list = @prompt_proc.(new_buffer, 0)
|
||||
prompt_list = @prompt_proc.(new_buffer)
|
||||
prompt = prompt_list[@line_index]
|
||||
prompt_width = calculate_width(prompt, true)
|
||||
end
|
||||
|
@ -444,7 +444,7 @@ class Reline::LineEditor
|
|||
if @is_multiline
|
||||
prompt_list = nil
|
||||
if @prompt_proc
|
||||
prompt_list = @prompt_proc.(whole_lines, 0)
|
||||
prompt_list = @prompt_proc.(whole_lines)
|
||||
prompt = prompt_list[@line_index]
|
||||
prompt_width = calculate_width(prompt, true)
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue