Skip to content

Commit

Permalink
Better approach to invalid names.
Browse files Browse the repository at this point in the history
Instead of prefixing with "_" when the name would be invalid, lets keep the original prefix.
  • Loading branch information
PadraigK committed Oct 2, 2023
1 parent 71e43de commit 95e8661
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 12 deletions.
2 changes: 1 addition & 1 deletion Generator/Generator/Arguments.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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 += ", "
}
Expand Down
4 changes: 2 additions & 2 deletions Generator/Generator/Enums.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand All @@ -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 = "// "
Expand Down
11 changes: 3 additions & 8 deletions Generator/Generator/StringOperations.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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? {
Expand All @@ -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"#

Expand Down
2 changes: 1 addition & 1 deletion Generator/Generator/TypeHelpers.swift
Original file line number Diff line number Diff line change
Expand Up @@ -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))"
}
}
Expand Down

0 comments on commit 95e8661

Please sign in to comment.