我的软件包中有一项功能,应谨慎使用。
用户应该意识到这一点,但是如果他/她认为情况还可以,那么每次调用该函数时都会显示警告。
我经常看到只显示一次的警告。他们很难调试,所以我找不到可复制的示例(如果有的话我会添加一个示例),但是它们显示特定的警告消息,后跟rlang
info:
此警告每个会话显示一次
[有很多想要调试这些消息的帮助(例如here,here或here,只是google“ r该警告在每个会话中显示一次”)]
我认为程序包lifecyle
经常将其用于软弃用,但我无法在lifecycle:::lifecycle_build_message
中发现窍门。
如何在包裹中发出这样的警告?
编辑:
这里是可复制的示例。您必须重新启动R会话才能再次显示。如您所见,options(warn=2)
没有影响。
options(warn=2)
xx=c("Sepal.Width")
tidyselect::vars_select(names(iris), xx)
[在tidyselect::vars_select
的情况下,窍门在tidyselect:::inform_once
中。
维护一个环境tidyselect:::inform_once
,记录是否已显示给定消息。