All Projects → softwaremill → Scala Clippy

softwaremill / Scala Clippy

Licence: apache-2.0
Good advice for Scala compiler errors

Programming Languages

scala
5932 projects

Projects that are alternatives of or similar to Scala Clippy

playwarts
WartRemover warts for Play Framework.
Stars: ✭ 23 (-92.6%)
Mutual labels:  sbt-plugin
sbt-ammonite-classpath
Export the classpath for Ammonite and Almond
Stars: ✭ 29 (-90.68%)
Mutual labels:  sbt-plugin
sbt-best-practice
Configure common build settings for a Scala project
Stars: ✭ 47 (-84.89%)
Mutual labels:  sbt-plugin
sbt-ethereum
An sbt-based solidity / scala development environment, and general command-line power tool, for Ethereum.
Stars: ✭ 97 (-68.81%)
Mutual labels:  sbt-plugin
sbt-elm
Scala Build Tool (SBT) plugin for the Elm programming language
Stars: ✭ 44 (-85.85%)
Mutual labels:  sbt-plugin
sbt-jni
SBT Plugin to ease working with JNI
Stars: ✭ 110 (-64.63%)
Mutual labels:  sbt-plugin
sbt-guardrail
Principled code generation from OpenAPI specifications
Stars: ✭ 24 (-92.28%)
Mutual labels:  sbt-plugin
Soteria
Plugin to block compilation when unapproved dependencies are used or code styling does not comply.
Stars: ✭ 36 (-88.42%)
Mutual labels:  sbt-plugin
sbt-scala-js-map
A Sbt plugin that configures source mapping for Scala.js projects hosted on Github
Stars: ✭ 30 (-90.35%)
Mutual labels:  sbt-plugin
sbt-openapi-schema
Generate schema sources for Scala, Java and Elm from an openapi 3.0 spec.
Stars: ✭ 12 (-96.14%)
Mutual labels:  sbt-plugin
sbt-flaky
Detect flaky tests with sbt
Stars: ✭ 35 (-88.75%)
Mutual labels:  sbt-plugin
sbt-kubeyml
Sbt plugin to help deploy Scala applications to Kubernetes
Stars: ✭ 37 (-88.1%)
Mutual labels:  sbt-plugin
sbt-codeartifact
An sbt plugin for publishing packages to AWS CodeArtifact.
Stars: ✭ 15 (-95.18%)
Mutual labels:  sbt-plugin
chuckwagon
a Scala/sbt AWS Lambda Toolkit
Stars: ✭ 29 (-90.68%)
Mutual labels:  sbt-plugin
sbt-publish-more
📤 Publish artifacts to more than one repository
Stars: ✭ 21 (-93.25%)
Mutual labels:  sbt-plugin
xsbt-webstart
A Webstart plugin for sbt
Stars: ✭ 12 (-96.14%)
Mutual labels:  sbt-plugin
sbt-ecr
An SBT plugin for managing Docker images within Amazon ECR.
Stars: ✭ 52 (-83.28%)
Mutual labels:  sbt-plugin
Sbt Sonatype
A sbt plugin for publishing Scala/Java projects to the Maven central.
Stars: ✭ 265 (-14.79%)
Mutual labels:  sbt-plugin
sbt-assembly
Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt)
Stars: ✭ 1,801 (+479.1%)
Mutual labels:  sbt-plugin
sbt-hepek
Sbt plugin for rendering Scala objects to files. And more!
Stars: ✭ 17 (-94.53%)
Mutual labels:  sbt-plugin

Scala clippy

Join the chat at https://gitter.im/softwaremill/scala-clippy Build Status Dependencies Maven Central

Enrich your Scala compiler error output with additional advices and colors!

enriched error example

Documentation

Read the detailed documentation.

Contributing to the project

You can also help developing the plugin and/or the UI for submitting new advices! The module structure is:

  • model - code shared between the UI and the plugin. Contains basic model case classes, such as CompilationError + parser
  • plugin - the compiler plugin which actually displays the advices and matches errors agains the database of known errors
  • tests - tests for the compiler plugin. Must be a separate project, as it requires the plugin jar to be ready
  • ui - the ui server project in Play
  • ui-client - the Scala.JS client-side code
  • ui-shared - code shared between the UI server and UI client (but not needed for the plugin)

For examples on how to write tests for advice to ensure it does not go out of date see CompileTests.scala. If you want to write your own tests with compilation using mkToolbox, remember to add a -P:clippy:testmode=true compiler option. It ensures that a correct reporter replacement mechanism is used, which needs to be different specifically for tests. See CompileTests.scala for reference.

To publish locally append "-SNAPSHOT" to the version number then run

sbt "project plugin" "+ publishLocal"

Run advice tests with

sbt tests/test

Heroku deployment

Locally:

  • Install the Heroku Toolbelt
  • link the local git repository with the Heroku application: heroku git:remote -a scala-clippy
  • run sbt deployHeroku to deploy the current code as a fat-jar

Currently deployed on https://www.scala-clippy.org

Credits

Clippy contributors:

Syntax highlighting code is copied from Ammonite.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].