写一个R lint程序

csg*_*pie 15 lint r static-code-analysis

当我在python中编程时,我发现使用pylint非常有用.但是,当我在R中编程时,没有任何可比性.

作为一个小型项目,我认为尝试编写一个小的lint程序会很有趣.没有什么太花哨的东西,有些东西:

  • 确保函数名称是驼峰式的
  • 平均功能长度
  • 检测未使用的变量
  • 间距.例如,function(x=1, y=2)而不是function(x=1,y=2)

但是,我不确定如何开始(我已经开始查看pylint soure代码).

我应该如何开始?是否有针对此类项目的标准编程技术?我应该考虑哪些好的资源?

我想在R写整个项目.

Rei*_*son 12

看一下codetoolsR附带的包.有些详细信息可以在包的CRAN页面找到.R CMD check例如,当您执行此操作时,可以运行包中的代码,因此可以捕获未使用的变量等.这可能会让您从这方面开始rlint.

为了回答其他一些方面......我开始编写执行一项任务的简单函数,例如将函数名称转换为驼峰大小写.当您构建一个小函数体时,您可以将它们合并为一个工作的lint包装函数,同时允许用户/开发人员灵活地调用特定函数,如果他们不想要完整的lint行为.


Jim*_*Jim 10

lintr是一个R包,它为样式和可能的语义错误执行代码linting.它使用引擎盖下的codetools以及顶部的附加linting.

它还集成了Emacs,Vim,Sublime Text和RStudio.


Gui*_*rza 8

最近,有人为R提出了一个lint包:http: //cran.r-project.org/web/packages/lint/index.html

看起来它在早期开发中.它在Github上:https: //github.com/halpo/lint.git


Spa*_*man 5

"R CMD检查"程序可能对您有所帮助.它做的一件事是找到使用的变量,而不是看似初始化.这通常是一个错字.该检查程序的代码可能对您有所帮助.

我不认为这是一份小工作!