如何告诉 RStudio 使用包名称自动完成我函数的参数?
How to tell RStudio to autocomplete my function's arguments with package names?
In addition, certain functions, such as library() and require(), expect package names for completions. RStudio automatically infers whether a particular function expects a package name and provides those names as completion...
我的问题是:如何?我正在编写一个将包名称作为参数的自定义函数,但 RStudio 仅使用对象和函数名称完成参数,我无法说出 library()
和 require()
代码的含义RStudio 正在接受。
我的函数是:
unpack <- function(...,
lib = NULL,
repos = getOption("repos")) {
pkgs <- sapply(match.call(expand.dots = TRUE)[-1], as.character)
new.pkgs <-
pkgs[!(
pkgs %in% installed.packages(lib.loc = lib)[, "Package"]
)]
if (length(new.pkgs))
install.packages(new.pkgs,
lib = lib,
repos = repos)
sapply(pkgs, require,
lib.loc = lib,
character.only = TRUE)
}
正如@hrbrmstr 指出的那样,Java 和 R 代码都专门命名了自动完成包名称的四个函数,因此解决方案是屏蔽其中一个并交叉手指,或者添加您的函数名称到两个源文件中的那些列表(或者可能只是 R,我想知道)。
我最近创建了一个包含更多自动完成功能的程序包(虽然完全是实验性的)(仅作为额外代码)。
这里可以看到https://github.com/r-rudra/patch/blob/main/inst/embedded/usecases.R
也许很快所有这些都将在 RStudio 中默认可用。
In addition, certain functions, such as library() and require(), expect package names for completions. RStudio automatically infers whether a particular function expects a package name and provides those names as completion...
我的问题是:如何?我正在编写一个将包名称作为参数的自定义函数,但 RStudio 仅使用对象和函数名称完成参数,我无法说出 library()
和 require()
代码的含义RStudio 正在接受。
我的函数是:
unpack <- function(...,
lib = NULL,
repos = getOption("repos")) {
pkgs <- sapply(match.call(expand.dots = TRUE)[-1], as.character)
new.pkgs <-
pkgs[!(
pkgs %in% installed.packages(lib.loc = lib)[, "Package"]
)]
if (length(new.pkgs))
install.packages(new.pkgs,
lib = lib,
repos = repos)
sapply(pkgs, require,
lib.loc = lib,
character.only = TRUE)
}
正如@hrbrmstr 指出的那样,Java 和 R 代码都专门命名了自动完成包名称的四个函数,因此解决方案是屏蔽其中一个并交叉手指,或者添加您的函数名称到两个源文件中的那些列表(或者可能只是 R,我想知道)。
我最近创建了一个包含更多自动完成功能的程序包(虽然完全是实验性的)(仅作为额外代码)。
这里可以看到https://github.com/r-rudra/patch/blob/main/inst/embedded/usecases.R
也许很快所有这些都将在 RStudio 中默认可用。