Issue #13047 has been updated by Shyouhei Urabe.


Fumiaki Matsushima wrote:

> Non-broken String will be:
> 
> ~~~ ruby
> > pp "bundler.rb"=> "module Bundler\nend\n"
> {"bundler.rb"=> "module Bundler\n" "end\n"}
> ~~~
> 
> How do you think?

There are debates on this "strng" "concatenation" notation. https://bugs.ruby-lang.org/issues/6265
It is questionable if we still prefer this way.

> I tried to write patch but I can't find a way to append "\" to broken line only by current PP's API.

No, I heard there is currently no way to change formats between one / multi -lined outputs.  You have to extend PP itself.

----------------------------------------
Feature #13047: Use String literal instead of `String#+` for multiline pretty-printing of multiline strings
https://bugs.ruby-lang.org/issues/13047#change-62095

* Author: Fumiaki Matsushima
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
----------------------------------------
Multiline pretty-printing of multiline strings is introduced. (https://bugs.ruby-lang.org/issues/12664)

~~~ ruby
> pp "bundler.rb"=> "module Bundler\n  BundlerError = Class.new(Exception)\n  def self.setup\n  end\nend\n"
{"bundler.rb"=>
  "module Bundler\n" +
  "  BundlerError = Class.new(Exception)\n" +
  "  def self.setup\n" +
  "  end\n" +
  "end\n"}
~~~

It is awesome but we can use String literal instead of `String#+`:

~~~ ruby
> pp "bundler.rb"=> "module Bundler\n  BundlerError = Class.new(Exception)\n  def self.setup\n  end\nend\n"
{"bundler.rb"=>
  "module Bundler\n" \
  "  BundlerError = Class.new(Exception)\n" \
  "  def self.setup\n" \
  "  end\n" \
  "end\n"}
~~~

It seems that `pp` want to output evaluable snippet but we can override `String#+` so it may not work well.

Non-broken String will be:

~~~ ruby
> pp "bundler.rb"=> "module Bundler\nend\n"
{"bundler.rb"=> "module Bundler\n" "end\n"}
~~~

How do you think?

-------------

I tried to write patch but I can't find a way to append "\" to broken line only by current PP's API.



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>