> On Jun 7, 2018, at 9:11 AM, Jim Laskey <james.las...@oracle.com> wrote:
> 
> This topic died down while we were off doing other things including some more 
> research, consequently Raw String Literals will miss the JDK 11 train.
> 
> We have introduced some new String methods in JDK 11 (and one Predicate 
> method) that will help us along the way (used in some of the examples below.)

Very nice.  I do note that the meaning of .indent() is not immediately apparent 
from the name, especially because if it does anything at all, it *removes* some 
indentation.

Allow me to suggest eliminating .indent(), and replacing it with .reindent(n), 
which has the effect of .indent().indent(n) (in other words, it "changes the 
indentation to be n”).  If you don’t like the name “reinvent”, it could be 
“leftMargin”.

The name “lines” is similarly uninformative, and the LinesOptions business 
seems kind of clunky: useful if we expect to be “computing lines options”, but 
if not, I would rather see

        System.out.println(`
           abc
           def
           ghi
        `.removeOneLeadingBlankLine().removeOneTrailingBlankLine().count());

and other available methods are

        removeAllLeadingBlankLines()
        removeAllTrailingBlankLines()
        removeAllSurroundingBlankLines()
        removeAllBlankLines()

which I think would cover 99.9% of uses.

—Guy

P.S. In doc for .indent(int n), "take affect” => “take effect”.

Reply via email to