Skip to content

Commit 312a355

Browse files
authored
fix(abg): strip off all non-Java identifier chars when building identifiers (#1926)
1 parent 43113d1 commit 312a355

File tree

3 files changed

+6
-2
lines changed

3 files changed

+6
-2
lines changed

action-binding-generator/src/main/kotlin/io/github/typesafegithub/workflows/actionbindinggenerator/utils/TextUtils.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@ package io.github.typesafegithub.workflows.actionbindinggenerator.utils
22

33
import java.util.Locale
44

5+
private val normalizationSplitRegex = """[^\p{javaJavaIdentifierStart}\p{javaJavaIdentifierPart}&&[^_]]++""".toRegex()
6+
57
internal fun String.toPascalCase(): String {
68
val hasOnlyUppercases = none { it in 'a'..'z' }
79
val normalizedString = if (hasOnlyUppercases) lowercase() else this
810
return normalizedString
911
.replace("+", "-plus-")
10-
.split("-", "_", " ", ".", "/")
12+
.split(normalizationSplitRegex)
1113
.joinToString("") {
1214
it.replaceFirstChar { if (it.isLowerCase()) it.titlecase(Locale.getDefault()) else it.toString() }
1315
}

action-binding-generator/src/test/kotlin/io/github/typesafegithub/workflows/actionbindinggenerator/bindingsfromunittests/ActionWithAllTypesOfInputs.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,8 @@ public data class ActionWithAllTypesOfInputs private constructor(
307307

308308
public object Baz123 : ActionWithAllTypesOfInputs.Bin("baz123")
309309

310+
public object Bam123 : ActionWithAllTypesOfInputs.Bin("bam:123")
311+
310312
public class Custom(
311313
customStringValue: String,
312314
) : ActionWithAllTypesOfInputs.Bin(customStringValue)

action-binding-generator/src/test/kotlin/io/github/typesafegithub/workflows/actionbindinggenerator/generation/GenerationTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ class GenerationTest :
9696
"bin-kin" to BooleanTyping,
9797
"int-pint" to IntegerTyping,
9898
"flo-pint" to FloatTyping,
99-
"fin-bin" to EnumTyping("Bin", listOf("foo", "boo-bar", "baz123")),
99+
"fin-bin" to EnumTyping("Bin", listOf("foo", "boo-bar", "baz123", "bam:123")),
100100
"goo-zen" to IntegerWithSpecialValueTyping("Zen", mapOf("Special1" to 3, "Special2" to -1)),
101101
"bah-enum" to EnumTyping(null, listOf("helloworld"), listOf("HelloWorld")),
102102
"list-strings" to ListOfTypings(",", StringTyping),

0 commit comments

Comments
 (0)