From r-devel at akersting.de  Wed Jun 14 12:58:38 2017
From: r-devel at akersting.de (Andreas Kersting)
Date: Wed, 14 Jun 2017 12:58:38 +0200
Subject: [Rd] [WISH / PATCH] possibility to split string literals across
 multiple lines
Message-ID: <73ec8f95-9607-80ee-0e37-ff0d739d289d@akersting.de>

Hi,

I would really like to have a way to split long string literals across 
multiple lines in R.

Currently, if a string literal spans multiple lines, there is no way to 
inhibit the introduction of newline characters:

 > "aaa
+ bbb"
[1] "aaa\nbbb"


If a line ends with a backslash, it is just ignored:

 > "aaa\
+ bbb"
[1] "aaa\nbbb"


We could use this fact to implement string splitting in a fairly 
backward-compatible way, since currently such trailing backslashes 
should hardly be used as they do not have any effect. The attached patch 
makes the parser ignore a newline character directly following a backslash:

 > "aaa\
+ bbb"
[1] "aaabbb"


I personally would also prefer if leading blanks (spaces and tabs) in 
the second line are ignored to allow for proper indentation:

 >   "aaa \
+    bbb"
[1] "aaa bbb"

 >   "aaa\
+    \ bbb"
[1] "aaa bbb"

This is also implemented by this patch.


An alternative approach could be to have something like

("aaa "
"bbb")

or

("aaa ",
"bbb")

be interpreted as "aaa bbb".

I don't know the ins and outs of the parser of R (hence: please very 
carefully review the attached patch), but I guess this would be more 
work to implement!?


What do you think? Is there anybody else who is missing this feature in 
the first place?

Regards,
Andreas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: text/x-patch
Size: 2598 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20170614/7986e543/attachment.bin>


[Rd] [WISH / PATCH] possibility to split string literals across multiple lines
Andreas Kersting