Skip to content

A roxy_block represents a single roxygen2 block.

The block_* functions provide a few helpers for common operations:

  • block_has_tag(blocks, tags): does block contain any of these tags?

  • block_get_tags(block, tags): get all instances of tags

  • block_get_tag(block, tag): get single tag. Returns NULL if 0, throws warning if more than 1.

  • block_get_tag_value(block, tag): gets val field from single tag.


roxy_block(tags, file, line, call, object = NULL)

block_has_tags(block, tags)

block_get_tags(block, tags)

block_get_tag(block, tag)

block_get_tag_value(block, tag)



A list of roxy_tags.

file, line

Location of the call (i.e. the line after the last line of the block).


Expression associated with block.


Optionally, the object associated with the block, found by inspecting/evaluating call.


A roxy_block to manipulate.

tag, tags

Either a single tag name, or a character vector of tag names.


# The easiest way to see the structure of a roxy_block is to create one
# using parse_text:
text <- "
  #' This is a title
  #' @param x,y A number
  #' @export
  f <- function(x, y) x + y

# parse_text() returns a list of blocks, so I extract the first
block <- parse_text(text)[[1]]
#> <roxy_block> [<text>:6]
#>   $tag
#>     [line:  2] @title 'This is a title' {parsed}
#>     [line:  4] @param 'x,y A number' {parsed}
#>     [line:  5] @export '' {parsed}
#>     [line:  6] @usage '<generated>' {parsed}
#>     [line:  6] @.formals '<generated>' {parsed}
#>     [line:  6] @backref '<generated>' {parsed}
#>   $call   f <- function(x, y) x + y
#>   $object <function> 
#>     $topic f
#>     $alias f