繁体   English   中英

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

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

根据 RStudio 的说法:

此外,某些函数,例如 library() 和 require(),期望完成包名称。 RStudio 自动推断特定函数是否需要包名并将这些名称提供为完成...

我的问题是:如何? 我正在编写一个以包名作为参数的自定义函数,但 RStudio 只用对象和函数名来完成参数,而且我不知道 RStudio 正在获取的library()require()代码是什么在。

我的功能是:

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

检查此评论

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM