Dies ist die Codacy -Engine für die statische Code -Analyse der Scala -Analyse auf scala.meta. Weitere Informationen finden Sie im Abschnitt DOCS .
Implementierung eines neuen Musters:
Es ist normalerweise eine gute Idee, mit der Implementierung der Testdatei zu beginnen. Es enthält Probleme, das das neue Muster sowie Implementierungen erkennen sollte, die diese Probleme korrigieren. Dies definiert die Einschränkungen dessen, was das Muster sollte und auch nicht erkennen und hilft, falsch positive Ergebnisse zu vermeiden. Um eine Testdatei zu erstellen, fügen Sie es den Ressourcen unter DOCS/ Tests hinzu/ Sie können sich die bereits implementierten Tests in unserem Basis -Plugin ansehen
Als nächstes implementieren wir den tatsächlichen Code. Ein Muster muss derzeit in der Paket codacy.patterns liegen und die Schnittstelle codacy.base.Pattern implementieren. Dies bedeutet, dass es das def apply(tree:Tree):Iterable[Result] . In den meisten Fällen reicht die collect auf Bäumen, die Scala.meta bereitstellt, für diesen Zweck aus. Ein Result besteht aus einer Message (die selbst nur eine vom Typ abgewickelte Zeichenfolge ist) und eine Positionable , die derzeit implizit erhalten werden kann, indem ein scala.meta.Tree oder eine scala.meta.Token bestanden wird
Manchmal möchte man das Verhalten des Musters gemäß einer Konfiguration ändern. Eine solche Konfiguration muss einige grundlegende Regeln befolgen und wird als einziges Argument im Konstruktor an das Muster übergeben. Die Regeln sind:
Es muss eine Fallklasse sein
Alle Argumente müssen Standardeinstellungen definieren
JSON -Leser und -autoren müssen für die Argumententypen existieren. (Derzeit bedeutet das primitive Typen und scala.util.matching.Regex )
Weitere Schritte finden Sie in der Integration von Kapiteln Tool mit einem Exception: Es ist nicht erforderlich, Musterparameter explizit in patterns.json hinzuzufügen. Für ein vollständiges Beispiel finden Sie die vorhandenen Muster
https://github.com/scalameta/scalameta/blob/master/notes/quaquotes.md
https://docs.codacy.com/related-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]
Sie können den Docker erstellen, indem Sie:
sbt docker:publishLocal
Der Docker wird mit dem folgenden Befehl ausgeführt:
docker run -it -v $srcDir:/src <DOCKER_NAME>:<DOCKER_VERSION>
Werkzeugentwicklerhandbuch
Werkzeugentwicklerhandbuch - mit Scala mit Scala
Wir verwenden den Codacy-Plugins-Test, um unsere Integration der externen Tools zu testen. Sie können die Anweisungen dort befolgen, um sicherzustellen, dass Ihr Tool wie erwartet funktioniert.
Codacy ist ein automatisiertes Code -Überprüfungs -Tool, das Ihre technische Schulden überwacht, Ihre Codequalität verbessert, Ihren Entwicklern Best Practices vermittelt und Ihnen hilft, Zeit in Code -Bewertungen zu sparen.
Codacy hilft auch dabei, die Codeabdeckung, die Code -Duplikation und die Codekomplexität zu verfolgen.
Codacy unterstützt unter anderem PHP, Python, Ruby, Java, JavaScript und Scala.
Codacy ist für Open -Source -Projekte kostenlos.