Este es el motor Codacy para el análisis de código estático Scala en la parte superior de Scala.Meta. Consulte la sección DOCS para obtener más información.
Implementación de un nuevo patrón:
Por lo general, es una buena idea comenzar implementando el archivo de prueba. Contiene problemas que el nuevo patrón debe detectar, así como implementaciones que corrigen dichos problemas. Esto define las limitaciones de lo que el patrón debería y tampoco debe detectar y ayuda a evitar falsos positivos. Para crear un archivo de prueba, agrégalo a los recursos en documentos/ pruebas/ puede echar un vistazo a las pruebas ya implementadas en nuestro complemento base
A continuación, implementamos el código real. Actualmente, un patrón debe residir en el paquete codacy.patterns e implementar la interfaz codacy.base.Pattern . Lo que significa que debe implementar la def apply(tree:Tree):Iterable[Result] . En la mayoría de los casos, el método collect en árboles que Scala.Meta nos proporciona es suficiente para ese propósito. Un Result consiste en un Message (que en sí mismo es solo una cadena envuelta en tipo) y un Positionable que actualmente puede obtenerse implícitamente pasando una scala.meta.Tree o un scala.meta.Token
A veces uno puede querer cambiar el comportamiento del patrón de acuerdo con alguna configuración. Tal configuración tiene que seguir algunas reglas básicas y pasar al patrón como el único argumento en el constructor. Las reglas son:
necesita ser una clase de casos
Todos los argumentos deben definir los valores predeterminados
Los lectores y escritores de JSON deben existir para los tipos de argumentos. (Actualmente eso significa tipos primitivos y scala.util.matching.Regex )
Se pueden encontrar pasos adicionales en la integración de la herramienta del capítulo con una exepción: no es necesario agregar explícitamente parámetros de patrones a patrones definidos en patterns.json Para ver un ejemplo completo, consulte los patrones existentes
https://github.com/scalameta/scalameta/blob/master/notes/quasiquotes.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]
Puedes crear el Docker haciendo:
sbt docker:publishLocal
El Docker se ejecuta con el siguiente comando:
docker run -it -v $srcDir:/src <DOCKER_NAME>:<DOCKER_VERSION>
Guía del desarrollador de herramientas
Guía del desarrollador de herramientas: usando Scala
Utilizamos la prueba Codacy-Plugins para probar nuestra integración de herramientas externas. Puede seguir las instrucciones allí para asegurarse de que su herramienta funcione como se esperaba.
Codacy es una herramienta de revisión de código automatizada que monitorea su deuda técnica, lo ayuda a mejorar la calidad de su código, enseña las mejores prácticas a sus desarrolladores y lo ayuda a ahorrar tiempo en las revisiones de código.
Codacy también ayuda a realizar un seguimiento de la cobertura de código, la duplicación de código y la complejidad del código.
Codacy admite PHP, Python, Ruby, Java, JavaScript y Scala, entre otros.
La codacería es gratuita para proyectos de código abierto.