Skip to content

Commit

Permalink
Merge pull request #518 from lenguyenthanh/scalafix
Browse files Browse the repository at this point in the history
Scalafix
  • Loading branch information
lenguyenthanh authored Mar 15, 2024
2 parents 66e15e3 + e606aa6 commit 67a810e
Show file tree
Hide file tree
Showing 83 changed files with 185 additions and 127 deletions.
3 changes: 3 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -18,3 +18,6 @@ c246e4ac8bbaed067af7cd5b745e6d06d6307b95
f0ba792f8b9bdcb5c178facda2375648d88defb8
74f22f07d26a53f5cad5b798089043d47f637326
e27af773ebaeae2ccabdc2eea15afe60107f2c99

# Scalafix
5d3fb14c0a346a863de95cd9124dba592c3233df
20 changes: 18 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
branches: ['**']

jobs:
openjdk21:
test:
runs-on: ubuntu-latest
env:
JAVA_OPTS: "-Xmx6G -XX:+UseG1GC"
Expand All @@ -27,5 +27,21 @@ jobs:
- name: Test
run: sbt testKit/test

format:
runs-on: ubuntu-latest
env:
SBT_OPTS: "-Dsbt.ci=true"
steps:

- name: Checkout current branch
uses: actions/checkout@v3

- name: Setup JVM
uses: actions/setup-java@v3
with:
distribution: temurin
java-version: 21
cache: sbt

- name: Check Formatting
run: sbt fmtCheck
run: sbt check
22 changes: 10 additions & 12 deletions .scalafix.conf
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
rules = [
# ExplicitResultTypes
RemoveUnusedImports
RemoveXmlLiterals
ProcedureSyntax
# DottyVolatileLazyVal
ExplicitUnit
# DottyVarArgPattern
NoAutoTupling
NoValInForComprehension
# Sbt1 # N/A
# NoInfer
Disable
DisableSyntax
OrganizeImports
RemoveUnused
]

