diff --git a/Generator/Generator/Arguments.swift b/Generator/Generator/Arguments.swift index c82c2791a..26679b34d 100644 --- a/Generator/Generator/Arguments.swift +++ b/Generator/Generator/Arguments.swift @@ -83,7 +83,7 @@ func getArgumentDeclaration (_ argument: JGodotArgument, eliminate: String, kind for value in optionType.values { if (defIntValue & value.value) != 0 { - let name = snakeToCamel(value.name.dropPrefix(prefix)).validSwiftName() + let name = snakeToCamel(value.name.dropPrefix(prefix)) if setValues != "" { setValues += ", " } diff --git a/Generator/Generator/Enums.swift b/Generator/Generator/Enums.swift index 695facd09..4368dbd54 100644 --- a/Generator/Generator/Enums.swift +++ b/Generator/Generator/Enums.swift @@ -57,7 +57,7 @@ func generateEnums (_ p: Printer, cdef: JClassInfo?, values: [JGodotGlobalEnumEl p ("self.rawValue = rawValue") } for enumVal in enumDef.values { - let name = snakeToCamel(enumVal.name.dropPrefix(enumCasePrefix)).validSwiftName() + let name = snakeToCamel(enumVal.name.dropPrefix(enumCasePrefix)) if let ed = docEnumToValue [enumVal.name] { doc (p, cdef, ed) } @@ -83,7 +83,7 @@ func generateEnums (_ p: Printer, cdef: JClassInfo?, values: [JGodotGlobalEnumEl continue } } - let name = snakeToCamel(enumVal.name.dropPrefix(enumCasePrefix)).validSwiftName() + let name = snakeToCamel(enumVal.name.dropPrefix(enumCasePrefix)) let prefix: String if used.contains(enumVal.value) { prefix = "// " diff --git a/Generator/Generator/StringOperations.swift b/Generator/Generator/StringOperations.swift index 640cac16b..53a3075c4 100644 --- a/Generator/Generator/StringOperations.swift +++ b/Generator/Generator/StringOperations.swift @@ -88,7 +88,8 @@ extension String { func dropPrefix(_ prefix: String) -> String { guard hasPrefix(prefix) else { return self } guard prefix != self else { return self } - return String(dropFirst(prefix.count)) + let suffix = String(dropFirst(prefix.count)) + return suffix.isValidSwiftName() ? suffix : self } func dropAfterLastUnderscore() -> String? { @@ -98,13 +99,7 @@ extension String { return nil } } - - func validSwiftName() -> String { - if isValidSwiftName() { return self } - - return "_\(self)" - } - + func isValidSwiftName() -> Bool { let pattern = #"\b[a-zA-Z_][a-zA-Z0-9_]*\b"# diff --git a/Generator/Generator/TypeHelpers.swift b/Generator/Generator/TypeHelpers.swift index fec544577..ec0e440fd 100644 --- a/Generator/Generator/TypeHelpers.swift +++ b/Generator/Generator/TypeHelpers.swift @@ -52,7 +52,7 @@ func mapEnumValue (enumDef: String, value: String) -> String? { } if "\(evalue.value)" == value { - let name = snakeToCamel(evalue.name.dropPrefix(enumCasePrefix)).validSwiftName() + let name = snakeToCamel(evalue.name.dropPrefix(enumCasePrefix)) return ".\(escapeSwift (name))" } }