@@ -133,17 +133,30 @@ how_to_use <- function(package, type) {
133133 " Are you sure you want {ui_field('Depends')}? \\
134134 {ui_field('Imports')} is almost always the better choice."
135135 ),
136- suggests = {
137- code <- glue(" requireNamespace(\" {package}\" , quietly = TRUE)" )
138- ui_todo(" Use {ui_code(code)} to test if package is installed" )
139- code <- glue(" {package}::fun()" )
140- ui_todo(" Then directly refer to functions with {ui_code(code)}" )
141- },
136+ suggests = suggests_usage_hint(package ),
142137 enhances = " " ,
143138 linkingto = show_includes(package )
144139 )
145140}
146141
142+ suggests_usage_hint <- function (package ) {
143+ imports_rlang <- desc :: desc_has_dep(" rlang" , type = " Imports" , proj_get())
144+ if (imports_rlang ) {
145+ code1 <- glue(' rlang::is_installed("{package}")' )
146+ code2 <- glue(' rlang::check_installed("{package}")' )
147+ ui_todo("
148+ In your package code, use {ui_code(code1)} or {ui_code(code2)} to test \\
149+ if {package} is installed" )
150+ code <- glue(" {package}::fun()" )
151+ ui_todo(" Then directly refer to functions with {ui_code(code)}" )
152+ } else {
153+ code <- glue(" requireNamespace(\" {package}\" , quietly = TRUE)" )
154+ ui_todo(" Use {ui_code(code)} to test if package is installed" )
155+ code <- glue(" {package}::fun()" )
156+ ui_todo(" Then directly refer to functions with {ui_code(code)}" )
157+ }
158+ }
159+
147160show_includes <- function (package ) {
148161 incl <- path_package(" include" , package = package )
149162 h <- dir_ls(incl , regexp = " [.](h|hpp)$" )
0 commit comments