使用省略号(...)时,如何让R包装函数继承原函数参数自动补全?
解决Roxygen2包装函数自动补全不显示继承参数的问题
方案1:显式声明参数并继承文档
如果包装函数不需要通过...传递额外参数,直接在函数定义里写出要继承的参数,配合@inheritParams继承原函数的文档:
#' @inheritParams foo -a #' @export foo_wrapper <- function(a, b, c) { foo(a = a, b = b, c = c) }
这样RStudio的自动补全会直接显示a、b、c三个参数,同时帮助文档会继承foo中b的描述(c的描述需要你在foo的文档里补充,或者手动添加)。
方案2:保留...并手动补充参数文档
如果必须用...传递参数,需要在roxygen文档里显式添加@param条目来声明继承的参数,这样自动补全工具会识别这些参数并显示:
#' @param a wrapper中a的描述 #' @param b description b(继承自foo) #' @param c 这里可以补充c的描述 #' @inheritDotParams foo -a #' @export foo_wrapper <- function(a, ...) { foo(a = a, ...) }
这个方法既保留了...的灵活性,又能让自动补全显示b和c,帮助文档也会和之前一样正常生成。
原因说明
@inheritDotParams的作用是生成...中传递参数的文档说明,但自动补全工具(比如RStudio)不会自动解析...对应的原函数参数,必须通过显式的函数参数定义或者@param条目才能识别并展示这些参数。
内容的提问来源于stack exchange,提问作者wasserslasken
相关产品推荐
相关产品推荐

