summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2019-12-03 13:02:01 +0900
committeraycabta <aycabta@gmail.com>2019-12-03 13:02:50 +0900
commit027e847cd2540553c9ddcf1b39028c43258a3fb4 (patch)
treee36b320e8f28ff155ade4735e01ce6ada2b8d611 /lib
parent14a17063a11a01d518b4bbaf0eb967330aec3984 (diff)
Fix auto-indent behavior correctly
Diffstat (limited to 'lib')
-rw-r--r--lib/irb/ruby-lex.rb2
-rw-r--r--lib/reline/line_editor.rb9
2 files changed, 4 insertions, 7 deletions
diff --git a/lib/irb/ruby-lex.rb b/lib/irb/ruby-lex.rb
index 1761afe895..24074f323d 100644
--- a/lib/irb/ruby-lex.rb
+++ b/lib/irb/ruby-lex.rb
@@ -366,9 +366,9 @@ class RubyLex
spaces_of_nest = []
spaces_at_line_head = 0
@tokens.each_with_index do |t, index|
- corresponding_token_depth = nil
case t[1]
when :on_ignored_nl, :on_nl, :on_comment
+ corresponding_token_depth = nil
spaces_at_line_head = 0
is_first_spaces_of_line = true
is_first_printable_of_line = true
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb
index 5d325bc7c4..072238f8a8 100644
--- a/lib/reline/line_editor.rb
+++ b/lib/reline/line_editor.rb
@@ -815,12 +815,9 @@ class Reline::LineEditor
@line = ' ' * new_indent + @line.lstrip
new_indent = nil
- (new_lines[-2].size + 1).times do |n|
- result = @auto_indent_proc.(new_lines[0..-2], @line_index - 1, n, false)
- if result
- new_indent = result
- break
- end
+ result = @auto_indent_proc.(new_lines[0..-2], @line_index - 1, (new_lines[-2].size + 1), false)
+ if result
+ new_indent = result
end
if new_indent&.>= 0
@line = ' ' * new_indent + @line.lstrip