Skip to content

Commit

Permalink
Merge pull request #595 from scala-steward/update/scalafmt-core-3.2.1
Browse files Browse the repository at this point in the history
Update scalafmt-core to 3.2.1
  • Loading branch information
tgodzik authored Dec 21, 2021
2 parents 9a020bd + adc23fc commit 979b8f4
Show file tree
Hide file tree
Showing 9 changed files with 97 additions and 97 deletions.
14 changes: 7 additions & 7 deletions .scalafmt.conf
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
version=3.0.8
version = "3.2.1"
runner.dialect = scala213
maxColumn = 100
project.git = true
align.preset = none
align.stripMargin = true
assumeStandardLibraryStripMargin = true

project.excludeFilters = [
"mdoc/src/main/scala-3"
"runtime/src/main/scala-3"
"runtime/src/main/scala-0.26"
"runtime/src/main/scala-0.27"
]
fileOverride {
"glob:**/scala-3*/**" {
runner.dialect = scala3
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,15 @@ class CodePrinter(ps: PrintStream, baseIndent: Int = 0, baseNest: Int = 0) {

private var nestCount = baseNest

def append(s: String) = {ps.append(s); this }
def append(s: String) = { ps.append(s); this }

def println(s: String) = {
ps.print(indent + s + "\n"); this
}

def definition(header: String)(cb: CodePrinter => Unit): CodePrinter = {
val newCB = new CodePrinter(ps, baseIndent + 1, nestCount)

this.println(header + " {")
cb(newCB)
this.println("}")
Expand All @@ -26,7 +26,7 @@ class CodePrinter(ps: PrintStream, baseIndent: Int = 0, baseNest: Int = 0) {
def appendLines(body: String, nest: Boolean = false) = {
if (nest) nestCount += 1
body.linesIterator.toArray.foreach(this.println)
if(nest) nestCount -= 1
if (nest) nestCount -= 1
this
}

Expand All @@ -48,4 +48,3 @@ class CodePrinter(ps: PrintStream, baseIndent: Int = 0, baseNest: Int = 0) {
nestCount = baseNest
}
}

57 changes: 29 additions & 28 deletions mdoc/src/main/scala-3/mdoc/internal/markdown/FailInstrumenter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,41 +16,42 @@ final class FailInstrumenter(sections: List[SectionInput], i: Int) {
private def printAsScript(): Unit = {
snip.println("package repl")
snip.definition("object MdocSession") {
_.definition("object App"){ sb =>
_.definition("object App") { sb =>

sections.zipWithIndex.foreach { case (section, j) =>
if (j > i) ()
else {
if (section.mod.isReset) {
sb.unnest()
sb.append(Instrumenter.reset(section.mod, gensym.fresh("App")))
} else if (section.mod.isNest) {
sb.nest()
}
if (j == i || !section.mod.isFailOrWarn) {
section.source.stats.foreach { stat =>
stat match {
case i: Import =>
i.importers.foreach {
case Importer(
Term.Name(name),
List(Importee.Name(_: Name.Indeterminate))
) if Instrumenter.magicImports(name) =>
case importer =>
sb.line {
_.append("import ")
.append(importer.pos.text)
.append(";")
sections.zipWithIndex.foreach { case (section, j) =>
if (j > i) ()
else {
if (section.mod.isReset) {
sb.unnest()
sb.append(Instrumenter.reset(section.mod, gensym.fresh("App")))
} else if (section.mod.isNest) {
sb.nest()
}
if (j == i || !section.mod.isFailOrWarn) {
section.source.stats.foreach { stat =>
stat match {
case i: Import =>
i.importers.foreach {
case Importer(
Term.Name(name),
List(Importee.Name(_: Name.Indeterminate))
) if Instrumenter.magicImports(name) =>
case importer =>
sb.line {
_.append("import ")
.append(importer.pos.text)
.append(";")
}
}
case _ =>
sb.appendLines(stat.pos.text)
}
case _ =>
sb.appendLines(stat.pos.text)
}
}
}
}
sb.unnest()
}
}
sb.unnest()
}}
}
}
36 changes: 19 additions & 17 deletions mdoc/src/main/scala-3/mdoc/internal/markdown/Instrumenter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,14 @@ class Instrumenter(
val out = new FailInstrumenter(sections, i).instrument()
val literal = Instrumenter.stringLiteral(out)
val binder = gensym.fresh("res")
sb.line{_.append("val ")
.append(binder)
.append(" = _root_.mdoc.internal.document.FailSection(")
.append(literal)
.append(", ")
.append(position(section.source.pos))
.append(");")
sb.line {
_.append("val ")
.append(binder)
.append(" = _root_.mdoc.internal.document.FailSection(")
.append(literal)
.append(", ")
.append(position(section.source.pos))
.append(");")
}
printBinder(binder, section.source.pos)
sb.println("$doc.endStatement();")
Expand All @@ -77,7 +78,7 @@ class Instrumenter(
cb.appendLines(stat.pos.text)
}
}

sb.println("\n") // newline for posterity
sb.println("$doc.endStatement();")

Expand All @@ -103,18 +104,19 @@ class Instrumenter(
val (fresh, binders) = stat match {
case Binders(names) =>
(false, names.map(name => name -> name.pos))
case _ : Term.EndMarker => (false, Nil)
case _: Term.EndMarker => (false, Nil)
case _ =>
val fresh = gensym.fresh("res")
sb.line{_.append(s"val $fresh = ")}
sb.line { _.append(s"val $fresh = ") }
(true, List(Name(fresh) -> stat.pos))
}
stat match {
case i: Import =>
def printImporter(importer: Importer): Unit = {
sb.line {_.append("import ")
.append(importer.pos.text)
.append(";")
sb.line {
_.append("import ")
.append(importer.pos.text)
.append(";")
}
}
i.importers.foreach {
Expand All @@ -124,7 +126,7 @@ class Instrumenter(
case importer =>
printImporter(importer)
}
case _ : Term.EndMarker =>
case _: Term.EndMarker =>
case _ =>
sb.appendLines(stat.pos.text, fresh)
}
Expand Down Expand Up @@ -178,9 +180,9 @@ object Instrumenter {
cb.println("package repl")
cb.definition("object MdocSession extends _root_.mdoc.internal.document.DocumentBuilder") {
_.println("def app(): _root_.scala.Unit = {val _ = new App()}")
.definition("class App") {
_.appendLines(body)
}
.definition("class App") {
_.appendLines(body)
}

}

Expand Down
37 changes: 18 additions & 19 deletions mdoc/src/main/scala-3/mdoc/internal/markdown/MarkdownCompiler.scala
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ class MarkdownCompiler(
target: AbstractFile = new VirtualDirectory("(memory)")
) {


private def newContext: FreshContext = {
val defaultFlags =
List("-color:never", "-unchecked", "-deprecation", "-Ximport-suggestion-timeout", "0")
Expand All @@ -67,7 +66,8 @@ class MarkdownCompiler(
ctx
.setReporter(new CollectionReporter)
.setSetting(
ctx.settings.outputDir, target
ctx.settings.outputDir,
target
)
}

Expand Down Expand Up @@ -127,7 +127,7 @@ class MarkdownCompiler(
class CollectionReporter extends dotty.tools.dotc.reporting.Reporter with UniqueMessagePositions {
val allDiags = List.newBuilder[Diagnostic]

override def doReport(dia: Diagnostic)(using Context) =
override def doReport(dia: Diagnostic)(using Context) =
allDiags += dia

override def pendingMessages(using Context) = allDiags.result()
Expand Down Expand Up @@ -175,34 +175,33 @@ class MarkdownCompiler(
def fail(edit: TokenEditDistance, input: Input, sectionPos: Position): String = {
val compiler = new Compiler
val freshContext = context.fresh

val run = compiler.newRun(using freshContext)
val inputs = List(input).map(toSource)

run.compileSources(inputs)
val runContext = run.runContext
val out = new ByteArrayOutputStream()
val ps = new PrintStream(out)

runContext.reporter.pendingMessages(using context).foreach { diagnostic =>
val msg = nullableMessage(diagnostic.message)
val mpos = toMetaPosition(edit, diagnostic.position.get)
if(sectionPos.contains(mpos) || diagnostic.level == IDiagnostic.ERROR) {
if (sectionPos.contains(mpos) || diagnostic.level == IDiagnostic.ERROR) {
val severity = diagnostic.level match {
case IDiagnostic.ERROR => "error"
case IDiagnostic.WARNING => "warn"
case IDiagnostic.INFO => "info"
}
val formatted =
val formatted =
PositionSyntax.formatMessage(mpos, severity, "\n" + msg, includePath = false)
ps.println(formatted)
}
}

out.toString()
}


def toMetaPosition(edit: TokenEditDistance, pos: SourcePosition): Position = {
def toOffsetPosition(offset: Int): Position = {
edit.toOriginal(offset) match {
Expand All @@ -216,11 +215,11 @@ class MarkdownCompiler(

(edit.toOriginal(start), edit.toOriginal(end - 1)) match {
case (Right(start), Right(end)) =>
Position.Range(start.input, start.start, end.end).toUnslicedPosition
Position.Range(start.input, start.start, end.end).toUnslicedPosition
case (_, _) =>
toOffsetPosition(pos.point - 1)
toOffsetPosition(pos.point - 1)
}

}

private def nullableMessage(msgOrNull: String): String =
Expand All @@ -239,8 +238,8 @@ class MarkdownCompiler(
case diagnostic if diagnostic.position.isPresent =>
val pos = diagnostic.position.get
val msg = nullableMessage(diagnostic.message)
val mpos = toMetaPosition(edit, pos)

val mpos = toMetaPosition(edit, pos)
val actualMessage =
if (mpos == Position.None) {
val line = pos.lineContent
Expand All @@ -264,11 +263,11 @@ class MarkdownCompiler(
message: String
): Unit = {
diagnostic match {
case _: Diagnostic.Error => vreporter.error(mpos, message)
case _: Diagnostic.Info => vreporter.info(mpos, message)
case _: Diagnostic.Warning => vreporter.warning(mpos, message)
case _ =>
}
case _: Diagnostic.Error => vreporter.error(mpos, message)
case _: Diagnostic.Info => vreporter.info(mpos, message)
case _: Diagnostic.Warning => vreporter.warning(mpos, message)
case _ =>
}
}
private def formatMessage(pos: SourcePosition, message: String): String =
new CodeBuilder()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

package mdoc.internal.markdown

import scala.tools.nsc.Settings
Expand Down
24 changes: 12 additions & 12 deletions runtime/src/main/scala-3/mdoc/internal/document/Printing.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@ package mdoc.internal.document
import Compat.TPrint

object Printing {
inline def stringValue[T](value: T) = nullableToString(value)
inline def typeString[T](tprint: TPrint[T]) = tprint.render

inline def print[T](value: T, out : StringBuilder, width: Int, height: Int) = {
out.append(nullableToString(value))
}
inline def stringValue[T](value: T) = nullableToString(value)
inline def typeString[T](tprint: TPrint[T]) = tprint.render

inline def printOneLine[T](value: T, out : StringBuilder, width: Int) = {
out.append(nullableToString(value).replace("\n",""))
}
inline def print[T](value: T, out: StringBuilder, width: Int, height: Int) = {
out.append(nullableToString(value))
}

inline private def nullableToString[T](value: T) = {
if (value != null) value.toString else "null"
}
inline def printOneLine[T](value: T, out: StringBuilder, width: Int) = {
out.append(nullableToString(value).replace("\n", ""))
}

inline private def nullableToString[T](value: T) = {
if (value != null) value.toString else "null"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,21 @@ import scala.language.implicitConversions
import scala.quoted._
import scala.quoted.runtime.impl.printers.SyntaxHighlight

trait TPrint[T]{
trait TPrint[T] {
def render: String
}

object TPrint {
inline given default[T]: TPrint[T] = ${ TypePrinter.typeString[T] }
}

object TypePrinter{
object TypePrinter {

def typeString[T](using ctx: Quotes, tpe: Type[T]): Expr[TPrint[T]] = {
import ctx.reflect._

val valueType = TypeTree.of[T](using tpe).tpe.show(using Printer.TypeReprShortCode)
'{ new TPrint[T]{ def render: String = ${ Expr(valueType) } } }

'{ new TPrint[T] { def render: String = ${ Expr(valueType) } } }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ trait StatementMacro {
inline def apply[T](v: => T): SourceStatement[T] = ${ Macros.text('v) }
}

object Macros{
object Macros {

def text[T: Type](v: Expr[T])(using ctx: Quotes): Expr[SourceStatement[T]] = {
import ctx.reflect.{_, given}
val txt = v.asTerm.pos.sourceCode.getOrElse("")
'{SourceStatement[T]($v, ${Expr(txt)})}
val txt = v.asTerm.pos.sourceCode.getOrElse("")
'{ SourceStatement[T]($v, ${ Expr(txt) }) }
}
}
}

0 comments on commit 979b8f4

Please sign in to comment.