deivid-rodriguez/pry-byebug

Repeated newlines in multi-line strings are ignored

sjahu opened this issue · 0 comments

sjahu commented

(Moved from pry/pry#2227 because it seems like this is a behaviour introduced by pry-byebug, not one that exists in pry on its own.)

When multiline strings are entered in the interpreter, repeated newlines are ignored and compacted to a single newline. This behaviour is inconsistent with how multi-line strings are handled by the ruby parser and by irb (see example below).

Pry results, missing newlines:

[14] pry(main)> <<ASDF
[14] pry(main)* 1
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 2
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 4
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 
[14] pry(main)* 5
[14] pry(main)* ASDF
=> "1\n2\n4\n5\n"
[15] pry(main)> %q(
[15] pry(main)* 1
[15] pry(main)* 
[15] pry(main)* 
[15] pry(main)* 
[15] pry(main)* 
[15] pry(main)* 2
[15] pry(main)* 
[15] pry(main)* 
[15] pry(main)* 
[15] pry(main)* 
[15] pry(main)* 4
[15] pry(main)* )
=> "\n1\n2\n4\n"
[16] pry(main)> "
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 3
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 5
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 
[16] pry(main)* 3"
=> "\n3\n5\n3"
[17] pry(main)>

irb results, as expected:

irb(main):029:0> "
irb(main):030:0" 
irb(main):031:0" 
irb(main):032:0" 
irb(main):033:0" d
irb(main):034:0" 
irb(main):035:0" 
irb(main):036:0" 
irb(main):037:0" a
irb(main):038:0" 
irb(main):039:0" 
irb(main):040:0" 
irb(main):041:0" 
irb(main):042:0" s
irb(main):043:0" 
irb(main):044:0" 
irb(main):045:0" 
irb(main):046:0" f"
=> "\n\n\n\nd\n\n\n\na\n\n\n\n\ns\n\n\n\nf"