R 以与整洁评估兼容的方式整理文本
我想以符合tidy评估的方式整理源代码。不幸的是,R 以与整洁评估兼容的方式整理文本,r,tidyverse,tidyr,tidyeval,formatr,R,Tidyverse,Tidyr,Tidyeval,Formatr,我想以符合tidy评估的方式整理源代码。不幸的是,格式化程序没有保留操作员 formatR::tidy_source(text = "!!little_b", output = FALSE)$text.tidy ## [1] "!(!little_b)" 根据第7节 简而言之,tidy_源代码(text=code)基本上是deparse(parse(text=code)) 但是当我调用deparse(parse(text=code))时,文本是不可用的。实际行为: deparse(parse(
格式化程序
没有保留代码>操作员
formatR::tidy_source(text = "!!little_b", output = FALSE)$text.tidy
## [1] "!(!little_b)"
根据第7节
简而言之,tidy_源代码(text=code)基本上是deparse(parse(text=code))
但是当我调用deparse(parse(text=code))
时,文本是不可用的。实际行为:
deparse(parse(text = "1+!!x"))
## [1] "structure(expression(1 + (!(!x))), srcfile = <environment>, wholeSrcref = structure(c(1L, "
## [2] "0L, 2L, 0L, 0L, 0L, 1L, 2L), srcfile = <environment>, class = \"srcref\"))"
此处的解决方案可能会解决此问题。要解决此deparser问题,您可以提供函数形式:
formatR::tidy_source(text = "`!!`(little_b)", output = FALSE)$text.tidy
请注意,您需要即将在CRAN上发布的rlang 0.2.0
我们一直在开发自己的deparser,将来可能会在Format中使用,例如rlang::expr\u deparse()
。我们还将尝试看看R core是否会接受对基本deparser的补丁,以避免不必要的括号中的包装
还可以查看应该处理的包代码>立即关闭。它现在是格式化R代码的首选软件包,并且非常可配置
formatR::tidy_source(text = "`!!`(little_b)", output = FALSE)$text.tidy