I like this scheme; it is clear and the user can control it reasonably well. For the record, let me register one problem, not because I think this problem _must_ be solved, but because we should be aware of the choice we’re making. And that is: the use of CDI to indicate “opt out of alignment” takes away the user’s ability to use CDI to say “no trailing newline.” That is, if I want the following string to be indented to the max:
> > String s = """ > some > lines go here > "”"; the use of the closing delimiter in this way is fine, but then I can’t get the equivalent string with no trailing newline. So I can use CDI to influence trailing newline, OR alignment, but not both. FTR I think this is probably OK.