Skip to content

Commit 0dd0559

Browse files
committed
refactor: separate escaping logic for JavaPoet and KotlinPoet code generation
1 parent a6f6ede commit 0dd0559

3 files changed

Lines changed: 13 additions & 6 deletions

File tree

gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/generator/JavaCodeGenerator.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ import com.highcapable.gropify.plugin.config.proxy.GropifyConfig
2727
import com.highcapable.gropify.plugin.generator.config.GenerateConfig
2828
import com.highcapable.gropify.plugin.generator.config.SourceCodeSpec
2929
import com.highcapable.gropify.plugin.generator.extension.PropertyMap
30+
import com.highcapable.gropify.plugin.generator.extension.escapeForJavaPoet
3031
import com.highcapable.gropify.plugin.generator.extension.toOptimize
31-
import com.highcapable.gropify.plugin.generator.extension.toPoetGenerationContent
3232
import com.highcapable.gropify.plugin.generator.extension.toUnderscores
3333
import com.highcapable.gropify.utils.extension.firstNumberToLetter
3434
import com.palantir.javapoet.ClassName
@@ -71,7 +71,7 @@ internal class JavaCodeGenerator {
7171
addModifiers(Modifier.PUBLIC, Modifier.STATIC, Modifier.FINAL)
7272
else addModifiers(Modifier.STATIC, Modifier.FINAL)
7373

74-
initializer(currentValue.codeValue.toPoetGenerationContent())
74+
initializer(currentValue.codeValue.escapeForJavaPoet())
7575
}.build()
7676
)
7777
}

gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/generator/KotlinCodeGenerator.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@ import com.highcapable.gropify.plugin.config.proxy.GropifyConfig
2727
import com.highcapable.gropify.plugin.generator.config.GenerateConfig
2828
import com.highcapable.gropify.plugin.generator.config.SourceCodeSpec
2929
import com.highcapable.gropify.plugin.generator.extension.PropertyMap
30+
import com.highcapable.gropify.plugin.generator.extension.escapeForKotlinPoet
3031
import com.highcapable.gropify.plugin.generator.extension.toOptimize
31-
import com.highcapable.gropify.plugin.generator.extension.toPoetGenerationContent
3232
import com.highcapable.gropify.plugin.generator.extension.toUnderscores
3333
import com.highcapable.gropify.utils.extension.firstNumberToLetter
3434
import com.squareup.kotlinpoet.FileSpec
@@ -72,7 +72,7 @@ internal class KotlinCodeGenerator {
7272

7373
if (config.isRestrictedAccessEnabled) addModifiers(KModifier.INTERNAL)
7474
addModifiers(KModifier.CONST)
75-
initializer(currentValue.codeValue.toPoetGenerationContent())
75+
initializer(currentValue.codeValue.escapeForKotlinPoet())
7676
}.build())
7777
}
7878
}.build())

gropify-gradle-plugin/src/main/kotlin/com/highcapable/gropify/plugin/generator/extension/Generator.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,15 @@ internal fun PropertyOptimizeMap.toUnderscores(): PropertyOptimizeMap {
7070
}
7171

7272
/**
73-
* Escape percentage signs and replace spaces to middle dot for code generation.
73+
* Escape percentage signs for Javapoet code generation.
7474
* @receiver [String]
7575
* @return [String]
7676
*/
77-
internal fun String.toPoetGenerationContent() = replace(" ", "·").replace("%", "%%")
77+
internal fun String.escapeForJavaPoet() = replace("$", "$$")
78+
79+
/**
80+
* Escape percentage signs and replace spaces to middle dot for Kotlinpoet code generation.
81+
* @receiver [String]
82+
* @return [String]
83+
*/
84+
internal fun String.escapeForKotlinPoet() = replace("%", "%%").replace("$", "\\$").replace(" ", "·")

0 commit comments

Comments
 (0)