diff --git a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala deleted file mode 100644 index 9d4dd3f..0000000 --- a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala +++ /dev/null @@ -1,39 +0,0 @@ -package works.iterative.sbt - -import sbt._ -import sbt.Keys._ - -import scalafix.sbt.ScalafixPlugin -import scalafix.sbt.ScalafixPlugin.autoImport._ -import org.scalafmt.sbt.ScalafmtPlugin -import org.scalafmt.sbt.ScalafmtPlugin.autoImport._ - -object IWScalaProject extends AutoPlugin { - override def requires: Plugins = ScalafixPlugin && ScalafmtPlugin - - override def trigger: PluginTrigger = allRequirements - - object autoImport { - val scala2Version = "2.13.6" - val scala3Version = "3.0.1" - } - - import autoImport._ - - override def buildSettings: Seq[Def.Setting[_]] = Seq( - scalaVersion := scala2Version, - // enable SemanticDB - semanticdbEnabled := true, - // use Scalafix compatible version, - semanticdbVersion := scalafixSemanticdb.revision, - versionScheme := Some("early-semver") - ) - - override def projectSettings: Seq[Def.Setting[_]] = Seq( - // Do not buffer logging in tests - Test / logBuffered := false, - // Do I need this still for Metals? - // scalacOptions += s"-P:semanticdb:sourceroot:${(ThisBuild / baseDirectory).value}", - scalafmtOnCompile := true - ) -} diff --git a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala deleted file mode 100644 index 9d4dd3f..0000000 --- a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala +++ /dev/null @@ -1,39 +0,0 @@ -package works.iterative.sbt - -import sbt._ -import sbt.Keys._ - -import scalafix.sbt.ScalafixPlugin -import scalafix.sbt.ScalafixPlugin.autoImport._ -import org.scalafmt.sbt.ScalafmtPlugin -import org.scalafmt.sbt.ScalafmtPlugin.autoImport._ - -object IWScalaProject extends AutoPlugin { - override def requires: Plugins = ScalafixPlugin && ScalafmtPlugin - - override def trigger: PluginTrigger = allRequirements - - object autoImport { - val scala2Version = "2.13.6" - val scala3Version = "3.0.1" - } - - import autoImport._ - - override def buildSettings: Seq[Def.Setting[_]] = Seq( - scalaVersion := scala2Version, - // enable SemanticDB - semanticdbEnabled := true, - // use Scalafix compatible version, - semanticdbVersion := scalafixSemanticdb.revision, - versionScheme := Some("early-semver") - ) - - override def projectSettings: Seq[Def.Setting[_]] = Seq( - // Do not buffer logging in tests - Test / logBuffered := false, - // Do I need this still for Metals? - // scalacOptions += s"-P:semanticdb:sourceroot:${(ThisBuild / baseDirectory).value}", - scalafmtOnCompile := true - ) -} diff --git a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala new file mode 100644 index 0000000..3e2ea8e --- /dev/null +++ b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala @@ -0,0 +1,39 @@ +package works.iterative.sbt + +import sbt._ +import sbt.Keys._ + +import scalafix.sbt.ScalafixPlugin +import scalafix.sbt.ScalafixPlugin.autoImport._ +import org.scalafmt.sbt.ScalafmtPlugin +import org.scalafmt.sbt.ScalafmtPlugin.autoImport._ + +object IWScalaProjectPlugin extends AutoPlugin { + override def requires: Plugins = ScalafixPlugin && ScalafmtPlugin + + override def trigger: PluginTrigger = allRequirements + + object autoImport { + val scala2Version = "2.13.6" + val scala3Version = "3.0.1" + } + + import autoImport._ + + override def buildSettings: Seq[Def.Setting[_]] = Seq( + scalaVersion := scala2Version, + // enable SemanticDB + semanticdbEnabled := true, + // use Scalafix compatible version, + semanticdbVersion := scalafixSemanticdb.revision, + versionScheme := Some("early-semver") + ) + + override def projectSettings: Seq[Def.Setting[_]] = Seq( + // Do not buffer logging in tests + Test / logBuffered := false, + // Do I need this still for Metals? + // scalacOptions += s"-P:semanticdb:sourceroot:${(ThisBuild / baseDirectory).value}", + scalafmtOnCompile := true + ) +} diff --git a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala deleted file mode 100644 index 9d4dd3f..0000000 --- a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProject.scala +++ /dev/null @@ -1,39 +0,0 @@ -package works.iterative.sbt - -import sbt._ -import sbt.Keys._ - -import scalafix.sbt.ScalafixPlugin -import scalafix.sbt.ScalafixPlugin.autoImport._ -import org.scalafmt.sbt.ScalafmtPlugin -import org.scalafmt.sbt.ScalafmtPlugin.autoImport._ - -object IWScalaProject extends AutoPlugin { - override def requires: Plugins = ScalafixPlugin && ScalafmtPlugin - - override def trigger: PluginTrigger = allRequirements - - object autoImport { - val scala2Version = "2.13.6" - val scala3Version = "3.0.1" - } - - import autoImport._ - - override def buildSettings: Seq[Def.Setting[_]] = Seq( - scalaVersion := scala2Version, - // enable SemanticDB - semanticdbEnabled := true, - // use Scalafix compatible version, - semanticdbVersion := scalafixSemanticdb.revision, - versionScheme := Some("early-semver") - ) - - override def projectSettings: Seq[Def.Setting[_]] = Seq( - // Do not buffer logging in tests - Test / logBuffered := false, - // Do I need this still for Metals? - // scalacOptions += s"-P:semanticdb:sourceroot:${(ThisBuild / baseDirectory).value}", - scalafmtOnCompile := true - ) -} diff --git a/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala new file mode 100644 index 0000000..3e2ea8e --- /dev/null +++ b/sbt-iw-projects/src/main/scala/works/iterative/sbt/IWScalaProjectPlugin.scala @@ -0,0 +1,39 @@ +package works.iterative.sbt + +import sbt._ +import sbt.Keys._ + +import scalafix.sbt.ScalafixPlugin +import scalafix.sbt.ScalafixPlugin.autoImport._ +import org.scalafmt.sbt.ScalafmtPlugin +import org.scalafmt.sbt.ScalafmtPlugin.autoImport._ + +object IWScalaProjectPlugin extends AutoPlugin { + override def requires: Plugins = ScalafixPlugin && ScalafmtPlugin + + override def trigger: PluginTrigger = allRequirements + + object autoImport { + val scala2Version = "2.13.6" + val scala3Version = "3.0.1" + } + + import autoImport._ + + override def buildSettings: Seq[Def.Setting[_]] = Seq( + scalaVersion := scala2Version, + // enable SemanticDB + semanticdbEnabled := true, + // use Scalafix compatible version, + semanticdbVersion := scalafixSemanticdb.revision, + versionScheme := Some("early-semver") + ) + + override def projectSettings: Seq[Def.Setting[_]] = Seq( + // Do not buffer logging in tests + Test / logBuffered := false, + // Do I need this still for Metals? + // scalacOptions += s"-P:semanticdb:sourceroot:${(ThisBuild / baseDirectory).value}", + scalafmtOnCompile := true + ) +} diff --git a/src/main/g8/build.sbt b/src/main/g8/build.sbt index 0cbba8f..c7bdaed 100644 --- a/src/main/g8/build.sbt +++ b/src/main/g8/build.sbt @@ -1,5 +1,6 @@ ThisBuild / version := "0.1.0-SNAPSHOT" -ThisBuild / organization := "works.iterative" lazy val root = (project in file(".")) .settings(name := "$name$") + // Auto activates for all projects, but make sure we have required dependencies + .settings(IWScalaProjectPlugin)