最近,我发现自己使用的 R 代码在编码风格方面遍布地图 - 多个作者和不严格坚持单一结构的个人作者。有些任务我想比我现在做的更好地自动化。
我正在寻找一种工具(或多种工具)来管理以下任务 - 按愿望的递增顺序列出,但也按对存在的怀疑的递增顺序列出。
基本格式。诸如将“if(foo)”转换为“if(foo)”并在大括号位置等方面实现统一之类的事情。
将 "foo$blah" 转换为 "foo[["blah"]]" 以进行列表访问。理想情况下,它至少能够猜测一个对象是否真的是一个列表而不是一个 data.frame 并且只转换列表。
将“=”转换为“<-”。是的,这是一个简单的搜索和替换 - 但不是真的。该工具(或正则表达式)需要具有语言意识,以便它知道转换“x = 5”而不是“foo(x=5)”。不仅要简单地替换符号,还要确保赋值运算符两侧都有一个空格,这也非常好。
变量重命名,尤其是跨函数和文件。例如,假设一个列表有一个元素“foo”,我希望能够将其更改为“foobar”一次,而不必在整个代码流中跟踪该列表的每次使用。我想这将需要该工具能够进行整个控制流程,以便识别诸如在不同函数中作为另一个名称存在的列表之类的东西。
命名约定。我希望能够定义一些标准命名约定(例如Google或其他),并让它识别所有函数、变量等并转换它们。请注意,这与之前的条目有关,例如列表元素。
随意列出基本的 unix 处理命令(例如 sed),只要它真的足够聪明,至少通常不会把事情搞砸(例如将“foo(x = 5)”转换为“foo(x <-5)” ”)。
我猜如果这样的工具已经以我现在已经听说过的完美状态存在,而且我也意识到使用像 R 这样的语言很难自动进行一些此类更改,但一个人可以做梦,对吧?有没有人对部分/所有这些有指点?