2015-11-04 18 views
8

Si consideri la seguente definizione di funzione R all'interno, da documentare mediante roxygen2 (versione> = 5,0)roxygen2 (versione 5.0) crea in modo non corretto la documentazione quando #' si verifica la funzione

#' @title Test Bug 
#' @author Daniel Egan 
#' @param x 
#' @return Nothing 
#' @export 
#' @examples 
#' testFun(x) 


testFun <- function(x){ 

    #' Warning1' 
    return(TRUE) 
} 

Quando si utilizza devtools :: documenti() per documentare questo, produce il seguente errore:

Warning messages:
1: @examples [TestFun.R#8]: mismatched braces or quotes

Nota che ci sono sicuramente non parentesi non corrispondenti o citazioni nella sezione "esempi". Che cosa sta causando questo? Come posso ripararlo?

+0

Sembra un bug report da inviare a github. Soluzione: non farlo! Metti uno spazio dopo il cancelletto. –

+1

Non è un bug. Basta non farlo. –

+0

Problema relativo a GitHub: https://github.com/klutometis/roxygen/issues/428 – krlmlr

risposta

4

Ciò è dovuto alle recenti modifiche nel pacchetto roxygen2. Dal NEWS:

The contents of documented functions are now also parsed for roxygen comments. This allows, e.g., documenting a parameter's type close to where this type is checked, or documenting implementation details close to the source, and simplifies future extensions such as the documentation of R6 classes.

Ciò significa che qualsiasi stile roxygen commenta dentro blocchi di codice sarà analizzata. Se il codice del pacchetto contiene tali commenti all'interno delle funzioni, è probabile che si desideri sostituirli con semplici commenti, ovvero sostituire #' entro il #. Dopo questa modifica una tantum, semplicemente non utilizzare più i commenti in stile di roxygen nei blocchi di codice, a meno che non sia previsto.

La seguente riga di comando (richiede sed) sostituisce tutti i commenti roxygen stile spazio frastagliata con commenti semplici in tutti i file nella R/ sottodirectory della directory corrente:

sed -r -i"" "s/(+#)'/\1/" R/* 

adattarlo alle proprie esigenze.

+0

Sarebbe bello avere un esempio qui, documentare le classi R6 in questo modo sembra fantastico! – jangorecki

+2

@jangorecki: pianificato, ma una lunga strada da percorrere ... – krlmlr

Problemi correlati