6

I have a function that does nothing more than ads a unique attr to any R object. Base demo:

#' Setter function
#' @param x an R object
#' @param value a character value to set
#' @export
`foo<-` <- function(x, value){
    attr(x, 'foo') <- value
    return(x)
}

This works like a charm except for generating a good Rd file, relevant part:

\usage{
  foo(var, value) <- value
}

And of course it triggers a warning while running R CMD check as it should be foo(var) <- value.

Any hints would be really apprecieted!


Update: thanks to richierocks it seems there is a fix

daroczig
  • 28,004
  • 7
  • 90
  • 124

1 Answers1

8

You can use the roxygen tag @usage

Here is an example from one of my packages:

#' @rdname pattern
#' @usage pattern(x) <- value
#' @param value New value
#' @export pattern<-
"pattern<-" <- function(x, value=c("^", "($|(_\\d+(_\\d+)*)$)")){
  attr(x, "pattern") <- value
  x
}

This results in my desired documentation:

Usage

  pattern(x) <- value

Arguments
x surveydata object

value New value
Andrie
  • 176,377
  • 47
  • 447
  • 496
  • Works like a charm, thanks @Andrie for pointing my attention to `@usage` - I just do not how could I take no notice of this useful tag. – daroczig Jan 16 '12 at 11:45
  • 2
    That's because you should never need to use `@usage` - any time you do it is a bug in roxygen2 and you should file a bug report. – hadley Jan 16 '12 at 14:28
  • Thanks @hadley, I have added a comment on the [appropriate issue](https://github.com/klutometis/roxygen/issues/38#issuecomment-3516591). – daroczig Jan 17 '12 at 12:55