如何告诉 RStudio 使用包名称自动完成我函数的参数?

How to tell RStudio to autocomplete my function's arguments with package names?

According to 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 中默认可用。

勾选this comment