FIR: use GeneratorsFileUtil for checkers-component-generator
This commit is contained in:
+3
-3
@@ -24,7 +24,7 @@ class Generator(
|
|||||||
|
|
||||||
private fun generateAliases() {
|
private fun generateAliases() {
|
||||||
val filename = "${abstractCheckerName}Aliases.kt"
|
val filename = "${abstractCheckerName}Aliases.kt"
|
||||||
generationPath.resolve(filename).useSmartPrinter {
|
generationPath.resolve(filename).writeToFileUsingSmartPrinterIfFileContentChanged {
|
||||||
printPackageAndCopyright()
|
printPackageAndCopyright()
|
||||||
printGeneratedMessage()
|
printGeneratedMessage()
|
||||||
configuration.aliases.keys
|
configuration.aliases.keys
|
||||||
@@ -43,7 +43,7 @@ class Generator(
|
|||||||
|
|
||||||
private fun generateAbstractCheckersComponent() {
|
private fun generateAbstractCheckersComponent() {
|
||||||
val filename = "${checkersComponentName}.kt"
|
val filename = "${checkersComponentName}.kt"
|
||||||
generationPath.resolve(filename).useSmartPrinter {
|
generationPath.resolve(filename).writeToFileUsingSmartPrinterIfFileContentChanged {
|
||||||
printPackageAndCopyright()
|
printPackageAndCopyright()
|
||||||
printImports()
|
printImports()
|
||||||
printGeneratedMessage()
|
printGeneratedMessage()
|
||||||
@@ -86,7 +86,7 @@ class Generator(
|
|||||||
private fun generateComposedComponent() {
|
private fun generateComposedComponent() {
|
||||||
val composedComponentName = "Composed$checkersComponentName"
|
val composedComponentName = "Composed$checkersComponentName"
|
||||||
val filename = "${composedComponentName}.kt"
|
val filename = "${composedComponentName}.kt"
|
||||||
generationPath.resolve(filename).useSmartPrinter {
|
generationPath.resolve(filename).writeToFileUsingSmartPrinterIfFileContentChanged {
|
||||||
printPackageAndCopyright()
|
printPackageAndCopyright()
|
||||||
printImports()
|
printImports()
|
||||||
printGeneratedMessage()
|
printGeneratedMessage()
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.checkers.generator.*
|
|||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.SmartPrinter
|
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.printCopyright
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.printGeneratedMessage
|
import org.jetbrains.kotlin.fir.tree.generator.printer.printGeneratedMessage
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.useSmartPrinter
|
import org.jetbrains.kotlin.fir.tree.generator.printer.writeToFileUsingSmartPrinterIfFileContentChanged
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import kotlin.reflect.KClass
|
import kotlin.reflect.KClass
|
||||||
import kotlin.reflect.KType
|
import kotlin.reflect.KType
|
||||||
@@ -17,7 +17,7 @@ import kotlin.reflect.KTypeProjection
|
|||||||
|
|
||||||
object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() {
|
object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() {
|
||||||
override fun render(file: File, diagnosticList: DiagnosticList, packageName: String) {
|
override fun render(file: File, diagnosticList: DiagnosticList, packageName: String) {
|
||||||
file.useSmartPrinter {
|
file.writeToFileUsingSmartPrinterIfFileContentChanged {
|
||||||
render(diagnosticList, packageName)
|
render(diagnosticList, packageName)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-2
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.tree.generator.printer
|
package org.jetbrains.kotlin.fir.tree.generator.printer
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.generators.util.GeneratorsFileUtil
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.lang.Appendable
|
import java.lang.Appendable
|
||||||
|
|
||||||
@@ -49,6 +50,7 @@ inline fun SmartPrinter.withIndent(block: () -> Unit) {
|
|||||||
popIndent()
|
popIndent()
|
||||||
}
|
}
|
||||||
|
|
||||||
inline fun File.useSmartPrinter(block: SmartPrinter.() -> Unit) {
|
inline fun File.writeToFileUsingSmartPrinterIfFileContentChanged(block: SmartPrinter.() -> Unit) {
|
||||||
writer().use { SmartPrinter(it).block() }
|
val newText = buildString { SmartPrinter(this).block() }
|
||||||
|
GeneratorsFileUtil.writeFileIfContentChanged(this, newText)
|
||||||
}
|
}
|
||||||
+2
-2
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.checkers.generator.printImports
|
|||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.SmartPrinter
|
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.printCopyright
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.printGeneratedMessage
|
import org.jetbrains.kotlin.fir.tree.generator.printer.printGeneratedMessage
|
||||||
import org.jetbrains.kotlin.fir.tree.generator.printer.useSmartPrinter
|
import org.jetbrains.kotlin.fir.tree.generator.printer.writeToFileUsingSmartPrinterIfFileContentChanged
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.generator.HLDiagnosticConverter
|
import org.jetbrains.kotlin.idea.frontend.api.fir.generator.HLDiagnosticConverter
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.generator.HLDiagnosticList
|
import org.jetbrains.kotlin.idea.frontend.api.fir.generator.HLDiagnosticList
|
||||||
import org.jetbrains.kotlin.idea.frontend.api.fir.generator.HLDiagnosticParameter
|
import org.jetbrains.kotlin.idea.frontend.api.fir.generator.HLDiagnosticParameter
|
||||||
@@ -21,7 +21,7 @@ import java.io.File
|
|||||||
abstract class AbstractDiagnosticsDataClassRenderer : DiagnosticListRenderer() {
|
abstract class AbstractDiagnosticsDataClassRenderer : DiagnosticListRenderer() {
|
||||||
override fun render(file: File, diagnosticList: DiagnosticList, packageName: String) {
|
override fun render(file: File, diagnosticList: DiagnosticList, packageName: String) {
|
||||||
val hlDiagnosticsList = HLDiagnosticConverter.convert(diagnosticList)
|
val hlDiagnosticsList = HLDiagnosticConverter.convert(diagnosticList)
|
||||||
file.useSmartPrinter { render(hlDiagnosticsList, packageName) }
|
file.writeToFileUsingSmartPrinterIfFileContentChanged { render(hlDiagnosticsList, packageName) }
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun SmartPrinter.collectAndPrintImports(diagnosticList: HLDiagnosticList) {
|
private fun SmartPrinter.collectAndPrintImports(diagnosticList: HLDiagnosticList) {
|
||||||
|
|||||||
Reference in New Issue
Block a user