To create a new roclet, you will need to create a constructor function that wraps roclet, and then implement the methods described below.

roclet(subclass, ...)

roclet_preprocess(x, blocks, base_path)

roclet_process(x, blocks, env, base_path)

roclet_output(x, results, base_path, ...)

roclet_clean(x, base_path)




A roclet object.


A list of roxy_block objects.


Path to root of source package.


Package environment.


Value returned from your roclet_process() method.


  • roclet_preprocess() is called after blocks have been parsed but before code has been evaluated. This should only be needed if your roclet affects how code will evaluated. Should return a roclet.

  • roclet_process() called after blocks have been evaluated; i.e. the @eval tag has been processed, and the object associated with each block has been determined.

  • roclet_output() is given the output from roclet_process() and should produce files on disk.

  • roclet_clean() called when roxygenise(clean = TRUE). Should remove any files created by the roclet.

Deprecated methods

roclet_tags() is no longer used; instead provide a roxy_tag_parse() method for each tag.