rtags {utils} | R Documentation |
An Etags-like Tagging Utility for R
Description
rtags
provides etags-like indexing capabilities for R code,
using R's own parser.
Usage
rtags(path = ".", pattern = "\\.[RrSs]$",
recursive = FALSE,
src = list.files(path = path, pattern = pattern,
full.names = TRUE,
recursive = recursive),
keep.re = NULL,
ofile = "", append = FALSE,
verbose = getOption("verbose"),
type = c("etags", "ctags"))
Arguments
path , pattern , recursive |
Arguments passed on to |
src |
A vector of file names to be indexed. |
keep.re |
A regular expression further restricting |
ofile |
Passed on to |
append |
Logical, indicating whether the output should overwrite an existing file, or append to it. |
verbose |
Logical. If |
type |
Character string specifying whether emacs style
( |
Details
Many text editors allow definitions of functions and other language
objects to be quickly and easily located in source files through a
tagging utility. This functionality requires the relevant source
files to be preprocessed, producing an index (or tag) file containing
the names and their corresponding locations. There are multiple tag
file formats, the most popular being the vi-style ctags format and the
and emacs-style etags format. Tag files in these formats are usually
generated by the ctags
and etags
utilities respectively.
Unfortunately, these programs do not recognize R code syntax. They do
allow tagging of arbitrary language files through regular expressions,
but this too is insufficient.
The rtags
function is intended to be a tagging utility for R
code. It parses R code files (using R's parser) and produces tags in
both etags and ctags formats. The support for vi-style ctags is
rudimentary, and was adapted from a patch by Neal Fultz; see
PR#17214.
It may be more convenient to use the command-line wrapper script
R CMD rtags
.
Author(s)
Deepayan Sarkar
References
https://en.wikipedia.org/wiki/Ctags, https://www.gnu.org/software/emacs/manual/html_node/emacs/Tags-Tables.html
See Also
Examples
## Not run:
rtags("/path/to/src/repository",
pattern = "[.]*\\.[RrSs]$",
keep.re = "/R/",
verbose = TRUE,
ofile = "TAGS",
append = FALSE,
recursive = TRUE)
## End(Not run)