这是Scala静态代码分析的Codacy引擎,构建在Scala.meta之上。检查文档部分以获取更多信息。
实施新模式:
通常,从实现测试文件开始是一个好主意。它包含新模式应检测到的问题以及正确的所述问题的实现。这定义了模式应和不应检测到的限制,并有助于避免误报。要创建一个TestFile,将其添加到文档/测试下的资源/您可以查看我们的基本插件中已经实现的测试
接下来,我们实现实际代码。当前必须驻留在软件包codacy.patterns中并实现codacy.base.Pattern接口。这意味着它必须实现def apply(tree:Tree):Iterable[Result] 。在大多数情况下,Scala.meta为我们提供的树木collect方法足以满足此目的。 Result包括一条Message (本身只是一个类型包装的字符串)和一个可以通过传递scala.meta.Tree或scala.meta.Token来隐式获得的Positionable 。
有时,人们可能想根据某些配置改变模式的行为。这种配置必须遵循一些基本规则,并将其传递给模式,作为构造函数中唯一的参数。规则是:
它需要是一个案例课
所有参数都需要定义默认值
参数类型必须存在JSON读者和作家。 (当前意味着原始类型和scala.util.matching.Regex )
可以在“章节工具集成”中找到其他步骤:无需明确地将模式参数添加到patterns.json中定义的模式。有关完整示例,请查看现有模式
https://github.com/scalameta/scalameta/blob/master/notes/quasiquotes.md
https://docs.codacy.com/reled-tools/tool-developer-guide/
import scala.meta._
val code = """ .... """
val tree = code.parse[Source]
codacy.patterns.Custom_Scala_ElseIf(tree)
//To see the tree structure:
tree.show[Structure]
您可以通过以下操作来创建Docker:
sbt docker:publishLocal
Docker带有以下命令:
docker run -it -v $srcDir:/src <DOCKER_NAME>:<DOCKER_VERSION>
工具开发人员指南
工具开发人员指南 - 使用Scala
我们使用Codacy-Plugins检验来测试我们的外部工具集成。您可以按照此处的说明确保您的工具按预期工作。
Codacy是一种自动代码审核工具,可监视您的技术债务,帮助您提高代码质量,向开发人员教授最佳实践,并帮助您节省代码审核的时间。
Codacy还有助于跟踪代码覆盖范围,代码重复和代码复杂性。
Codacy支持PHP,Python,Ruby,Java,JavaScript和Scala等。
Codacy是免费的开源项目。