OrganizeImports {
groupedImports = AggressiveMerge
targetDialect = Scala3
importSelectorsOrder = Ascii
importsOrder = Ascii
}
2 changes: 1 addition & 1 deletion .scalafmt.conf
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ runner.dialect = scala3
align.preset = more
maxColumn = 110
spaces.inImportCurlyBraces = true
rewrite.rules = [SortImports, SortModifiers, AvoidInfix]
rewrite.rules = [SortModifiers, AvoidInfix]
rewrite.redundantBraces.stringInterpolation = true
project.excludeFilters = [
"FullOpeningPart*"
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,6 @@ To run benchmarks for a specific class:

bench / Jmh / run -rf json .*PlayBench.*

To run [scalafmt](https://scalameta.org/scalafmt/docs/installation.html):
To run [scalafmt](https://scalameta.org/scalafmt/docs/installation.html) and [scalafix](https://scalacenter.github.io/scalafix):

sbt fmt
sbt prepare
9 changes: 8 additions & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@ ThisBuild / scalaVersion := "3.4.0"
ThisBuild / licenses += "MIT" -> url("https://opensource.org/licenses/MIT")

ThisBuild / resolvers += "lila-maven".at("https://raw.githubusercontent.com/ornicar/lila-maven/master")
ThisBuild / publishTo := Option(Resolver.file("file", new File(sys.props.getOrElse("publishTo", ""))))
ThisBuild / publishTo := Option(Resolver.file("file", new File(sys.props.getOrElse("publishTo", ""))))
ThisBuild / semanticdbEnabled := true // for scalafix

val commonSettings = Seq(
scalacOptions := Seq(
Expand Down Expand Up @@ -64,3 +65,9 @@ lazy val testKit = project

addCommandAlias("fmtCheck", "all scalachess/scalafmtCheckAll bench/scalafmtCheckAll testKit/scalafmtCheckAll")
addCommandAlias("fmt", "all scalachess/scalafmtAll bench/scalafmtAll testKit/scalafmtAll")

addCommandAlias("scalafixCheck", "; scalafixAll --check ; testKit/scalafixAll --check")
addCommandAlias("scalafixCheck", "; scalafixAll --check ; testKit/scalafixAll --check")

addCommandAlias("prepare", "scalafixAll; testKit/scalafixAll; fmt")
addCommandAlias("check", "; scalafixCheck; fmtCheck")
1 change: 1 addition & 0 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.12.0")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2")
addSbtPlugin("pl.project13.scala" % "sbt-jmh" % "0.4.7")
5 changes: 3 additions & 2 deletions src/main/scala/ByColor.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package chess

import cats.{ Applicative, Eq, Eval, FlatMap, Functor, Monoid, Semigroupal, Traverse }
import alleycats.Zero
import cats.syntax.all.*
import cats.{ Applicative, Eq, Eval, FlatMap, Functor, Monoid, Semigroupal, Traverse }

import scala.annotation.targetName
import alleycats.Zero

case class ByColor[A](white: A, black: A):

Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/Castles.scala
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package chess

import scala.annotation.targetName

import bitboard.Bitboard
import Square.*

import scala.annotation.targetName

opaque type Castles = Long
object Castles:

Expand Down
6 changes: 3 additions & 3 deletions src/main/scala/Centis.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package chess

import scala.concurrent.duration.*

import cats.kernel.Monoid
import alleycats.Zero
import cats.kernel.Monoid

import scala.concurrent.duration.*

// maximum centis = Int.MaxValue / 100 / 60 / 60 / 24 = 248 days
opaque type Centis = Int
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/Clock.scala
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package chess

import cats.syntax.option.none
import java.text.DecimalFormat

import chess.Clock.Config

import java.text.DecimalFormat

// All unspecified durations are expressed in seconds
case class Clock(
config: Config,
Expand Down
6 changes: 3 additions & 3 deletions src/main/scala/Color.scala
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package chess

import scala.annotation.targetName

import cats.Eq
import cats.syntax.all.*
import cats.derived.*
import cats.syntax.all.*

import scala.annotation.targetName

enum Color(val name: String, val letter: Char) derives Eq:

Expand Down
4 changes: 3 additions & 1 deletion src/main/scala/Divider.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package chess

import cats.syntax.all.*
import bitboard.Bitboard

import scala.annotation.switch

import bitboard.Bitboard

case class Division(middle: Option[Ply], end: Option[Ply], plies: Ply):

def openingSize: Ply = middle | plies
Expand Down
3 changes: 1 addition & 2 deletions src/main/scala/Game.scala
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package chess

import chess.format.Fen
import chess.format.{ pgn, Uci }
import chess.format.pgn.SanStr
import chess.format.{ Fen, Uci, pgn }

case class Game(
situation: Situation,
Expand Down
1 change: 1 addition & 0 deletions src/main/scala/HasId.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package chess

import cats.syntax.all.*

import scala.annotation.tailrec

trait HasId[A, Id]:
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/Move.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package chess

import chess.format.Uci
import cats.syntax.all.*
import chess.format.Uci
import chess.format.pgn.SanStr

case class Move(
Expand Down
1 change: 1 addition & 0 deletions src/main/scala/Node.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package chess
import cats.*
import cats.derived.*
import cats.syntax.all.*

import scala.annotation.tailrec

sealed abstract class Tree[A](val value: A, val child: Option[Node[A]]) derives Functor, Traverse:
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/Replay.scala
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package chess

import cats.syntax.all.*

import chess.format.pgn.{ Parser, Reader, San, SanStr, Tag, Tags }
import chess.format.pgn.Sans.*
import chess.format.pgn.{ Parser, Reader, San, SanStr, Tag, Tags }
import chess.format.{ Fen, Uci }
import chess.variant.Variant

import MoveOrDrop.*

case class Replay(setup: Game, moves: List[MoveOrDrop], state: Game):
Expand Down
5 changes: 2 additions & 3 deletions src/main/scala/Situation.scala
Original file line number Diff line number Diff line change
@@ -1,13 +1,12 @@
package chess

import cats.syntax.all.*
import chess.format.Uci
import chess.variant.{ Antichess, Crazyhouse, Standard }

import bitboard.Bitboard
import bitboard.Bitboard.*

import chess.format.Uci
import chess.variant.{ Antichess, Crazyhouse, Standard }

case class Situation(board: Board, color: Color):
export board.{ history, isOccupied, kingOf, variant }
export color.white as isWhiteTurn
Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/Square.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package chess

import java.lang.Math.abs
import chess.bitboard.Bitboard

import java.lang.Math.abs
import scala.annotation.targetName

opaque type Square = Int
Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/UnmovedRooks.scala
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package chess

import bitboard.Bitboard
import scala.annotation.targetName

import bitboard.Bitboard

opaque type UnmovedRooks = Long
object UnmovedRooks:
// for lila testing only
Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/format/FenReader.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package chess
package format

import cats.syntax.all.*
import ornicar.scalalib.zeros.given

import variant.{ Standard, Variant }
import variant.Crazyhouse.Pockets
import ornicar.scalalib.zeros.given
import bitboard.Bitboard
import bitboard.Board as BBoard

Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/format/pgn/Parser.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package chess
package format.pgn

import cats.syntax.all.*
import cats.parse.{ LocationMap, Numbers as N, Parser as P, Parser0 as P0, Rfc5234 as R }
import cats.parse.Parser.Expectation
import cats.parse.{ LocationMap, Numbers as N, Parser as P, Parser0 as P0, Rfc5234 as R }
import cats.syntax.all.*

// http://www.saremba.de/chessgml/standards/pgn/pgn-complete.htm
object Parser:
Expand Down
1 change: 1 addition & 0 deletions src/main/scala/format/pgn/Reader.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package chess
package format.pgn

import cats.syntax.all.*

import util.chaining.scalaUtilChainingOps

object Reader:
Expand Down
6 changes: 3 additions & 3 deletions src/main/scala/format/pgn/Tag.scala
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package chess
package format.pgn

import cats.syntax.option.*
import cats.Eq
import java.time.format.DateTimeFormatter

import cats.syntax.option.*
import chess.format.EpdFen

import java.time.format.DateTimeFormatter

case class Tag(name: TagType, value: String):

override def toString = s"""[$name "${escapeString(value)}"]"""
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/opening/Opening.scala
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package chess
package opening

import chess.format.{ StandardFen, Uci }
import chess.format.pgn.PgnMovesStr
import chess.format.{ StandardFen, Uci }

final class Opening(
val eco: Eco,
Expand Down
3 changes: 1 addition & 2 deletions src/main/scala/opening/OpeningDb.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@ package chess
package opening

import cats.syntax.option.*

import chess.format.{ EpdFen, StandardFen }
import chess.format.pgn.SanStr
import chess.format.{ EpdFen, StandardFen }

object OpeningDb:

Expand Down
3 changes: 2 additions & 1 deletion src/main/scala/variant/Crazyhouse.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,10 @@ package chess
package variant

import chess.format.{ EpdFen, Uci }
import bitboard.Bitboard
import monocle.syntax.all.*

import bitboard.Bitboard

case object Crazyhouse
extends Variant(
id = Variant.Id(10),
Expand Down
4 changes: 2 additions & 2 deletions src/main/scala/variant/Horde.scala
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package chess
package variant

import chess.format.EpdFen
import cats.syntax.all.*
import chess.bitboard.Bitboard
import chess.bitboard.Bitboard.*
import cats.syntax.all.*
import chess.format.EpdFen

case object Horde
extends Variant(
Expand Down
1 change: 1 addition & 0 deletions src/main/scala/variant/RacingKings.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package chess
package variant

import chess.format.EpdFen

import bitboard.Bitboard

case object RacingKings
Expand Down
2 changes: 1 addition & 1 deletion src/main/scala/variant/Variant.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package variant

import cats.Eq
import cats.syntax.all.*
import chess.format.EpdFen
import chess.bitboard.Bitboard
import chess.format.EpdFen

// Correctness depends on singletons for each variant ID
abstract class Variant private[variant] (
Expand Down
3 changes: 1 addition & 2 deletions test-kit/src/main/scala/chess/ChessTreeArbitraries.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
package chess

import cats.syntax.all.*
import chess.format.pgn.{ Comment, Glyphs, InitialComments, Move as PgnMove, Pgn, Tags }
import org.scalacheck.Gen
import chess.format.pgn.{ Comment, Glyphs, InitialComments, Pgn, Tags }
import chess.format.pgn.Move as PgnMove

case class GameTree[A](init: Situation, ply: Ply, tree: Option[Node[A]])
case class WithMove[A](move: Move, data: A)
Expand Down
Loading

0 comments on commit 67a810e

Please sign in to comment.