Considering these new insights from Romain and Duncan, a good project might
be to revisit package.skeleton, using the parser package. This reminds me of
a recent proposal of parsing Rd files to convert them into roxygen tags in
the source code.

Thanks for the input,

baptiste




2009/8/31 Duncan Murdoch <murdoch@stats.uwo.ca>

> baptiste auguie wrote:
>
>> 2009/8/31 David Scott <d.scott@auckland.ac.nz>
>>
>>
>>
>>> I think this discussion is valuable, and have previously asked about
>>> style
>>> which I think is very important. Base R does suffer from very
>>> inconsistent
>>> naming and as I think Duncan said it makes it very difficult sometimes to
>>> remember names when you have variations in case and separators as with
>>> things related to system.
>>>
>>> David
>>>
>>>
>>>
>>>
>> Is it a foolish idea to think that perhaps code could be checked and
>> re-formatted automatically when building a package?
>>
>>
> Building a package is the wrong time:  this is something that should be
> done by the author, to the source, before building, but it's quite hard.
>  What you're talking about is a "pretty printer" or "code beautifier".  One
> tricky bit is handling comments, another is handling idiosyncratic
> formatting.  For example, I often line up things on successive lines just so
> that it's easy to see differences I consider important, e.g. in tables of
> constants, etc.
>
> Duncan Murdoch
>
>  Say, I write a function like this,
>>
>> this.is.my.name = function(
>>   a = 1,b=2,
>>  # i'm a comment
>>   z=F)
>> {
>> if(T)
>> {
>> print("true")
>> } else
>> {
>> print("else")
>> }
>>
>> }
>> package.skeleton automatically converts the first "=" sign to "<-" and
>> sometimes also adds backquotes `` to protect the function name. Could this
>> be extended in a few ways,
>>
>> 1- rationalise the function naming scheme, e.g convert every function name
>> to camelCase (and provide aliases not to break dependencies)
>>
>> 2- indent the code and add spaces around commas
>>
>> 3- tidy up the position of braces to make it consistent
>>
>> 4- convert T and F to TRUE and FALSE, this sort of things
>>
>> 5- finally, run a comparison of the two versions to check that the
>> behaviour
>> is as intended.
>>
>> 1,2,3 could be tuned according to a template that the user chooses for a
>> given package (some may prefer underscores, etc.)
>>
>>
>> Perhaps I'm dreaming a bit here, this sounds like meta-programming.
>>
>>
>> Best,
>>
>> baptiste
>>
>>        [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html
>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>
>


-- 
_____________________________

Baptiste Auguié

School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK

http://newton.ex.ac.uk/research/emag
______________________________

	[[alternative HTML version deleted]]


