(NS)String // Add some codepoint extensions.

This commit is contained in:
ShikiSuen 2024-02-27 13:24:29 +08:00
parent bd5fdcaa26
commit 55dcdc8ce0
2 changed files with 32 additions and 1 deletions

View File

@ -71,6 +71,18 @@ public extension NSAttributedString {
public extension NSString { public extension NSString {
var localized: String { NSLocalizedString(description, comment: "") } var localized: String { NSLocalizedString(description, comment: "") }
@objc func getCharDescriptions(_: Any? = nil) -> [String] {
(self as String).charDescriptions
}
@objc func getCodePoints(_: Any? = nil) -> [String] {
(self as String).codePoints
}
@objc func getDescriptionAsCodePoints(_: Any? = nil) -> [String] {
(self as String).describedAsCodePoints
}
} }
// MARK: - NSRange Extension // MARK: - NSRange Extension

View File

@ -200,7 +200,7 @@ public extension String {
} }
} }
// MARK: - String CharName Extension // MARK: - String CharName and CodePoint Extension
public extension String { public extension String {
var charDescriptions: [String] { var charDescriptions: [String] {
@ -209,6 +209,25 @@ public extension String {
return String(format: "U+%02X %@", $0.value, theName) return String(format: "U+%02X %@", $0.value, theName)
} }
} }
var codePoints: [String] {
map(\.codePoint)
}
var describedAsCodePoints: [String] {
map {
"\($0) (\($0.codePoint))"
}
}
}
// MARK: - Character Codepoint
public extension Character {
var codePoint: String {
guard let value = unicodeScalars.first?.value else { return "U+NULL" }
return String(format: "U+%02X", value)
}
} }
// MARK: - String Ellipsis Extension // MARK: - String Ellipsis Extension