1
0
Fork 0
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:
aycabta 2019-06-16 14:46:22 +09:00
parent 17e6536fe0
commit 2fb1564c02
2 changed files with 7 additions and 7 deletions

View file

@ -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

View file

@ -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