diff options
-rw-r--r-- | lib/reline/line_editor.rb | 16 | ||||
-rw-r--r-- | test/reline/test_reline.rb | 4 |
2 files changed, 16 insertions, 4 deletions
@@ -1224,8 +1224,16 @@ class Reline::LineEditor end def retrieve_completion_block(set_completion_quote_character = false) - word_break_regexp = /\A[#{Regexp.escape(Reline.completer_word_break_characters)}]/ - quote_characters_regexp = /\A[#{Regexp.escape(Reline.completer_quote_characters)}]/ before = @line.byteslice(0, @byte_pointer) rest = nil break_pointer = nil @@ -1246,14 +1254,14 @@ class Reline::LineEditor elsif quote and slice.start_with?(escaped_quote) # skip i += 2 - elsif slice =~ quote_characters_regexp # find new " rest = $' quote = $& closing_quote = /(?!\\)#{Regexp.escape(quote)}/ escaped_quote = /\\#{Regexp.escape(quote)}/ i += 1 break_pointer = i - 1 - elsif not quote and slice =~ word_break_regexp rest = $' i += 1 before = @line.byteslice(i, @byte_pointer - i) @@ -65,6 +65,8 @@ class Reline::Test < Reline::TestCase Reline.completer_word_break_characters = "[".encode(Encoding::ASCII) assert_equal("[", Reline.completer_word_break_characters) assert_equal(get_reline_encoding, Reline.completer_word_break_characters.encoding) ensure Reline.completer_word_break_characters = completer_word_break_characters end @@ -89,6 +91,8 @@ class Reline::Test < Reline::TestCase Reline.completer_quote_characters = "`".encode(Encoding::ASCII) assert_equal("`", Reline.completer_quote_characters) assert_equal(get_reline_encoding, Reline.completer_quote_characters.encoding) ensure Reline.completer_quote_characters = completer_quote_characters end |