From b32041b62259126eddce36b0d4fa1250a9a2eab6 Mon Sep 17 00:00:00 2001 From: anupamchaubey Date: Thu, 21 May 2026 23:36:54 +0530 Subject: [PATCH 1/2] fix(scala-http4s): preserve underscores in enum names --- .../codegen/languages/AbstractScalaCodegen.java | 15 +++++++++++++++ .../languages/ScalaHttp4sClientCodegen.java | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java index d453d882e57b..1e406de886ed 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java @@ -551,6 +551,21 @@ protected String formatIdentifier(String name, boolean capitalized) { return escapeReservedWord(identifier); } + protected String formatEnumIdentifier(String name) { + if (specialCharReplacements.containsKey(name)) { + name = specialCharReplacements.get(name); + } + + String sanitized = sanitizeName(name); + + // Preserve already-valid Scala identifiers + if (sanitized.matches("[A-Za-z_][A-Za-z0-9_]*") + && !isReservedWord(sanitized)) { + return sanitized; + } + + return escapeReservedWord(sanitized); + } protected String stripPackageName(String input) { if (!stripPackageName || StringUtils.isEmpty(input) || input.lastIndexOf(".") < 0) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java index 04e1086dc85d..eee786fedbe4 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java @@ -628,7 +628,7 @@ public String toDefaultValue(Schema p) { private class EnumEntryLambda extends CustomLambda { @Override public String formatFragment(String fragment) { - return formatIdentifier(fragment, true); + return formatEnumIdentifier(fragment); } } From 763037093921cd266f9b0560b3c7e50c37aa865c Mon Sep 17 00:00:00 2001 From: anupamchaubey Date: Fri, 22 May 2026 11:43:32 +0530 Subject: [PATCH 2/2] Fix scala-http4s enum underscore formatting --- .../codegen/languages/AbstractScalaCodegen.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java index 1e406de886ed..35e01fd719a6 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractScalaCodegen.java @@ -558,13 +558,13 @@ protected String formatEnumIdentifier(String name) { String sanitized = sanitizeName(name); - // Preserve already-valid Scala identifiers - if (sanitized.matches("[A-Za-z_][A-Za-z0-9_]*") + // Preserve SCREAMING_SNAKE_CASE enum values + if (sanitized.matches("^[A-Z][A-Z0-9_]*$") && !isReservedWord(sanitized)) { return sanitized; } - return escapeReservedWord(sanitized); + return formatIdentifier(sanitized, true); } protected String stripPackageName(String input) {