scala-clippy alternatives and similar packages
Based on the "Sbt plugins" category.
Alternatively, view scala-clippy alternatives based on common mentions on social networks and blogs.
-
sbt-assembly
Deploy über-JARs. Restart processes. (port of codahale/assembly-sbt) -
sbt-dependency-graph
sbt plugin to create a dependency graph for your project -
sbt-jmh
"Trust no one, bench everything." - sbt plugin for JMH (Java Microbenchmark Harness) -
sbt-revolver
An SBT plugin for dangerously fast development turnaround in Scala -
sbt-updates
sbt plugin that can check Maven and Ivy repositories for dependency updates -
better-monadic-for
Desugaring scala `for` without implicit `withFilter`s -
sbt-microsites
An sbt plugin to create awesome microsites for your project -
sbt-mima-plugin
A tool for catching binary incompatibility in Scala -
sbt-ensime
Generates .ensime config files for SBT projects http://ensime.org/build_tools/sbt -
sbt-sonatype
A sbt plugin for publishing Scala/Java projects to the Maven central. -
sbt-ci-release
sbt plugin to automate Sonatype releases from GitHub Actions -
sbt-dependency-check
SBT Plugin for OWASP DependencyCheck. Monitor your dependencies and report if there are any publicly known vulnerabilities (e.g. CVEs). :rainbow: -
sbt-header
sbt-header is an sbt plugin for creating file headers, e.g. copyright headers -
sbt-play-scalajs
SBT plugin to use Scala.js along with any sbt-web server. -
sbt-api-mappings
An Sbt plugin that fills apiMappings for common Scala libraries. -
sbt-unidoc
sbt plugin to create a unified Scaladoc or Javadoc API document across multiple subprojects. -
sbt-sublime
An sbt plugin for generating Sublime Text projects with library dependencies sources -
sbt pom reader plugin
Translates xml -> awesome. Maven-ish support for sbt. -
sbt-ide-settings
SBT plugin for tweaking various IDE settings -
sbt-scala-js-map
A Sbt plugin that configures source mapping for Scala.js projects hosted on Github -
sbt-versions
Plugin that checks for updated versions of your project's dependencies. -
sbt-hepek
Sbt plugin for rendering Scala objects to files. And more! -
sbt-pantarhei
sbt plugin building and publishing release notes from github pull requests -
sbt-classfinder
SBT plugin for retrieving runtime information about the classes and traits in a project
Static code analysis for 29 languages.
Do you think we are missing an alternative of scala-clippy or a related project?
README
Scala clippy
Enrich your Scala compiler error output with additional advices and colors!
[enriched error example](ui/app/assets/img/clippy-akka-err-rich.png "")
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 asCompilationError
+ parserplugin
- the compiler plugin which actually displays the advices and matches errors agains the database of known errorstests
- tests for the compiler plugin. Must be a separate project, as it requires the plugin jar to be readyui
- the ui server project in Playui-client
- the Scala.JS client-side codeui-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](./tests/src/test/scala/org/softwaremill/clippy/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](tests/src/test/scala/org/softwaremill/clippy/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.