From e112877f8dba7d95834f9352d7c1351501386f41 Mon Sep 17 00:00:00 2001 From: Mark Canlas Date: Sat, 15 Aug 2020 02:04:21 -0400 Subject: [PATCH] scalafix --- .scalafix.conf | 13 ++++++++++ build.sbt | 1 + project/LintingPlugin.scala | 25 +++++++++++++++++++ project/ProjectPlugin.scala | 3 --- project/plugins.sbt | 1 + src/main/scala/com/htmlism/MatchOpcodes.scala | 3 ++- .../com/htmlism/mos6502/dsl/DslDemo.scala | 5 ++-- .../com/htmlism/mos6502/dsl/Statement.scala | 1 + .../htmlism/mos6502/dsl/Easy6502Spec.scala | 5 ++-- 9 files changed, 48 insertions(+), 9 deletions(-) create mode 100644 .scalafix.conf create mode 100644 project/LintingPlugin.scala diff --git a/.scalafix.conf b/.scalafix.conf new file mode 100644 index 0000000..f4c2701 --- /dev/null +++ b/.scalafix.conf @@ -0,0 +1,13 @@ +rules = [ + OrganizeImports +] + +OrganizeImports { + expandRelative = true + groups = [ + "java", + "scala", + "*", + "com.htmlism" + ] +} diff --git a/build.sbt b/build.sbt index 1e7806b..d0af1f2 100644 --- a/build.sbt +++ b/build.sbt @@ -8,3 +8,4 @@ lazy val root = .withCats .withTesting .withTestingBeta + .withOrganizeImports diff --git a/project/LintingPlugin.scala b/project/LintingPlugin.scala new file mode 100644 index 0000000..f0ace3b --- /dev/null +++ b/project/LintingPlugin.scala @@ -0,0 +1,25 @@ +import sbt.Keys._ +import sbt._ + +object LintingPlugin extends AutoPlugin { + override def trigger = allRequirements + + override lazy val globalSettings = + addCommandAlias("fmt", List("all", "scalafmtSbt", "compile:scalafmt", "test:scalafmt").mkString(" ")) ++ + addCommandAlias("fix", "scalafixAll") + + object autoImport { + // this class name should be unique to evade implicit collision with other ops classes + implicit class LintingOps(p: Project) { + def withOrganizeImports: Project = { + import scalafix.sbt.ScalafixPlugin.autoImport._ + + p.settings( + ThisBuild / scalafixDependencies += "com.github.liancheng" %% "organize-imports" % "0.4.0", + semanticdbEnabled := true, + semanticdbVersion := scalafixSemanticdb.revision + ) + } + } + } +} diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala index 6807410..c656fec 100644 --- a/project/ProjectPlugin.scala +++ b/project/ProjectPlugin.scala @@ -8,9 +8,6 @@ object ProjectPlugin extends AutoPlugin { scalaVersion := "2.13.3" ) - override lazy val globalSettings = - addCommandAlias("fmt", List("", "scalafmtSbt", "compile:scalafmt", "test:scalafmt").mkString(";")) - object autoImport { implicit class ProjectOps(p: Project) { def withCats: Project = diff --git a/project/plugins.sbt b/project/plugins.sbt index ba76f58..d181107 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,3 +1,4 @@ addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.3.4") addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.1.13") addSbtPlugin("org.scoverage" % "sbt-scoverage" % "1.6.1") +addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.9.19") diff --git a/src/main/scala/com/htmlism/MatchOpcodes.scala b/src/main/scala/com/htmlism/MatchOpcodes.scala index 159ad87..b2101a1 100644 --- a/src/main/scala/com/htmlism/MatchOpcodes.scala +++ b/src/main/scala/com/htmlism/MatchOpcodes.scala @@ -1,8 +1,9 @@ package com.htmlism -import cats.implicits._ import java.io.PrintWriter +import cats.implicits._ + import com.htmlism.mos6502.model._ object MatchOpcodes { diff --git a/src/main/scala/com/htmlism/mos6502/dsl/DslDemo.scala b/src/main/scala/com/htmlism/mos6502/dsl/DslDemo.scala index 1198d40..9ecaeb2 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/DslDemo.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/DslDemo.scala @@ -1,7 +1,9 @@ package com.htmlism.mos6502.dsl import scala.collection.mutable.ListBuffer + import cats.implicits._ + import com.htmlism.mos6502.model._ object DslDemo extends App { @@ -141,6 +143,5 @@ class AssemblyContext { } def triplets: List[(String, Option[String], Option[String])] = - xs.map(_.toTriplet) - .toList + xs.map(_.toTriplet).toList } diff --git a/src/main/scala/com/htmlism/mos6502/dsl/Statement.scala b/src/main/scala/com/htmlism/mos6502/dsl/Statement.scala index 34d13fe..6b35f9f 100644 --- a/src/main/scala/com/htmlism/mos6502/dsl/Statement.scala +++ b/src/main/scala/com/htmlism/mos6502/dsl/Statement.scala @@ -1,6 +1,7 @@ package com.htmlism.mos6502.dsl import cats.implicits._ + import com.htmlism.mos6502.model.Instruction sealed trait Statement { diff --git a/src/test/scala/com/htmlism/mos6502/dsl/Easy6502Spec.scala b/src/test/scala/com/htmlism/mos6502/dsl/Easy6502Spec.scala index 43569e5..d05cff3 100644 --- a/src/test/scala/com/htmlism/mos6502/dsl/Easy6502Spec.scala +++ b/src/test/scala/com/htmlism/mos6502/dsl/Easy6502Spec.scala @@ -1,9 +1,8 @@ package com.htmlism.mos6502.dsl import cats.implicits._ -import org.scalatest._ -import flatspec._ -import matchers._ +import org.scalatest.flatspec._ +import org.scalatest.matchers._ class Easy6502Spec extends AnyFlatSpec with should.Matchers {