diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java | 4 | ||||
| -rw-r--r-- | src/test/java/org/zwobble/hobgoblin/compiler/util/CasingTests.java | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java b/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java index ef002ba..6519ec5 100644 --- a/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java +++ b/src/main/java/org/zwobble/hobgoblin/compiler/util/Casing.java @@ -18,7 +18,7 @@ public class Casing { for (var characterIndex = 0; characterIndex < lowerCamelCase.length(); characterIndex++) { var character = lowerCamelCase.charAt(characterIndex); - if (Character.isUpperCase(character) || Character.isDigit(character)) { + if (Character.isUpperCase(character) || (Character.isDigit(character) && !Character.isDigit(lowerCamelCase.charAt(characterIndex - 1)))) { upperCase.append('_'); upperCase.append(character); } else { @@ -34,7 +34,7 @@ public class Casing { for (var characterIndex = 0; characterIndex < lowerCamelCase.length(); characterIndex++) { var character = lowerCamelCase.charAt(characterIndex); - if (Character.isUpperCase(character) || Character.isDigit(character)) { + if (Character.isUpperCase(character) || (Character.isDigit(character) && !Character.isDigit(lowerCamelCase.charAt(characterIndex - 1)))) { snakeCase.append('_'); } snakeCase.append(Character.toLowerCase(character)); diff --git a/src/test/java/org/zwobble/hobgoblin/compiler/util/CasingTests.java b/src/test/java/org/zwobble/hobgoblin/compiler/util/CasingTests.java index 4d8c9c4..4344ac1 100644 --- a/src/test/java/org/zwobble/hobgoblin/compiler/util/CasingTests.java +++ b/src/test/java/org/zwobble/hobgoblin/compiler/util/CasingTests.java @@ -29,6 +29,7 @@ public class CasingTests { "abcDef,ABC_DEF", "abDeFg,AB_DE_FG", "a0,A_0", + "a123,A_123", }) public void lowerCamelCaseToUpperCase(String lowerCamelCase, String expectedUpperCase) { var result = Casing.lowerCamelCaseToUpperCase(lowerCamelCase); @@ -43,6 +44,7 @@ public class CasingTests { "abcDef,abc_def", "abDeFg,ab_de_fg", "a0,a_0", + "a123,a_123", }) public void lowerCamelCaseToSnakeCase(String lowerCamelCase, String expectedUpperCase) { var result = Casing.lowerCamelCaseToSnakeCase(lowerCamelCase); |
