You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pekko.apache.org by md...@apache.org on 2022/11/18 07:30:33 UTC

[incubator-pekko-http] 01/04: Replace scalariform with scalafmt

This is an automated email from the ASF dual-hosted git repository.

mdedetrich pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-pekko-http.git

commit 25626716949ef520428912c661cd7a5041ff63e6
Author: Matthew de Detrich <ma...@aiven.io>
AuthorDate: Mon Nov 14 10:41:48 2022 +0100

    Replace scalariform with scalafmt
---
 .github/workflows/validate-and-test.yml |  4 +-
 .scalafmt.conf                          | 77 +++++++++++++++++++++++++++++++++
 CONTRIBUTING.md                         |  2 +-
 build.sbt                               |  3 --
 project/Formatting.scala                | 36 ---------------
 project/MultiNode.scala                 |  9 ++--
 project/plugins.sbt                     |  2 +-
 7 files changed, 84 insertions(+), 49 deletions(-)

diff --git a/.github/workflows/validate-and-test.yml b/.github/workflows/validate-and-test.yml
index 845040ec7..3887cc8fe 100644
--- a/.github/workflows/validate-and-test.yml
+++ b/.github/workflows/validate-and-test.yml
@@ -33,8 +33,8 @@ jobs:
           path: project/**/target
           key: build-target-${{ hashFiles('**/*.sbt', 'project/build.properties', 'project/**/*.scala') }}
 
-      - name: Autoformat
-        run: sbt +headerCreateAll +scalariformFormat +test:scalariformFormat
+      - name: Check code is formatted
+        run: sbt scalafmtCheckAll scalafmtSbtCheck headerCheckAll
 
       - name: Check for missing formatting
         run: git diff --exit-code --color
diff --git a/.scalafmt.conf b/.scalafmt.conf
new file mode 100644
index 000000000..efa297ee4
--- /dev/null
+++ b/.scalafmt.conf
@@ -0,0 +1,77 @@
+version                                  = 3.6.1
+runner.dialect                           = scala213
+project.git                              = true
+style                                    = defaultWithAlign
+docstrings.style                         = Asterisk
+docstrings.wrap                          = false
+indentOperator.preset                    = spray
+maxColumn                                = 120
+lineEndings                              = preserve
+rewrite.rules                            = [RedundantParens, SortImports, AvoidInfix]
+indentOperator.exemptScope               = all
+align.preset                             = some
+align.tokens."+"                         = [
+  {
+    code   = "~>"
+    owners = [
+      { regex = "Term.ApplyInfix" }
+    ]
+  }
+]
+literals.hexDigits                       = upper
+literals.hexPrefix                       = lower
+binPack.unsafeCallSite                   = always
+binPack.unsafeDefnSite                   = always
+binPack.indentCallSiteSingleArg          = false
+binPack.indentCallSiteOnce               = true
+newlines.avoidForSimpleOverflow          = [slc]
+newlines.source                          = keep
+newlines.beforeMultiline                 = keep
+align.openParenDefnSite                  = false
+align.openParenCallSite                  = false
+align.allowOverflow                      = true
+optIn.breakChainOnFirstMethodDot         = false
+optIn.configStyleArguments               = false
+danglingParentheses.preset               = false
+spaces.inImportCurlyBraces               = true
+rewrite.neverInfix.excludeFilters        = [
+  and
+  min
+  max
+  until
+  to
+  by
+  eq
+  ne
+  "should.*"
+  "contain.*"
+  "must.*"
+  in
+  ignore
+  be
+  taggedAs
+  thrownBy
+  synchronized
+  have
+  when
+  size
+  only
+  noneOf
+  oneElementOf
+  noElementsOf
+  atLeastOneElementOf
+  atMostOneElementOf
+  allElementsOf
+  inOrderElementsOf
+  theSameElementsAs
+  theSameElementsInOrderAs
+]
+rewriteTokens          = {
+  "⇒": "=>"
+  "→": "->"
+  "←": "<-"
+}
+project.excludeFilters = [
+  "scripts/authors.scala"
+]
+project.layout         = StandardConvention
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 770a1356f..4ecda37c0 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -283,7 +283,7 @@ the validator to test all projects.
 
 ### Scala style 
 
