diff options
Diffstat (limited to 'platform/darwin/src/NSString+MGLAdditions.m')
-rw-r--r-- | platform/darwin/src/NSString+MGLAdditions.m | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/platform/darwin/src/NSString+MGLAdditions.m b/platform/darwin/src/NSString+MGLAdditions.m deleted file mode 100644 index d452d56678..0000000000 --- a/platform/darwin/src/NSString+MGLAdditions.m +++ /dev/null @@ -1,82 +0,0 @@ -#import "NSString+MGLAdditions.h" - -#if TARGET_OS_OSX - #import <Availability.h> -#endif - -@implementation NSString (MGLAdditions) - -- (NSRange)mgl_wholeRange { - return NSMakeRange(0, self.length); -} - -- (nullable NSString *)mgl_stringOrNilIfEmpty { - return self.length ? self : nil; -} - -- (NSString *)mgl_titleCasedStringWithLocale:(NSLocale *)locale { - NSMutableString *string = self.mutableCopy; - NSOrthography *orthography; - if (@available(iOS 11.0, macOS 10.13.0, *)) { - orthography = [NSOrthography defaultOrthographyForLanguage:locale.localeIdentifier]; - } - [string enumerateLinguisticTagsInRange:string.mgl_wholeRange scheme:NSLinguisticTagSchemeLexicalClass options:0 orthography:orthography usingBlock:^(NSString * _Nonnull tag, NSRange tokenRange, NSRange sentenceRange, BOOL * _Nonnull stop) { - NSString *word = [string substringWithRange:tokenRange]; - if (word.length > 3 - || !([tag isEqualToString:NSLinguisticTagConjunction] - || [tag isEqualToString:NSLinguisticTagPreposition] - || [tag isEqualToString:NSLinguisticTagDeterminer] - || [tag isEqualToString:NSLinguisticTagParticle] - || [tag isEqualToString:NSLinguisticTagClassifier])) { - unichar firstLetter = [[word capitalizedStringWithLocale:locale] characterAtIndex:0]; - NSString *suffix = [word substringFromIndex:1]; - if (!([word hasPrefix:@"i"] && suffix.length - && [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[suffix characterAtIndex:0]])) { - word = [NSString stringWithFormat:@"%C%@", firstLetter, suffix]; - } - } - [string replaceCharactersInRange:tokenRange withString:word]; - }]; - return string; -} - -- (NSString *)mgl_stringByTransliteratingIntoScript:(NSString *)script { - NSMutableString *string = self.mutableCopy; - NSStringTransform transform; - if ([script isEqualToString:@"Latn"]) { - transform = NSStringTransformToLatin; - } else if ([script isEqualToString:@"Hans"]) { - transform = @"Hant-Hans"; - } else if ([script isEqualToString:@"Hant"]) { - transform = @"Hans-Hant"; - } else if ([script isEqualToString:@"Cyrl"]) { - transform = @"Any-Latin; Latin-Cyrillic"; - } else if ([script isEqualToString:@"Arab"]) { - transform = @"Any-Latin; Latin-Arabic"; - } else if ([script isEqualToString:@"Jpan"]) { - transform = @"Any-Latin; Latin-Katakana"; - } else if ([script isEqualToString:@"Kore"]) { - transform = @"Any-Latin; Latin-Hangul"; - } - return transform ? [string stringByApplyingTransform:transform reverse:NO] : string; -} - -@end - -@implementation NSAttributedString (MGLAdditions) - -- (NSRange)mgl_wholeRange { - return NSMakeRange(0, self.length); -} - -- (NSAttributedString *)mgl_attributedStringByTrimmingCharactersInSet:(NSCharacterSet *)set { - NSScanner *scanner = [NSScanner scannerWithString:self.string]; - scanner.charactersToBeSkipped = nil; - NSString *prefix; - [scanner scanCharactersFromSet:set intoString:&prefix]; - - NSString *trimmedString = [self.string stringByTrimmingCharactersInSet:set]; - return [self attributedSubstringFromRange:NSMakeRange(prefix.length, trimmedString.length)]; -} - -@end |