2015-11-04 1 views
8

Рассмотрим следующее определение функции R, должны быть документированы с помощью roxygen2 (версия> = 5,0)roxygen2 (версия 5.0) неправильно создает документацию при #»происходит внутри функции

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


testFun <- function(x){ 

    #' Warning1' 
    return(TRUE) 
} 

При использовании Devtools :: документ() документировать это, она производит следующее сообщение об ошибке:

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

Обратите внимание, что нет ТОЧНО не несовпадающих скобки или кавычки в разделе «примеры». Чем это вызвано? Как я могу это исправить?

+0

Звучит как отчет об ошибке для отправки в github. Обход проблемы: не делайте этого! Положите пробел после вашего знака фунта. –

+1

Это не ошибка. Только не делай этого. –

+0

Связанная проблема GitHub: https://github.com/klutometis/roxygen/issues/428 – krlmlr

ответ

4

Это связано с недавними изменениями в пакете roxygen2. Из 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.

Это означает, что любой roxygen стиле комментарии внутри блоков кода будет анализироваться. Если код вашего пакета содержит такие комментарии внутри функций, вы, вероятно, захотите заменить их на простые комментарии, т. Е. Заменить #' на #. После этого одноразового изменения просто не используйте комментарии типа roxygen в блоках кода, если они не предназначены.

Следующая командная строка (требуется sed) заменяет все пробела отступа комментария roxygen стиля с простыми комментариями во всех файлах в R/ подкаталоге текущего каталога:

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

Адаптировать его к вашим потребностям.

+0

Было бы здорово иметь здесь пример, документируя классы R6, этот способ звучит круто! – jangorecki

+2

@jangorecki: Запланировано, но долгий путь ... – krlmlr