這是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是免費的開源項目。