我喜欢这个包,但我想知道如何改变tidyverse风格中的一条规则:我想保留“=”而不是“<-”作为赋值。
我读过那张便条:http://styler.r-lib.org/articles/customizing_styler.html#implementation-details
但我仍然不知道如何简单地改变这一规则。我试过非常天真的:
library(styler)
force_assignment_op <- function (pd)
{
to_replace <- pd$token == "LEFT_ASSIGN"
pd$token[to_replace] <- "EQ_ASSIGN"
pd$text[to_replace] <- "="
pd
}
tidyverse_style()$token$force_assignment_op = force_assignment_op
字符串
但得到以下错误:
Error in tidyverse_style()$token$force_assignment_op =
force_assignment_op :
invalid (NULL) left side of assignment
型
我想修改它的方式,我可以简单地运行styler插件后。
2条答案
按热度按时间y3bcpkx11#
问题是
tidyverse_style()$token
是一个列表,而不是一个环境,所以你不能修改它(当然,你可以修改它,但是你修改的是一个副本,而不是原始的)。您需要编写自己的函数来替换
tidyverse_style
函数,并使用它。例如,假设您保留force_assignment_op
函数:字符串
然后
型
(one
?tidyverse_style
中的示例)将打印型
(This是丑陋的,原来的
tidyverse_style
更好,但我不会阻止你。nbewdwxp2#
可以从tidyverse_style中派生出这样的样式。(如前面的回答中所述)下面的示例是所需的最小代码,只有大约20行给予和take。这个代码示例是从这里复制的。修改styler一个规则可能会有一些特殊的副作用,这需要更多的代码来处理。但是稍微修改一下就可以很好地完成。
字符串