> On May 14, 2019, at 5:25 PM, Brian Goetz <[email protected]> wrote:
>
>> Most of the examples in the JEP follow these rules as a convention already.
>> The concatenation examples would benefit from following it.
>
> Sorry, not seeing it — how would the concatenation examples benefit? Example?
>
Sure, let me elaborate.
I think this:
~~~
String code = """
public void print(""" + type + """
o) {
System.out.println(Objects.toString(o));
}
""";
~~~
should be presented like this:
~~~
String code = """
public void print(""" +
type +
"""
o) {
System.out.println(Objects.toString(o));
}
""";
~~~
It's not great, and replace/format is the "right" solution, but if somebody
wants to do concatenation, this style does a better job of indicating where the
indent prefix ends and the content begins. The delimiter gives a visual
indication of where the "block" is located.
Further illustrations: Things like this are following the convention I'm
proposing we enforce:
~~~
String html = """
<html>
<body>
<p>Hello, world</p>
</body>
</html>
""";
~~~
As is this:
~~~
"""
line 1
line 2
line 3"""
~~~
This one doesn't, but it's a simple matter of putting some spaces before the
closing delimiter to fix it:
~~~
String empty = """
""";
~~~
This concatenation example follows the convention (although note that there's
no newline between '{' and 'System'):
~~~
String code = "public void print(Object o) {" +
"""
System.out.println(Objects.toString(o));
}
""";
~~~