From deepayan.sarkar at gmail.com  Sun Nov 26 09:02:02 2006
From: deepayan.sarkar at gmail.com (Deepayan Sarkar)
Date: Sun, 26 Nov 2006 00:02:02 -0800
Subject: [Rd] Source references from the parser
In-Reply-To: <45692598.30606@stats.uwo.ca>
References: <456890A8.2060908@stats.uwo.ca>
	<eb555e660611251212j54441315t3fbb439f724ed3e9@mail.gmail.com>
	<456908D2.6080409@stats.uwo.ca>
	<eb555e660611252000i453b6c41n6acd697dce9169ff@mail.gmail.com>
	<45692598.30606@stats.uwo.ca>
Message-ID: <eb555e660611260002y40151472n3e9fae0eeb3b2c3f@mail.gmail.com>

On 11/25/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> On 11/25/2006 11:00 PM, Deepayan Sarkar wrote:
> > On 11/25/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> >> On 11/25/2006 3:12 PM, Deepayan Sarkar wrote:
> >>> On 11/25/06, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> >>>> I have just committed some changes to R-devel (which will become R 2.5.0
> >>>> next spring) to add source references to parsed R code.  Here's a
> >>>> description of the scheme:

[snipped]

> >>>> Comments and problem reports are welcome.
> >>> I haven't tested this, but the idea seems useful. Will this have any
> >>> effect on code parsed using parse(text = "...")? Can it be extended to
> >>> have some such effect? I ask because this is relevant in the context
> >>> of Sweave, where I have always wanted the ability to retain the
> >>> original formatting. I'm currently testing a patch that allows me to
> >>> do this specifically for Sweave, but a more general solution is
> >>> obviously preferable.
> >> I've just added the capability to Sweave.  I haven't committed yet,
> >> because I think it's important that authors can choose whether or not to
> >> turn this on.  Could you let me know your typical workflow with Sweave,
> >> whether you'd like this to default to on or off, and where you'd expect
> >> to change the default?
> >
> > I would like it as an option to the RweaveLatex driver (and perhaps
> > others). In terms of changing the API, this is as simple as adding an
> > argument to the 'RweaveLatexSetup' function.
> >
> > In the case of my patch, the default is off, and is turned on by
> >
> > <<...,src=TRUE>>
> > ...
> > @
> >
> > To make this the global default, one can do
> >
> > \SweaveOpts{src=TRUE}
> >
> > etc. (the name 'src' is not necessarily the best, some variant of
> > 'keep.source' might be more intuitive.)
>
> This is now committed.

Working great, thanks. The behaviour of comments is interesting (and
fortuitous for me), in that top level comments get associated with the
expression that follows it and comments at the end of a chunk are
ignored. Is this intended and can I expect it to remain unchanged? (My
chunks currently tend to end with a blank comment to work around a bug
in ESS, and I would rather not fix them all.)

> I used keep.source, exactly the same as the option() that controls this
> behaviour in other places.
>
> I decided to set the default to TRUE.  This means vignettes will all
> look different in R-devel.  The simplest way to get the previous
> appearance is to put in
>
> \SweaveOpts{keep.source=FALSE}
>
> but in most cases I think people will want the new behaviour.  It's only
> bad if the code was badly formatted or contained comments you don't want
> to show up in the final document.  I looked through the grid package
> vignettes, and only saw about half a dozen places where I thought the
> formatting needed tweaking.

Fine with me (although I suspect R's deparse will often produce more
readable code if the original wasn't written in an editor with smart
indentation).

-Deepayan



[Rd] Source references from the parser
Deepayan Sarkar