-Akka-http uses [Scalariform](https://github.com/scala-ide/scalariform) to enforce some of the code style rules.
+Akka-http uses [scalafmt](https://scalameta.org/scalafmt/) to enforce some of the code style rules.
 
 ### Java style
 
diff --git a/build.sbt b/build.sbt
index f16fb94d8..260d0c359 100644
--- a/build.sbt
+++ b/build.sbt
@@ -3,7 +3,6 @@ import akka.ValidatePullRequest._
 import AkkaDependency._
 import Dependencies.{h2specExe, h2specName}
 import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm
-import com.typesafe.sbt.SbtScalariform.ScalariformKeys
 import java.nio.file.Files
 import java.nio.file.attribute.{PosixFileAttributeView, PosixFilePermission}
 
@@ -34,7 +33,6 @@ inThisBuild(Def.settings(
     Tests.Argument(TestFrameworks.ScalaTest, "-oDF")
   ),
   Dependencies.Versions,
-  Formatting.formatSettings,
   shellPrompt := { s => Project.extract(s).currentProject.id + " > " },
   concurrentRestrictions in Global += Tags.limit(Tags.Test, 1),
   onLoad in Global := {
@@ -465,7 +463,6 @@ lazy val docs = project("docs")
       "github.base_url" -> GitHub.url(version.value, isSnapshot.value),
     ),
     apidocRootPackage := "akka",
-    Formatting.docFormatSettings,
     ValidatePR / additionalTasks += Compile / paradox,
     ThisBuild / publishRsyncHost := "akkarepo@gustav.akka.io",
     publishRsyncArtifacts := List((Compile / paradox).value -> gustavDir("docs").value),
diff --git a/project/Formatting.scala b/project/Formatting.scala
deleted file mode 100644
index 85e93a27c..000000000
--- a/project/Formatting.scala
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2017-2020 Lightbend Inc. <https://www.lightbend.com>
- */
-
-package akka
-
-import sbt._
-import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys.MultiJvm
-import com.typesafe.sbt.SbtScalariform.ScalariformKeys
-
-object Formatting {
-  import scalariform.formatter.preferences._
-
-  lazy val formatSettings = Seq(
-    ScalariformKeys.preferences := setPreferences(ScalariformKeys.preferences.value),
-    Compile / ScalariformKeys.preferences := setPreferences(ScalariformKeys.preferences.value),
-    MultiJvm / ScalariformKeys.preferences := setPreferences(ScalariformKeys.preferences.value)
-  )
-
-  lazy val docFormatSettings = Seq(
-    ScalariformKeys.preferences := setPreferences(ScalariformKeys.preferences.value),
-    Compile / ScalariformKeys.preferences := setPreferences(ScalariformKeys.preferences.value),
-    Test / ScalariformKeys.preferences := setPreferences(ScalariformKeys.preferences.value),
-    MultiJvm / ScalariformKeys.preferences := setPreferences(ScalariformKeys.preferences.value)
-  )
-
-  def setPreferences(preferences: IFormattingPreferences) = preferences
-    .setPreference(RewriteArrowSymbols, true)
-    .setPreference(UseUnicodeArrows, false)
-    .setPreference(AlignParameters, true)
-    .setPreference(AlignSingleLineCaseStatements, true)
-    .setPreference(DoubleIndentConstructorArguments, false)
-    .setPreference(DoubleIndentMethodDeclaration, false)
-    .setPreference(DanglingCloseParenthesis, Preserve)
-    .setPreference(NewlineAtEndOfFile, true)
-}
diff --git a/project/MultiNode.scala b/project/MultiNode.scala
index be0251006..de6d6d924 100644
--- a/project/MultiNode.scala
+++ b/project/MultiNode.scala
@@ -4,9 +4,8 @@
 
 package akka
 
-import com.typesafe.sbt.{SbtMultiJvm, SbtScalariform}
+import com.typesafe.sbt.SbtMultiJvm
 import com.typesafe.sbt.SbtMultiJvm.MultiJvmKeys._
-import com.typesafe.sbt.SbtScalariform.ScalariformKeys
 import sbt._
 import sbt.Keys._
 
@@ -50,13 +49,11 @@ object MultiNode extends AutoPlugin {
 
   private val multiJvmSettings =
     SbtMultiJvm.multiJvmSettings ++
-    inConfig(MultiJvm)(SbtScalariform.configScalariformSettings) ++
-    Seq(
+    inConfig(MultiJvm)(Seq(
       MultiJvm / jvmOptions := defaultMultiJvmOptions,
-      MultiJvm / compile / compileInputs := ((MultiJvm / compile / compileInputs) dependsOn (MultiJvm / ScalariformKeys.format)).value,
       MultiJvm / scalacOptions := (Test / scalacOptions).value,
       MultiJvm / compile := ((MultiJvm / compile) triggeredBy (Test / compile)).value
-    ) ++
+    )) ++
     CliOptions.hostsFileName.map(MultiJvm / multiNodeHostsFileName := _) ++
     CliOptions.javaName.map(MultiJvm / multiNodeJavaName := _) ++
     CliOptions.targetDirName.map(MultiJvm / multiNodeTargetDirName := _) ++
diff --git a/project/plugins.sbt b/project/plugins.sbt
index 8e86d0e95..383dba0c7 100644
--- a/project/plugins.sbt
+++ b/project/plugins.sbt
@@ -8,7 +8,7 @@ resolvers += Resolver.jcenterRepo
 
 addSbtPlugin("com.typesafe.sbt" % "sbt-multi-jvm" % "0.4.0")
 addSbtPlugin("com.typesafe" % "sbt-mima-plugin" % "1.1.0")
-addSbtPlugin("org.scalariform" % "sbt-scalariform" % "1.8.3")
+addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6")
 addSbtPlugin("com.dwijnand" % "sbt-dynver" % "4.1.1")
 addSbtPlugin("com.github.sbt" % "sbt-unidoc" % "0.5.0")
 addSbtPlugin("com.thoughtworks.sbt-api-mappings" % "sbt-api-mappings" % "3.0.2")


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pekko.apache.org
For additional commands, e-mail: commits-help@pekko.apache.org