diff options
author | aycabta <aycabta@gmail.com> | 2020-01-06 01:20:24 +0900 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2020-01-06 01:20:24 +0900 |
commit | 439e1ccd088a2b8d7b965a46db0212db24b40fc4 (patch) | |
tree | e138f018d3baf35545a92b96ceaebec0fa03258d /lib | |
parent | da028a4fbf879144a09192c5cc4a0020c69048e0 (diff) |
Complete indented and quoted string correctly
def foo
''.upca[TAB]
This will be completed to be:
def foo
''.upcase
The indent was gone. This commit fixes the bug.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/reline/line_editor.rb | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index b46eddf31a..475f76fd65 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -905,7 +905,6 @@ class Reline::LineEditor quote = nil i += 1 rest = nil - break_pointer = nil elsif quote and slice.start_with?(escaped_quote) # skip i += 2 @@ -915,7 +914,7 @@ class Reline::LineEditor closing_quote = /(?!\\)#{Regexp.escape(quote)}/ escaped_quote = /\\#{Regexp.escape(quote)}/ i += 1 - break_pointer = i + break_pointer = i - 1 elsif not quote and slice =~ word_break_regexp rest = $' i += 1 @@ -937,6 +936,11 @@ class Reline::LineEditor end else preposing = '' + if break_pointer + preposing = @line.byteslice(0, break_pointer) + else + preposing = '' + end target = before end [preposing.encode(@encoding), target.encode(@encoding), postposing.encode(@encoding)] |