Configure scalafix

This commit is contained in:
Paul-Henri Froidmont 2025-11-07 05:10:10 +01:00
parent bc113df11d
commit 8b2bf0f543
Signed by: phfroidmont
GPG key ID: BE948AFD7E7873BE
18 changed files with 67 additions and 27 deletions

20
.scalafix.conf Normal file
View file

@ -0,0 +1,20 @@
rules = [
DisableSyntax,
LeakingImplicitClassVal,
NoAutoTupling,
NoValInForComprehension,
OrganizeImports
]
OrganizeImports {
targetDialect = Scala3
blankLines = Auto
expandRelative = true
removeUnused=true
groupedImports=Keep
groups = [
"re:(javax?|scala)\\."
"*"
"scalive"
]
}

View file

@ -22,3 +22,6 @@ rewrite.scala3.convertToNewSyntax = true
rewrite.scala3.removeOptionalBraces = yes rewrite.scala3.removeOptionalBraces = yes
rewrite.scala3.insertEndMarkerMinLines = 30 rewrite.scala3.insertEndMarkerMinLines = 30
rewrite.scala3.removeEndMarkerMaxLines = 29 rewrite.scala3.removeEndMarkerMaxLines = 29
newlines.topLevelStatementBlankLines = [
{ regex = "^Import", blanks { after = 1 } }
]

View file

