Move SmartPrinter to :core:compiler.common
This commit is contained in:
committed by
TeamCityServer
parent
24ba581910
commit
4299794de2
+3
@@ -6,6 +6,9 @@
|
||||
package org.jetbrains.kotlin.fir.checkers.generator
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.*
|
||||
import org.jetbrains.kotlin.fir.tree.generator.util.writeToFileUsingSmartPrinterIfFileContentChanged
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import org.jetbrains.kotlin.util.withIndent
|
||||
import java.io.File
|
||||
|
||||
private typealias Alias = String
|
||||
|
||||
+17
-17
@@ -5,27 +5,27 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.checkers.generator
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.SmartPrinter
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
|
||||
private object ImportPrinter {
|
||||
fun SmartPrinter.printImports(imports: Collection<String>) {
|
||||
val importsToPrint = imports.filterNot { it.isDefaultImport() }.distinct().sorted()
|
||||
for (import in importsToPrint) {
|
||||
println("import $import")
|
||||
}
|
||||
}
|
||||
fun SmartPrinter.printImports(imports: Collection<String>) {
|
||||
val importsToPrint = imports.filterNot { it.isDefaultImport() }.distinct().sorted()
|
||||
for (import in importsToPrint) {
|
||||
println("import $import")
|
||||
}
|
||||
}
|
||||
|
||||
private fun String.isDefaultImport() = substringBeforeLast('.') in defaultImportedPackages
|
||||
private fun String.isDefaultImport() = substringBeforeLast('.') in defaultImportedPackages
|
||||
|
||||
private val defaultImportedPackages = setOf(
|
||||
"kotlin",
|
||||
"kotlin.annotation",
|
||||
"kotlin.collections",
|
||||
"kotlin.ranges",
|
||||
"kotlin.sequences",
|
||||
"kotlin.text",
|
||||
"kotlin.io",
|
||||
)
|
||||
private val defaultImportedPackages = setOf(
|
||||
"kotlin",
|
||||
"kotlin.annotation",
|
||||
"kotlin.collections",
|
||||
"kotlin.ranges",
|
||||
"kotlin.sequences",
|
||||
"kotlin.text",
|
||||
"kotlin.io",
|
||||
)
|
||||
}
|
||||
|
||||
fun SmartPrinter.printImports(imports: Collection<String>) {
|
||||
|
||||
+3
-3
@@ -6,10 +6,10 @@
|
||||
package org.jetbrains.kotlin.fir.checkers.generator.diagnostics
|
||||
|
||||
import org.jetbrains.kotlin.fir.checkers.generator.*
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.SmartPrinter
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.printCopyright
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.printGeneratedMessage
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.writeToFileUsingSmartPrinterIfFileContentChanged
|
||||
import org.jetbrains.kotlin.fir.tree.generator.util.writeToFileUsingSmartPrinterIfFileContentChanged
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import java.io.File
|
||||
import kotlin.reflect.KClass
|
||||
import kotlin.reflect.KType
|
||||
@@ -134,4 +134,4 @@ private inline fun <T> SmartPrinter.printSeparatedWithComma(list: List<T>, print
|
||||
print(", ")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -5,11 +5,11 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.checkers.generator
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.SmartPrinter
|
||||
import org.jetbrains.kotlin.fir.tree.generator.printer.withIndent
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import org.jetbrains.kotlin.util.withIndent
|
||||
|
||||
inline fun SmartPrinter.inBracketsWithIndent(header: String = "", body: () -> Unit) {
|
||||
println("$header {")
|
||||
withIndent(body)
|
||||
println("}")
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -22,4 +22,4 @@ fun KType.collectClassNamesTo(set: MutableSet<String>) {
|
||||
for (argument in arguments) {
|
||||
argument.type?.collectClassNamesTo(set)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-56
@@ -1,56 +0,0 @@
|
||||
/*
|
||||
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.fir.tree.generator.printer
|
||||
|
||||
import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil
|
||||
import java.io.File
|
||||
import java.lang.Appendable
|
||||
|
||||
class SmartPrinter(appendable: Appendable) {
|
||||
private val printer = org.jetbrains.kotlin.utils.Printer(appendable)
|
||||
|
||||
private var notFirstPrint: Boolean = false
|
||||
|
||||
fun print(vararg objects: Any) {
|
||||
if (notFirstPrint) {
|
||||
printer.printWithNoIndent(*objects)
|
||||
} else {
|
||||
printer.print(*objects)
|
||||
}
|
||||
notFirstPrint = true
|
||||
}
|
||||
|
||||
fun println(vararg objects: Any) {
|
||||
if (notFirstPrint) {
|
||||
printer.printlnWithNoIndent(*objects)
|
||||
} else {
|
||||
printer.println(*objects)
|
||||
}
|
||||
notFirstPrint = false
|
||||
}
|
||||
|
||||
fun pushIndent() {
|
||||
printer.pushIndent()
|
||||
}
|
||||
|
||||
fun popIndent() {
|
||||
printer.popIndent()
|
||||
}
|
||||
|
||||
fun getCurrentIndentInUnits() = printer.currentIndentLengthInUnits
|
||||
fun getIndentUnit() = printer.indentUnitLength
|
||||
}
|
||||
|
||||
inline fun SmartPrinter.withIndent(block: () -> Unit) {
|
||||
pushIndent()
|
||||
block()
|
||||
popIndent()
|
||||
}
|
||||
|
||||
inline fun File.writeToFileUsingSmartPrinterIfFileContentChanged(block: SmartPrinter.() -> Unit) {
|
||||
val newText = buildString { SmartPrinter(this).block() }
|
||||
GeneratorsFileUtil.writeFileIfContentChanged(this, newText, logNotChanged = false)
|
||||
}
|
||||
+2
@@ -7,6 +7,8 @@ package org.jetbrains.kotlin.fir.tree.generator.printer
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.declarationAttributesType
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import org.jetbrains.kotlin.util.withIndent
|
||||
import java.io.File
|
||||
|
||||
fun Builder.generateCode(generationPath: File): GeneratedFile {
|
||||
|
||||
+2
@@ -9,6 +9,8 @@ import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
||||
import org.jetbrains.kotlin.fir.tree.generator.util.get
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import org.jetbrains.kotlin.util.withIndent
|
||||
|
||||
import java.io.File
|
||||
|
||||
|
||||
+1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.tree.generator.printer
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.Field
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
|
||||
|
||||
fun SmartPrinter.printField(field: Field, isImplementation: Boolean, override: Boolean, end: String) {
|
||||
|
||||
+2
@@ -7,6 +7,8 @@ package org.jetbrains.kotlin.fir.tree.generator.printer
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.*
|
||||
import org.jetbrains.kotlin.fir.tree.generator.pureAbstractElementType
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import org.jetbrains.kotlin.util.withIndent
|
||||
|
||||
import java.io.File
|
||||
|
||||
|
||||
+1
@@ -6,6 +6,7 @@
|
||||
package org.jetbrains.kotlin.fir.tree.generator.printer
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import java.io.File
|
||||
|
||||
private val COPYRIGHT = File("license/COPYRIGHT_HEADER.txt").readText()
|
||||
|
||||
+2
@@ -8,6 +8,8 @@ package org.jetbrains.kotlin.fir.tree.generator.printer
|
||||
import org.jetbrains.kotlin.fir.tree.generator.compositeTransformResultType
|
||||
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.Element
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import org.jetbrains.kotlin.util.withIndent
|
||||
|
||||
import java.io.File
|
||||
|
||||
|
||||
+2
@@ -7,6 +7,8 @@ package org.jetbrains.kotlin.fir.tree.generator.printer
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.context.AbstractFirTreeBuilder
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.Element
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import org.jetbrains.kotlin.util.withIndent
|
||||
import java.io.File
|
||||
|
||||
fun printVisitor(elements: List<Element>, generationPath: File): GeneratedFile {
|
||||
|
||||
+9
-1
@@ -6,6 +6,9 @@
|
||||
package org.jetbrains.kotlin.fir.tree.generator.util
|
||||
|
||||
import org.jetbrains.kotlin.fir.tree.generator.model.Element
|
||||
import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil
|
||||
import org.jetbrains.kotlin.util.SmartPrinter
|
||||
import java.io.File
|
||||
|
||||
fun Element.traverseParents(block: (Element) -> Unit) {
|
||||
block(this)
|
||||
@@ -20,4 +23,9 @@ operator fun <K, V, U> MutableMap<K, MutableMap<V, U>>.set(k1: K, k2: V, value:
|
||||
|
||||
operator fun <K, V, U> Map<K, Map<V, U>>.get(k1: K, k2: V): U {
|
||||
return getValue(k1).getValue(k2)
|
||||
}
|
||||
}
|
||||
|
||||
inline fun File.writeToFileUsingSmartPrinterIfFileContentChanged(block: SmartPrinter.() -> Unit) {
|
||||
val newText = buildString { SmartPrinter(this).block() }
|
||||
GeneratorsFileUtil.writeFileIfContentChanged(this, newText, logNotChanged = false)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user