From 4798d2c55e359dc95c26b24f56536e2a2801fd54 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 18 Mar 2026 16:06:30 +0000 Subject: [PATCH] Replace {.fun} with {.help} for all exported functions in messaging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All function names referenced via {.fun …} in cli-style messages are exported in NAMESPACE, so {.help …} is the appropriate markup — it renders as a clickable help link rather than plain function styling. https://claude.ai/code/session_01XHWLohiSTdZvCutwD7ag2b --- R/antibiogram.R | 2 +- R/atc_online.R | 2 +- R/custom_mdro_guideline.R | 12 ++++++------ R/guess_ab_col.R | 4 ++-- R/interpretive_rules.R | 8 ++++---- R/mdro.R | 6 +++--- R/mo_source.R | 2 +- R/sir.R | 24 ++++++++++++------------ 8 files changed, 30 insertions(+), 30 deletions(-) diff --git a/R/antibiogram.R b/R/antibiogram.R index ebb75ec5b..f8fad08b6 100755 --- a/R/antibiogram.R +++ b/R/antibiogram.R @@ -1198,7 +1198,7 @@ simulate_coverage <- function(params) { #' @param wisca_model The outcome of [wisca()] or [`antibiogram(..., wisca = TRUE)`][antibiogram()]. #' @rdname antibiogram retrieve_wisca_parameters <- function(wisca_model, ...) { - stop_ifnot(isTRUE(attributes(wisca_model)$wisca), "This function only applies to WISCA models. Use {.fun wisca} or {.fun antibiogram} (with {.code wisca = TRUE}) to create a WISCA model.") + stop_ifnot(isTRUE(attributes(wisca_model)$wisca), "This function only applies to WISCA models. Use {.help wisca} or {.help antibiogram} (with {.code wisca = TRUE}) to create a WISCA model.") attributes(wisca_model)$wisca_parameters } diff --git a/R/atc_online.R b/R/atc_online.R index 485bf378a..f93a1d8a7 100755 --- a/R/atc_online.R +++ b/R/atc_online.R @@ -180,7 +180,7 @@ atc_online_property <- function(atc_code, colnames(out) <- gsub("^atc.*", "atc", tolower(colnames(out))) if (length(out) == 0) { - message_("in {.fun atc_online_property}: no properties found for ATC ", atc_code[i], ". Please check {.href {atc_url} this WHOCC webpage}.") + message_("in {.help atc_online_property}: no properties found for ATC ", atc_code[i], ". Please check {.href {atc_url} this WHOCC webpage}.") returnvalue[i] <- NA next } diff --git a/R/custom_mdro_guideline.R b/R/custom_mdro_guideline.R index 045e04231..00bb999b8 100755 --- a/R/custom_mdro_guideline.R +++ b/R/custom_mdro_guideline.R @@ -145,15 +145,15 @@ custom_mdro_guideline <- function(..., as_factor = TRUE) { ) stop_if( identical(dots, "error"), - "rules must be a valid formula inputs (e.g., using '~'), see {.fun mdro}" + "rules must be a valid formula inputs (e.g., using '~'), see {.help mdro}" ) n_dots <- length(dots) - stop_if(n_dots == 0, "no custom rules were set. Please read the documentation using {.fun mdro}.") + stop_if(n_dots == 0, "no custom rules were set. Please read the documentation using {.help mdro}.") out <- vector("list", n_dots) for (i in seq_len(n_dots)) { stop_ifnot( inherits(dots[[i]], "formula"), - "rule ", i, " must be a valid formula input (e.g., using '~'), see {.fun mdro}" + "rule ", i, " must be a valid formula input (e.g., using '~'), see {.help mdro}" ) # Query @@ -202,7 +202,7 @@ c.custom_mdro_guideline <- function(x, ..., as_factor = NULL) { } for (g in list(...)) { stop_ifnot(inherits(g, "custom_mdro_guideline"), - "for combining custom MDRO guidelines, all rules must be created with {.fun custom_mdro_guideline}", + "for combining custom MDRO guidelines, all rules must be created with {.help custom_mdro_guideline}", call = FALSE ) vals <- attributes(x)$values @@ -259,14 +259,14 @@ run_custom_mdro_guideline <- function(df, guideline, info) { } ) if (identical(qry, "error")) { - warning_("in {.fun custom_mdro_guideline}: rule ", i, + warning_("in {.help custom_mdro_guideline}: rule ", i, " (`", as.character(guideline[[i]]$query), "`) was ignored because of this error message: ", AMR_env$err_msg, call = FALSE ) next } - stop_ifnot(is.logical(qry), "in {.fun custom_mdro_guideline}: rule ", i, " (`", guideline[[i]]$query, + stop_ifnot(is.logical(qry), "in {.help custom_mdro_guideline}: rule ", i, " (`", guideline[[i]]$query, "`) must return {.code TRUE} or {.code FALSE}, not ", format_class(class(qry), plural = FALSE), call = FALSE diff --git a/R/guess_ab_col.R b/R/guess_ab_col.R index 51d1f1f04..85a7ea18f 100755 --- a/R/guess_ab_col.R +++ b/R/guess_ab_col.R @@ -210,7 +210,7 @@ get_column_abx <- function(x, newnames <- suppressWarnings(as.ab(names(dots), info = FALSE)) if (anyNA(newnames)) { if (isTRUE(info)) { - message_("WARNING: some columns returned NA for {.fun as.ab}", as_note = FALSE) + message_("WARNING: some columns returned NA for {.help as.ab}", as_note = FALSE) } warning_("Invalid antibiotic reference(s): ", vector_and(names(dots)[is.na(newnames)], quotes = FALSE), call = FALSE, @@ -267,7 +267,7 @@ get_column_abx <- function(x, if (all_okay == TRUE) { message_(" OK.", as_note = FALSE) } else if (!isFALSE(dups)) { - message_("WARNING: some results from {.fun as.ab} are duplicated: ", vector_and(dups, quotes = "`"), as_note = FALSE) + message_("WARNING: some results from {.help as.ab} are duplicated: ", vector_and(dups, quotes = "`"), as_note = FALSE) } else { message_(" WARNING.", as_note = FALSE) } diff --git a/R/interpretive_rules.R b/R/interpretive_rules.R index 9f62cf31c..cf593cedb 100755 --- a/R/interpretive_rules.R +++ b/R/interpretive_rules.R @@ -198,7 +198,7 @@ interpretive_rules <- function(x, add_MO_lookup_to_AMR_env() if ("custom" %in% rules && is.null(custom_rules)) { - warning_("in {.fun eucast_rules}: no custom rules were set with the {.arg custom_rules} argument", + warning_("in {.help eucast_rules}: no custom rules were set with the {.arg custom_rules} argument", immediate = TRUE ) rules <- rules[rules != "custom"] @@ -1062,7 +1062,7 @@ interpretive_rules <- function(x, warn_lacking_sir_class <- warn_lacking_sir_class[order(colnames(x.bak))] warn_lacking_sir_class <- warn_lacking_sir_class[!is.na(warn_lacking_sir_class)] warning_( - "in {.fun eucast_rules}: not all columns with antimicrobial results are of class 'sir'. Transform them on beforehand, with e.g.:\n", + "in {.help eucast_rules}: not all columns with antimicrobial results are of class 'sir'. Transform them on beforehand, with e.g.:\n", " - ", x_deparsed, " %>% as.sir(", ifelse(length(warn_lacking_sir_class) == 1, warn_lacking_sir_class, paste0(warn_lacking_sir_class[1], ":", warn_lacking_sir_class[length(warn_lacking_sir_class)]) @@ -1178,7 +1178,7 @@ edit_sir <- function(x, suppressWarnings(new_edits[rows, cols][non_SIR] <<- to) } warning_( - "in {.fun eucast_rules}: value \"", to, "\" added to the factor levels of column", + "in {.help eucast_rules}: value \"", to, "\" added to the factor levels of column", ifelse(length(cols) == 1, "", "s"), " ", vector_and(cols, quotes = "`", sort = FALSE), " because this value was not an existing factor level." @@ -1186,7 +1186,7 @@ edit_sir <- function(x, txt_warning() warned <- FALSE } else { - warning_("in {.fun eucast_rules}: ", w$message) + warning_("in {.help eucast_rules}: ", w$message) txt_warning() } }, diff --git a/R/mdro.R b/R/mdro.R index dc97e3c9b..62b6f1ae5 100755 --- a/R/mdro.R +++ b/R/mdro.R @@ -170,9 +170,9 @@ mdro <- function(x = NULL, meet_criteria(infer_from_combinations, allow_class = "logical", has_length = 1) if (isTRUE(only_sir_columns) && !any(is.sir(x))) { - stop_("There were no SIR columns found in the data set, despite {.arg only_sir_columns} being {.code TRUE}. Transform columns with {.fun as.sir} for valid antimicrobial interpretations.") + stop_("There were no SIR columns found in the data set, despite {.arg only_sir_columns} being {.code TRUE}. Transform columns with {.help as.sir} for valid antimicrobial interpretations.") } else if (!isTRUE(only_sir_columns) && !any(is.sir(x)) && !any(is_sir_eligible(x))) { - stop_("There were no eligible SIR columns found in the data set. Transform columns with {.fun as.sir} for valid antimicrobial interpretations.") + stop_("There were no eligible SIR columns found in the data set. Transform columns with {.help as.sir} for valid antimicrobial interpretations.") } # get gene values as TRUE/FALSE @@ -251,7 +251,7 @@ mdro <- function(x = NULL, guideline.bak <- guideline if (is.list(guideline)) { # Custom MDRO guideline --------------------------------------------------- - stop_ifnot(inherits(guideline, "custom_mdro_guideline"), "use {.fun custom_mdro_guideline} to create custom guidelines") + stop_ifnot(inherits(guideline, "custom_mdro_guideline"), "use {.help custom_mdro_guideline} to create custom guidelines") if (isTRUE(info)) { txt <- paste0( "Determining MDROs based on custom rules", diff --git a/R/mo_source.R b/R/mo_source.R index c1846bc19..f441e20a1 100755 --- a/R/mo_source.R +++ b/R/mo_source.R @@ -249,7 +249,7 @@ get_mo_source <- function(destination = getOption("AMR_mo_source", "~/mo_source. current_ext <- regexpr("\\.([[:alnum:]]+)$", destination) current_ext <- ifelse(current_ext > -1L, substring(destination, current_ext + 1L), "") vowel <- ifelse(current_ext %like% "^[AEFHILMNORSX]", "n", "") - stop_("The AMR mo source must be an RDS file, not a{vowel} {toupper(current_ext)} file. If \"{basename(destination)}\" was meant as your input file, use {.fun set_mo_source} on this file. In any case, the option {.code AMR_mo_source} must be set to another path.") + stop_("The AMR mo source must be an RDS file, not a{vowel} {toupper(current_ext)} file. If \"{basename(destination)}\" was meant as your input file, use {.help set_mo_source} on this file. In any case, the option {.code AMR_mo_source} must be set to another path.") } if (is.null(AMR_env$mo_source)) { AMR_env$mo_source <- readRDS_AMR(path.expand(destination)) diff --git a/R/sir.R b/R/sir.R index aa9fbdb03..d05e590ea 100755 --- a/R/sir.R +++ b/R/sir.R @@ -529,10 +529,10 @@ as.sir.default <- function(x, if (all(x %unlike% "(S|I|R)", na.rm = TRUE) && !all(x %in% c(1, 2, 3, 4, 5), na.rm = TRUE)) { # check if they are actually MICs or disks if (all_valid_mics(x)) { - warning_("in {.fun as.sir}: input values were guessed to be MIC values - preferably transform them with {.fun as.mic} before running {.fun as.sir}.") + warning_("in {.help as.sir}: input values were guessed to be MIC values - preferably transform them with {.help as.mic} before running {.help as.sir}.") return(as.sir(as.mic(x), ...)) } else if (all_valid_disks(x)) { - warning_("in {.fun as.sir}: input values were guessed to be disk diffusion values - preferably transform them with {.fun as.disk} before running {.fun as.sir}.") + warning_("in {.help as.sir}: input values were guessed to be disk diffusion values - preferably transform them with {.help as.disk} before running {.help as.sir}.") return(as.sir(as.disk(x), ...)) } } @@ -601,7 +601,7 @@ as.sir.default <- function(x, ifelse(length(out7) > 0, paste0("7 as \"", out7, "\""), NA_character_), ifelse(length(out8) > 0, paste0("8 as \"", out8, "\""), NA_character_) ) - message_("in {.fun as.sir}: Interpreting input value ", vector_and(out[!is.na(out)], quotes = FALSE, sort = FALSE)) + message_("in {.help as.sir}: Interpreting input value ", vector_and(out[!is.na(out)], quotes = FALSE, sort = FALSE)) } if (na_before != na_after) { @@ -610,7 +610,7 @@ as.sir.default <- function(x, sort() %pm>% vector_and(quotes = TRUE) cur_col <- get_current_column() - warning_("in {.fun as.sir}: ", na_after - na_before, " result", + warning_("in {.help as.sir}: ", na_after - na_before, " result", ifelse(na_after - na_before > 1, "s", ""), ifelse(is.null(cur_col), "", paste0(" in column '", cur_col, "'")), " truncated (", @@ -1029,7 +1029,7 @@ as.sir.data.frame <- function(x, if (isTRUE(info)) { message_(font_green_bg(" DONE "), as_note = FALSE) message() - message_("Run {.fun sir_interpretation_history} to retrieve a logbook with all details of the breakpoint interpretations.") + message_("Run {.help sir_interpretation_history} to retrieve a logbook with all details of the breakpoint interpretations.") } } else { # sequential mode (non-parallel) @@ -1168,13 +1168,13 @@ as_sir_method <- function(method_short, dots <- list(...) dots <- dots[which(!names(dots) %in% c("warn", "mo.bak", "is_data.frame"))] if (length(dots) != 0) { - warning_("These arguments in {.fun as.sir} are no longer used: ", vector_and(names(dots), quotes = "`"), ".", call = FALSE) + warning_("These arguments in {.help as.sir} are no longer used: ", vector_and(names(dots), quotes = "`"), ".", call = FALSE) } current_sir_interpretation_history <- NROW(AMR_env$sir_interpretation_history) if (isTRUE(info) && message_not_thrown_before("as.sir", "sir_interpretation_history")) { - message_("Run {.fun sir_interpretation_history} afterwards to retrieve a logbook with all details of the breakpoint interpretations.\n\n") + message_("Run {.help sir_interpretation_history} afterwards to retrieve a logbook with all details of the breakpoint interpretations.\n\n") } current_df <- tryCatch(get_current_data(NA, 0), error = function(e) NULL) @@ -1276,7 +1276,7 @@ as_sir_method <- function(method_short, mo_var_found <- "" } if (is.null(mo)) { - stop_("No information was supplied about the microorganisms (missing argument {.arg mo} and no column of class 'mo' found). See {.fun as.sir}.\n\n", + stop_("No information was supplied about the microorganisms (missing argument {.arg mo} and no column of class 'mo' found). See {.help as.sir}.\n\n", "To transform certain columns with e.g. mutate(), use `data %>% mutate(across(..., as.sir, mo = x))`, where x is your column with microorganisms.\n", "To transform all ", method_long, " in a data set, use `data %>% as.sir()` or `data %>% mutate_if(is.", method_short, ", as.sir)`.", call = FALSE @@ -1312,7 +1312,7 @@ as_sir_method <- function(method_short, if (length(ab) == 1 && ab %like% paste0("as.", method_short)) { - stop_("No unambiguous name was supplied about the antibiotic (argument {.arg ab}). See {.fun as.sir}.", call = FALSE) + stop_("No unambiguous name was supplied about the antibiotic (argument {.arg ab}). See {.help as.sir}.", call = FALSE) } ab.bak <- trimws2(ab) @@ -1328,7 +1328,7 @@ as_sir_method <- function(method_short, if (all(is.na(ab))) { if (isTRUE(info)) { message_("Returning NAs for unknown antibiotic: ", vector_and(ab.bak, sort = FALSE, quotes = TRUE), - ". Rename this column to a valid name or code, and check the output with {.fun as.ab}.", + ". Rename this column to a valid name or code, and check the output with {.help as.ab}.", as_note = FALSE ) } @@ -1352,7 +1352,7 @@ as_sir_method <- function(method_short, } if (isTRUE(add_intrinsic_resistance) && guideline_coerced %unlike% "EUCAST") { if (isTRUE(info) && message_not_thrown_before("as.sir", "intrinsic")) { - message_("in {.fun as.sir}: using {.arg add_intrinsic_resistance} is only useful when using EUCAST guidelines, since the rules for intrinsic resistance are based on EUCAST.") + message_("in {.help as.sir}: using {.arg add_intrinsic_resistance} is only useful when using EUCAST guidelines, since the rules for intrinsic resistance are based on EUCAST.") } } @@ -1988,7 +1988,7 @@ sir_interpretation_history <- function(clean = FALSE) { #' @noRd print.sir_log <- function(x, ...) { if (NROW(x) == 0) { - message_("No results to print. First run {.fun as.sir} on MIC values or disk diffusion zones (or on a {.cls data.frame} containing any of these) to print a 'logbook' data set here.") + message_("No results to print. First run {.help as.sir} on MIC values or disk diffusion zones (or on a {.cls data.frame} containing any of these) to print a 'logbook' data set here.") return(invisible(NULL)) } class(x) <- class(x)[class(x) != "sir_log"]