| 123456789101112131415161718192021 |
- import Foundation
- extension String {
- func applyingGrammarCorrections(_ issues: [GrammarIssue]) -> String {
- guard !issues.isEmpty else { return self }
- var result = self
- var replacements: [(Range<String.Index>, String)] = []
- for issue in issues {
- guard let range = result.range(of: issue.original) else { continue }
- replacements.append((range, issue.suggestion))
- }
- for (range, suggestion) in replacements.sorted(by: { $0.0.lowerBound > $1.0.lowerBound }) {
- result.replaceSubrange(range, with: suggestion)
- }
- return result
- }
- }
|