使用省略号(...)时如何继承参数的自动完成功能

问题描述 投票:0回答:1

我有一个函数

foo
和一些文档,使用
roxygen2

#' @param a description a
#' @param b description b
foo <- function(a, b, c){
        cat(a, b, c)
    }

我为

foo
编写了一个包装器,它继承了所有参数,但
a
来自
foo
。它们在帮助文件中按预期显示。

#' @inheritDotParams foo -a
foo_wrapper <- function(a, ...){
    foo(a = "a", ...)
}

自动完成仅显示来自

foo_wrapper(a, ...)
的参数。我怎样才能让它建议来自
foo
的参数? 发现这个 issue 似乎相关,但不是同一个问题。

r roxygen2
1个回答
0
投票

我认为最好的方法是复制参数名称,即将

foo_wrapper
定义为

foo_wrapper <- function(a, b, c){
  foo(a = "a", b = b, c = c)
}

自动完成通常基于函数定义,

@inheritDotParams
对函数定义没有影响,它只影响生成的Rd文档文件。

如果你真的决心这样做,你可以使用

?rcompgen
中描述的方法。例如,跑步

utils:::.addFunctionInfo(foo_wrapper = c("a", "b", "c"))

将导致基本 R GUI 提供所有三个参数作为补全。看来 RStudio 完成代码并没有注意到这一点。如果你使用RStudio,我不知道是否有办法做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.