2015-10-08 9 views
7

Il seguente MWE fallisce la compilazione (via devtools::document()):Uso brace sbilanciato in Roxygen/Rd esempio di codice

#' MWE 
#' 
#' @examples 
#' format('{}') # Works 
#' format('{') # Nope 
#' format('\{') # Nope 
#' format('\\{')# Nope 
format = function (str) {} 

Indipendentemente da quale dei “No” linee includo, non riesce sempre con l'errore

Fallimento in blocco roxygen inizio mwe.r: 1
parentesi non corrispondenti ...

Accordi ng alla mia lettura del Rd documentation, questo dovrebbe funzionare evitando la parentesi. Tuttavia, come mostrato sopra, questo è non lavoro. Sto facendo qualcosa di sbagliato o si tratta di un bug in Roxygen?

Un suggerimento che questo potrebbe essere un bug Roxygen è il messaggio di errore completo quando si utilizza la versione single-escape (format('\{')): bretelle

non corrispondenti: "@example format('{}') # Works format('\\{') # Nope"

Nota che la singola il backslash nell'input è stato raddoppiato nell'output.

+0

@Josh tuo (ora cancellato) risposta rende questa compilazione, ma - come avrete notato, considerando l'eliminazione - si traduce in un file Rd rotto che mostrerà errori durante il tentativo di visualizzare l'aiuto in R. Quindi possiamo concludere che questo è un bug di roxygen? –

+1

Sembra proprio un bug. Ho eliminato perché mi sono reso conto (duh) che la parentesi graffa in più era appena stata usata per chiudere la sezione '\ examples {}' –

+0

Bene, bug segnalato su https://github.com/klutometis/roxygen/issues/393 –

risposta

1

Non sicuro quando questo è stato risolto ma con roxygen2version 6.0.1 questo problema sembra risolto.

devtools::document() sul MWE produce una valida Rd:

\examples{ 
format('{}') 
format('{') 
format('\\{') 
format('\\\\{') 
}