From b722e75d9e5c12b0e5a696c765c77d4e0466039f Mon Sep 17 00:00:00 2001 From: Nate Weaver Date: Sun, 26 Apr 2020 11:10:59 -0500 Subject: [PATCH] Use a nested function for superscript/subscript features --- .../NSAttributedString+NetNewsWire.swift | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Shared/Extensions/NSAttributedString+NetNewsWire.swift b/Shared/Extensions/NSAttributedString+NetNewsWire.swift index 0b907fc35..e417cb9ee 100644 --- a/Shared/Extensions/NSAttributedString+NetNewsWire.swift +++ b/Shared/Extensions/NSAttributedString+NetNewsWire.swift @@ -291,22 +291,23 @@ extension NSAttributedString { descriptor = descriptor.withSymbolicTraits(symbolicTraits) } - if styles.contains(.superscript) { + func verticalPositionFeature(forSuperscript: Bool) -> [FontDescriptor.FeatureKey: Any] { #if canImport(AppKit) - let features: [FontDescriptor.FeatureKey: Any] = [.typeIdentifier: kVerticalPositionType, .selectorIdentifier: kSuperiorsSelector] + let features: [FontDescriptor.FeatureKey: Any] = [.typeIdentifier: kVerticalPositionType, .selectorIdentifier: forSuperscript ? kSuperiorsSelector : kInferiorsSelector] #else - let features: [FontDescriptor.FeatureKey: Any] = [.featureIdentifier: kVerticalPositionType, .typeIdentifier: kSuperiorsSelector] + let features: [FontDescriptor.FeatureKey: Any] = [.featureIdentifier: kVerticalPositionType, .typeIdentifier: forSuperscript ? kSuperiorsSelector : kInferiorsSelector] #endif + return features + } + + if styles.contains(.superscript) { + let features = verticalPositionFeature(forSuperscript: true) let descriptorAttributes: [FontDescriptor.AttributeName: Any] = [.featureSettings: [features]] descriptor = descriptor.addingAttributes(descriptorAttributes) } if styles.contains(.subscript) { - #if canImport(AppKit) - let features: [FontDescriptor.FeatureKey: Any] = [.typeIdentifier: kVerticalPositionType, .selectorIdentifier: kInferiorsSelector] - #else - let features: [FontDescriptor.FeatureKey: Any] = [.featureIdentifier: kVerticalPositionType, .typeIdentifier: kInferiorsSelector] - #endif + let features = verticalPositionFeature(forSuperscript: false) let descriptorAttributes: [FontDescriptor.AttributeName: Any] = [.featureSettings: [features]] descriptor = currentDescriptor.addingAttributes(descriptorAttributes) }