@ -1,15 +1,19 @@
//| mvnDeps : ["com.raquo::domtypes:18.1.0"] //| mvnDeps:
//| - com.raquo::domtypes:18.1.0
//| - com.goyeau::mill-scalafix::0.6.0
package build package build
import mill.*, scalalib.*, javascriptlib.* import mill.*, scalalib.*, javascriptlib.*
import mill.scalalib.scalafmt.ScalafmtModule
import mill.api.Task.Simple import mill.api.Task.Simple
import java.net.URI import java.net.URI
import java.nio.file.* import java.nio.file.*
import java.nio.file.attribute.BasicFileAttributes import java.nio.file.attribute.BasicFileAttributes
import java.util import java.util
import com.goyeau.mill.scalafix.ScalafixModule
trait ScalaCommon extends ScalaModule: trait ScalaCommon extends ScalaModule with ScalafmtModule with ScalafixModule:
def scalaVersion = "3.7.2" def scalaVersion = "3.7.2"
def scalacOptions = Seq( def scalacOptions = Seq(
"-Wunused:all", "-Wunused:all",

View file

@ -1,11 +1,12 @@
package scalive package scalive
package playground package playground
import scalive.*
import zio.* import zio.*
import zio.stream.ZStream import zio.stream.ZStream
import TestView.* import scalive.*
import scalive.playground.TestView.*
class TestView extends LiveView[Msg, Model]: class TestView extends LiveView[Msg, Model]:
def init = Model() def init = Model()

View file

@ -1,9 +1,10 @@
package scalive package scalive
package playground package playground
import scalive.*
import zio.json.* import zio.json.*
import scalive.*
extension (el: HtmlElement) def html: String = HtmlBuilder.build(el) extension (el: HtmlElement) def html: String = HtmlBuilder.build(el)
import TestView.* import TestView.*

View file

@ -1,6 +1,7 @@
package scalive package scalive
import java.io.StringWriter import java.io.StringWriter
import scalive.Mod.Attr import scalive.Mod.Attr
import scalive.Mod.Content import scalive.Mod.Content

View file

@ -1,14 +1,15 @@
package scalive package scalive
import java.util.Base64
import scala.util.Random
import zio.json.*
import scalive.JSCommands.JSCommand import scalive.JSCommands.JSCommand
import scalive.Mod.Attr import scalive.Mod.Attr
import scalive.Mod.Content import scalive.Mod.Content
import scalive.codecs.BooleanAsAttrPresenceEncoder import scalive.codecs.BooleanAsAttrPresenceEncoder
import scalive.codecs.Encoder import scalive.codecs.Encoder
import zio.json.*
import java.util.Base64
import scala.util.Random
class HtmlElement(val tag: HtmlTag, val mods: Vector[Mod]): class HtmlElement(val tag: HtmlTag, val mods: Vector[Mod]):
def static: Seq[String] = StaticBuilder.build(this) def static: Seq[String] = StaticBuilder.build(this)

View file

@ -1,11 +1,11 @@
package scalive package scalive
import zio.json.*
import zio.json.ast.Json
import java.util.Base64 import java.util.Base64
import scala.util.Random import scala.util.Random
import zio.json.*
import zio.json.ast.Json
val JS: JSCommands.JSCommand = JSCommands.empty val JS: JSCommands.JSCommand = JSCommands.empty
object JSCommands: object JSCommands:

View file

@ -2,6 +2,7 @@ package scalive
import scala.collection.immutable.ArraySeq import scala.collection.immutable.ArraySeq
import scala.collection.mutable.ListBuffer import scala.collection.mutable.ListBuffer
import scalive.Mod.Attr import scalive.Mod.Attr
import scalive.Mod.Content import scalive.Mod.Content

View file

@ -1,7 +1,5 @@
package scalive package scalive
import zio.json.*
import java.time.Instant import java.time.Instant
import java.util.Base64 import java.util.Base64
import javax.crypto.Mac import javax.crypto.Mac
@ -9,6 +7,8 @@ import javax.crypto.spec.SecretKeySpec
import scala.concurrent.duration.Duration import scala.concurrent.duration.Duration
import scala.util.Random import scala.util.Random
import zio.json.*
final case class Token[T] private ( final case class Token[T] private (
version: Int, version: Int,
liveViewId: String, liveViewId: String,

View file

@ -1,9 +1,10 @@
import CounterLiveView.* import CounterLiveView.*
import monocle.syntax.all.* import monocle.syntax.all.*
import scalive.*
import zio.* import zio.*
import zio.stream.ZStream import zio.stream.ZStream
import scalive.*
class CounterLiveView() extends LiveView[Msg, Model]: class CounterLiveView() extends LiveView[Msg, Model]:
def init = def init =

View file

@ -1,4 +1,3 @@
import scalive.{label as _, *}
import zio.* import zio.*
import zio.http.* import zio.http.*
import zio.logging.ConsoleLoggerConfig import zio.logging.ConsoleLoggerConfig
@ -7,6 +6,8 @@ import zio.logging.LogFilter
import zio.logging.LogFormat.* import zio.logging.LogFormat.*
import zio.logging.consoleLogger import zio.logging.consoleLogger
import scalive.{label as _, *}
object Example extends ZIOAppDefault: object Example extends ZIOAppDefault:
private val logFormat = private val logFormat =

View file

@ -1,7 +1,8 @@
import scalive.*
import zio.* import zio.*
import zio.stream.ZStream import zio.stream.ZStream
import scalive.*
class HomeLiveView() extends LiveView[String, Unit]: class HomeLiveView() extends LiveView[String, Unit]:
val links = List( val links = List(
"/counter" -> "Counter", "/counter" -> "Counter",

View file

@ -1,9 +1,10 @@
import ListLiveView.* import ListLiveView.*
import monocle.syntax.all.* import monocle.syntax.all.*
import scalive.*
import zio.* import zio.*
import zio.stream.ZStream import zio.stream.ZStream
import scalive.*
class ListLiveView(someParam: String) extends LiveView[Msg, Model]: class ListLiveView(someParam: String) extends LiveView[Msg, Model]:
def init = def init =

View file

@ -1,8 +1,9 @@
import TodoLiveView.* import TodoLiveView.*
import scalive.*
import zio.* import zio.*
import zio.stream.ZStream import zio.stream.ZStream
import scalive.*
class TodoLiveView() extends LiveView[Msg, Model]: class TodoLiveView() extends LiveView[Msg, Model]:
def init = Model( def init = Model(

View file

@ -1,7 +1,8 @@
package scalive package scalive
import scalive.WebSocketMessage.Meta import java.util.Base64
import scalive.WebSocketMessage.Payload import scala.util.Random
import zio.* import zio.*
import zio.http.* import zio.http.*
import zio.http.ChannelEvent.Read import zio.http.ChannelEvent.Read
@ -11,8 +12,8 @@ import zio.json.*
import zio.stream.SubscriptionRef import zio.stream.SubscriptionRef
import zio.stream.ZStream import zio.stream.ZStream
import java.util.Base64 import scalive.WebSocketMessage.Meta
import scala.util.Random import scalive.WebSocketMessage.Payload
final case class LiveRoute[A, Msg, Model]( final case class LiveRoute[A, Msg, Model](
path: PathCodec[A], path: PathCodec[A],

View file

@ -1,12 +1,13 @@
package scalive package scalive
import scalive.WebSocketMessage.LiveResponse
import scalive.WebSocketMessage.Payload
import zio.* import zio.*
import zio.Queue import zio.Queue
import zio.stream.SubscriptionRef import zio.stream.SubscriptionRef
import zio.stream.ZStream import zio.stream.ZStream
import scalive.WebSocketMessage.LiveResponse
import scalive.WebSocketMessage.Payload
final case class Socket[Msg, Model] private ( final case class Socket[Msg, Model] private (
id: String, id: String,
token: String, token: String,

View file

@ -1,12 +1,13 @@
package scalive package scalive
import scalive.WebSocketMessage.LiveResponse
import scalive.WebSocketMessage.Payload
import zio.Chunk import zio.Chunk
import zio.http.QueryParams import zio.http.QueryParams
import zio.json.* import zio.json.*
import zio.json.ast.Json import zio.json.ast.Json
import scalive.WebSocketMessage.LiveResponse
import scalive.WebSocketMessage.Payload
final case class WebSocketMessage( final case class WebSocketMessage(
// Live session ID, auto increment defined by the client on join // Live session ID, auto increment defined by the client on join
joinRef: Option[Int], joinRef: Option[Int],