Minor, generate trailing comma in enums in Gradle compiler types

This both simplifies the generator code and makes the generated code
conform to the style guide (see
https://kotlinlang.org/docs/coding-conventions.html#trailing-commas), in
particular it improves version control diffs for generated enums.
This commit is contained in:
Alexander Udalov
2022-09-22 00:50:06 +02:00
parent 3ee09f05ef
commit 8757988037
9 changed files with 32 additions and 36 deletions
@@ -22,11 +22,10 @@ internal fun generateJsMainFunctionExecutionMode(
K2JsArgumentConstants::NO_CALL.name to K2JsArgumentConstants.NO_CALL K2JsArgumentConstants::NO_CALL.name to K2JsArgumentConstants.NO_CALL
) )
val lastIndex = modes.size - 1 for ((key, value) in modes) {
modes.entries.forEachIndexed { index, mode -> println("$key(\"$value\"),")
val lastChar = if (index == lastIndex) ";" else ","
println("${mode.key}(\"${mode.value}\")$lastChar")
} }
println(";")
println() println()
println("companion object {") println("companion object {")
@@ -55,11 +54,10 @@ internal fun generateJsModuleKind(
K2JsArgumentConstants::MODULE_ES.name to K2JsArgumentConstants.MODULE_ES K2JsArgumentConstants::MODULE_ES.name to K2JsArgumentConstants.MODULE_ES
) )
val lastIndex = kinds.size - 1 for ((key, value) in kinds) {
kinds.entries.forEachIndexed { index, mode -> println("$key(\"$value\"),")
val lastChar = if (index == lastIndex) ";" else ","
println("${mode.key}(\"${mode.value}\")$lastChar")
} }
println(";")
println() println()
println("companion object {") println("companion object {")
@@ -86,11 +84,10 @@ internal fun generateJsSourceMapEmbedMode(
K2JsArgumentConstants::SOURCE_MAP_SOURCE_CONTENT_INLINING.name to K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_INLINING, K2JsArgumentConstants::SOURCE_MAP_SOURCE_CONTENT_INLINING.name to K2JsArgumentConstants.SOURCE_MAP_SOURCE_CONTENT_INLINING,
) )
val lastIndex = modes.size - 1 for ((key, value) in modes) {
modes.entries.forEachIndexed { index, mode -> println("$key(\"$value\"),")
val lastChar = if (index == lastIndex) ";" else ","
println("${mode.key}(\"${mode.value}\")$lastChar")
} }
println(";")
println() println()
println("companion object {") println("companion object {")
@@ -111,16 +108,15 @@ internal fun generateJsDiagnosticMode(
val diagnosticModeFqName = FqName("org.jetbrains.kotlin.gradle.dsl.JsDiagnosticMode") val diagnosticModeFqName = FqName("org.jetbrains.kotlin.gradle.dsl.JsDiagnosticMode")
filePrinter(fileFromFqName(apiDir, diagnosticModeFqName)) { filePrinter(fileFromFqName(apiDir, diagnosticModeFqName)) {
generateDeclaration("enum class", diagnosticModeFqName, afterType = "(val mode: String)") { generateDeclaration("enum class", diagnosticModeFqName, afterType = "(val mode: String)") {
val mods = hashMapOf( val modes = hashMapOf(
K2JsArgumentConstants::RUNTIME_DIAGNOSTIC_EXCEPTION.name to K2JsArgumentConstants.RUNTIME_DIAGNOSTIC_EXCEPTION, K2JsArgumentConstants::RUNTIME_DIAGNOSTIC_EXCEPTION.name to K2JsArgumentConstants.RUNTIME_DIAGNOSTIC_EXCEPTION,
K2JsArgumentConstants::RUNTIME_DIAGNOSTIC_LOG.name to K2JsArgumentConstants.RUNTIME_DIAGNOSTIC_LOG, K2JsArgumentConstants::RUNTIME_DIAGNOSTIC_LOG.name to K2JsArgumentConstants.RUNTIME_DIAGNOSTIC_LOG,
) )
val lastIndex = mods.size - 1 for ((key, value) in modes) {
mods.entries.forEachIndexed { index, mode -> println("$key(\"$value\"),")
val lastChar = if (index == lastIndex) ";" else ","
println("${mode.key}(\"${mode.value}\")$lastChar")
} }
println(";")
println() println()
println("companion object {") println("companion object {")
@@ -17,13 +17,10 @@ internal fun generateJvmTarget(
val jvmTargetFqName = FqName("org.jetbrains.kotlin.gradle.dsl.JvmTarget") val jvmTargetFqName = FqName("org.jetbrains.kotlin.gradle.dsl.JvmTarget")
filePrinter(fileFromFqName(apiDir, jvmTargetFqName)) { filePrinter(fileFromFqName(apiDir, jvmTargetFqName)) {
generateDeclaration("enum class", jvmTargetFqName, afterType = "(val target: String)") { generateDeclaration("enum class", jvmTargetFqName, afterType = "(val target: String)") {
val jvmTargetValues = JvmTarget.supportedValues() for (jvmTarget in JvmTarget.supportedValues()) {
println("${jvmTarget.name}(\"${jvmTarget.description}\"),")
val lastIndex = jvmTargetValues.size - 1
jvmTargetValues.forEachIndexed { index, jvmTarget ->
val lastChar = if (index == lastIndex) ";" else ","
println("${jvmTarget.name}(\"${jvmTarget.description}\")$lastChar")
} }
println(";")
println() println()
println("companion object {") println("companion object {")
@@ -35,4 +32,4 @@ internal fun generateJvmTarget(
println("}") println("}")
} }
} }
} }
@@ -21,19 +21,16 @@ internal fun generateKotlinVersion(
val kotlinVersionFqName = FqName("org.jetbrains.kotlin.gradle.dsl.KotlinVersion") val kotlinVersionFqName = FqName("org.jetbrains.kotlin.gradle.dsl.KotlinVersion")
filePrinter(fileFromFqName(apiDir, kotlinVersionFqName)) { filePrinter(fileFromFqName(apiDir, kotlinVersionFqName)) {
generateDeclaration("enum class", kotlinVersionFqName, afterType = "(val version: String)") { generateDeclaration("enum class", kotlinVersionFqName, afterType = "(val version: String)") {
val languageVersions = LanguageVersion.values() for (languageVersion in LanguageVersion.values()) {
val lastIndex = languageVersions.size - 1
languageVersions.forEachIndexed { index, languageVersion ->
val lastChar = if (index == lastIndex) ";" else ","
val prefix = when { val prefix = when {
languageVersion.isUnsupported -> "@Deprecated(\"Unsupported\", level = DeprecationLevel.ERROR) " languageVersion.isUnsupported -> "@Deprecated(\"Unsupported\", level = DeprecationLevel.ERROR) "
languageVersion.isDeprecated -> "@Deprecated(\"Will be removed soon\") " languageVersion.isDeprecated -> "@Deprecated(\"Will be removed soon\") "
else -> "" else -> ""
} }
println("${prefix}KOTLIN_${languageVersion.major}_${languageVersion.minor}(\"${languageVersion.versionString}\")$lastChar") println("${prefix}KOTLIN_${languageVersion.major}_${languageVersion.minor}(\"${languageVersion.versionString}\"),")
} }
println(";")
println() println()
println("companion object {") println("companion object {")
@@ -7,7 +7,8 @@ package org.jetbrains.kotlin.gradle.dsl
enum class JsDiagnosticMode(val mode: String) { enum class JsDiagnosticMode(val mode: String) {
RUNTIME_DIAGNOSTIC_EXCEPTION("exception"), RUNTIME_DIAGNOSTIC_EXCEPTION("exception"),
RUNTIME_DIAGNOSTIC_LOG("log"); RUNTIME_DIAGNOSTIC_LOG("log"),
;
companion object { companion object {
fun fromMode(mode: String): JsDiagnosticMode = fun fromMode(mode: String): JsDiagnosticMode =
@@ -7,7 +7,8 @@ package org.jetbrains.kotlin.gradle.dsl
enum class JsMainFunctionExecutionMode(val mode: String) { enum class JsMainFunctionExecutionMode(val mode: String) {
CALL("call"), CALL("call"),
NO_CALL("noCall"); NO_CALL("noCall"),
;
companion object { companion object {
fun fromMode(mode: String): JsMainFunctionExecutionMode = fun fromMode(mode: String): JsMainFunctionExecutionMode =
@@ -10,7 +10,8 @@ enum class JsModuleKind(val kind: String) {
MODULE_PLAIN("plain"), MODULE_PLAIN("plain"),
MODULE_ES("es"), MODULE_ES("es"),
MODULE_COMMONJS("commonjs"), MODULE_COMMONJS("commonjs"),
MODULE_UMD("umd"); MODULE_UMD("umd"),
;
companion object { companion object {
fun fromKind(kind: String): JsModuleKind = fun fromKind(kind: String): JsModuleKind =
@@ -8,7 +8,8 @@ package org.jetbrains.kotlin.gradle.dsl
enum class JsSourceMapEmbedMode(val mode: String) { enum class JsSourceMapEmbedMode(val mode: String) {
SOURCE_MAP_SOURCE_CONTENT_INLINING("inlining"), SOURCE_MAP_SOURCE_CONTENT_INLINING("inlining"),
SOURCE_MAP_SOURCE_CONTENT_NEVER("never"), SOURCE_MAP_SOURCE_CONTENT_NEVER("never"),
SOURCE_MAP_SOURCE_CONTENT_ALWAYS("always"); SOURCE_MAP_SOURCE_CONTENT_ALWAYS("always"),
;
companion object { companion object {
fun fromMode(mode: String): JsSourceMapEmbedMode = fun fromMode(mode: String): JsSourceMapEmbedMode =
@@ -16,7 +16,8 @@ enum class JvmTarget(val target: String) {
JVM_15("15"), JVM_15("15"),
JVM_16("16"), JVM_16("16"),
JVM_17("17"), JVM_17("17"),
JVM_18("18"); JVM_18("18"),
;
companion object { companion object {
fun fromTarget(target: String): JvmTarget = fun fromTarget(target: String): JvmTarget =
@@ -15,7 +15,8 @@ enum class KotlinVersion(val version: String) {
KOTLIN_1_6("1.6"), KOTLIN_1_6("1.6"),
KOTLIN_1_7("1.7"), KOTLIN_1_7("1.7"),
KOTLIN_1_8("1.8"), KOTLIN_1_8("1.8"),
KOTLIN_1_9("1.9"); KOTLIN_1_9("1.9"),
;
companion object { companion object {
fun fromVersion(version: String): KotlinVersion = fun fromVersion(version: String): KotlinVersion =