Skip to content

Added templates and new params for generation#92

Open
timofeyreedtz wants to merge 6 commits into
feature/improvmentsfrom
feature/logic_for_java
Open

Added templates and new params for generation#92
timofeyreedtz wants to merge 6 commits into
feature/improvmentsfrom
feature/logic_for_java

Conversation

@timofeyreedtz

Copy link
Copy Markdown

No description provided.

@timofeyreedtz timofeyreedtz changed the base branch from master to feature/improvments February 14, 2025 09:49
Comment on lines +156 to +187
do {
let pattern = "(?<!^)(?=[A-Z])"
let regex = try NSRegularExpression(pattern: pattern, options: [])

let matches = regex.matches(in: self, options: [], range: NSRange(location: 0, length: self.utf16.count))

var splitIndices = [String.Index]()
for match in matches {
let range = match.range
if let index = Range(range, in: self)?.lowerBound {
splitIndices.append(index)
}
}

var parts = [String]()
var previousIndex = self.startIndex

for index in splitIndices {
let part = String(self[previousIndex..<index])
parts.append(part)
previousIndex = index
}

parts.append(String(self[previousIndex...]))

let nonEmptyParts = parts.filter { !$0.isEmpty }
return nonEmptyParts.last ?? ""

} catch {
print("Regex error: \(error)")
return ""
}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Кажется, можно сильно упростить

Suggested change
do {
let pattern = "(?<!^)(?=[A-Z])"
let regex = try NSRegularExpression(pattern: pattern, options: [])
let matches = regex.matches(in: self, options: [], range: NSRange(location: 0, length: self.utf16.count))
var splitIndices = [String.Index]()
for match in matches {
let range = match.range
if let index = Range(range, in: self)?.lowerBound {
splitIndices.append(index)
}
}
var parts = [String]()
var previousIndex = self.startIndex
for index in splitIndices {
let part = String(self[previousIndex..<index])
parts.append(part)
previousIndex = index
}
parts.append(String(self[previousIndex...]))
let nonEmptyParts = parts.filter { !$0.isEmpty }
return nonEmptyParts.last ?? ""
} catch {
print("Regex error: \(error)")
return ""
}
guard let lastUppercaseIndex = self.lastIndex(where: \.isUppercase) else {
return self
}
return String(self[lastUppercaseIndex...])

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants