From 0797667b2510f6fd45b9845f2d29c0c1e31da877 Mon Sep 17 00:00:00 2001 From: Thibaut Schmitt Date: Mon, 31 Oct 2022 16:21:12 +0100 Subject: [PATCH 1/3] =?UTF-8?q?G=C3=A9n=C3=A9ration=20de=20composant=20Swi?= =?UTF-8?q?ftUI:=20Color=20et=20Image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Generated/ColorYolo+GenAllScript.swift | 21 +++++++ .../Colors/Generated/UIColor+Color.swift | 21 ------- .../Generated/UIColor+ColorGenAllScript.swift | 21 ------- .../Generated/UIColor+ColorSampleApp.swift | 21 ------- .../Generated/UIColor+GenAllScript.swift | 21 ------- ...r.swift => UIColorYolo+GenAllScript.swift} | 6 +- .../Generated/FontYolo+GenAllScript.swift | 61 ++++++++++++++++++ SampleFiles/Fonts/Generated/R2Font+Font.swift | 62 ------------------ .../Generated/R2Font+FontGenAllScript.swift | 62 ------------------ SampleFiles/Fonts/Generated/UIFont+Font.swift | 63 ------------------- .../Generated/UIFont+FontGenAllScript.swift | 62 ------------------ .../Fonts/Generated/UIFont+GenAllScript.swift | 61 ------------------ .../Generated/UIFontYolo+GenAllScript.swift | 61 ++++++++++++++++++ .../UIFontoptions.+FontGenAllScript.swift | 62 ------------------ .../Generated/UIImage+GenAllScript.swift | 25 ++++---- .../Generated/UIImage+ImageGenAllScript.swift | 32 ---------- .../Generated/MyString+TargetSuffix.swift | 37 ----------- .../Generated/String+GenAllScript.swift | 31 +++++---- .../Generated/String+Placeholders.swift | 57 ----------------- .../Generated/String+TargetSuffix.swift | 37 ----------- .../Generated/StringTest+Placeholders.swift | 57 ----------------- .../en-us.lproj/sampleStrings.strings | 2 +- .../Generated/en.lproj/sampleStrings.strings | 2 +- .../Generated/fr.lproj/sampleStrings.strings | 2 +- .../Tags/Generated/Tags+GenAllScript.swift | 11 ++-- .../Tags/Generated/Tags+TagGenAllScript.swift | 23 ------- SampleFiles/genAllRessources.sh | 21 ++++--- 27 files changed, 192 insertions(+), 750 deletions(-) create mode 100644 SampleFiles/Colors/Generated/ColorYolo+GenAllScript.swift delete mode 100644 SampleFiles/Colors/Generated/UIColor+Color.swift delete mode 100644 SampleFiles/Colors/Generated/UIColor+ColorGenAllScript.swift delete mode 100644 SampleFiles/Colors/Generated/UIColor+ColorSampleApp.swift delete mode 100644 SampleFiles/Colors/Generated/UIColor+GenAllScript.swift rename SampleFiles/Colors/Generated/{R2Color+Color.swift => UIColorYolo+GenAllScript.swift} (72%) create mode 100644 SampleFiles/Fonts/Generated/FontYolo+GenAllScript.swift delete mode 100644 SampleFiles/Fonts/Generated/R2Font+Font.swift delete mode 100644 SampleFiles/Fonts/Generated/R2Font+FontGenAllScript.swift delete mode 100644 SampleFiles/Fonts/Generated/UIFont+Font.swift delete mode 100644 SampleFiles/Fonts/Generated/UIFont+FontGenAllScript.swift delete mode 100644 SampleFiles/Fonts/Generated/UIFont+GenAllScript.swift create mode 100644 SampleFiles/Fonts/Generated/UIFontYolo+GenAllScript.swift delete mode 100644 SampleFiles/Fonts/Generated/UIFontoptions.+FontGenAllScript.swift delete mode 100644 SampleFiles/Images/Generated/UIImage+ImageGenAllScript.swift delete mode 100644 SampleFiles/Strings/Generated/MyString+TargetSuffix.swift delete mode 100644 SampleFiles/Strings/Generated/String+Placeholders.swift delete mode 100644 SampleFiles/Strings/Generated/String+TargetSuffix.swift delete mode 100644 SampleFiles/Strings/Generated/StringTest+Placeholders.swift delete mode 100644 SampleFiles/Tags/Generated/Tags+TagGenAllScript.swift diff --git a/SampleFiles/Colors/Generated/ColorYolo+GenAllScript.swift b/SampleFiles/Colors/Generated/ColorYolo+GenAllScript.swift new file mode 100644 index 0000000..adf6ece --- /dev/null +++ b/SampleFiles/Colors/Generated/ColorYolo+GenAllScript.swift @@ -0,0 +1,21 @@ +// Generated by ResgenSwift.Color 1.0 + +import SwiftUI + +extension ColorYolo { + + /// Color red is #FF0000 (light) or #FF0000 (dark)" + var red: Color { + Color("red") + } + + /// Color green_alpha_50 is #A000FF00 (light) or #A000FF00 (dark)" + var green_alpha_50: Color { + Color("green_alpha_50") + } + + /// Color blue_light_dark is #0000FF (light) or #0000AA (dark)" + var blue_light_dark: Color { + Color("blue_light_dark") + } +} \ No newline at end of file diff --git a/SampleFiles/Colors/Generated/UIColor+Color.swift b/SampleFiles/Colors/Generated/UIColor+Color.swift deleted file mode 100644 index 76d0ed0..0000000 --- a/SampleFiles/Colors/Generated/UIColor+Color.swift +++ /dev/null @@ -1,21 +0,0 @@ -// Generated from ColorToolCore at 2021-12-20 15:16:18 +0000 - -import UIKit - -extension UIColor { - - /// Color red is #FF0000 (light) or #FF0000 (dark)" - static var red: UIColor { - UIColor(named: "red")! - } - - /// Color green_alpha_50 is #A000FF00 (light) or #A000FF00 (dark)" - static var green_alpha_50: UIColor { - UIColor(named: "green_alpha_50")! - } - - /// Color blue_light_dark is #0000FF (light) or #0000AA (dark)" - static var blue_light_dark: UIColor { - UIColor(named: "blue_light_dark")! - } -} \ No newline at end of file diff --git a/SampleFiles/Colors/Generated/UIColor+ColorGenAllScript.swift b/SampleFiles/Colors/Generated/UIColor+ColorGenAllScript.swift deleted file mode 100644 index 23713af..0000000 --- a/SampleFiles/Colors/Generated/UIColor+ColorGenAllScript.swift +++ /dev/null @@ -1,21 +0,0 @@ -// Generated from ColorToolCore at 2022-02-14 09:30:19 +0000 - -import UIKit - -extension UIColor { - - /// Color red is #FF0000 (light) or #FF0000 (dark)" - static var red: UIColor { - UIColor(named: "red")! - } - - /// Color green_alpha_50 is #A000FF00 (light) or #A000FF00 (dark)" - static var green_alpha_50: UIColor { - UIColor(named: "green_alpha_50")! - } - - /// Color blue_light_dark is #0000FF (light) or #0000AA (dark)" - static var blue_light_dark: UIColor { - UIColor(named: "blue_light_dark")! - } -} \ No newline at end of file diff --git a/SampleFiles/Colors/Generated/UIColor+ColorSampleApp.swift b/SampleFiles/Colors/Generated/UIColor+ColorSampleApp.swift deleted file mode 100644 index 473f1c9..0000000 --- a/SampleFiles/Colors/Generated/UIColor+ColorSampleApp.swift +++ /dev/null @@ -1,21 +0,0 @@ -// Generated from ColorToolCore at 2021-12-20 15:17:10 +0000 - -import UIKit - -extension UIColor { - - /// Color red is #FF0000 (light) or #FF0000 (dark)" - static var red: UIColor { - UIColor(named: "red")! - } - - /// Color green_alpha_50 is #A000FF00 (light) or #A000FF00 (dark)" - static var green_alpha_50: UIColor { - UIColor(named: "green_alpha_50")! - } - - /// Color blue_light_dark is #0000FF (light) or #0000AA (dark)" - static var blue_light_dark: UIColor { - UIColor(named: "blue_light_dark")! - } -} \ No newline at end of file diff --git a/SampleFiles/Colors/Generated/UIColor+GenAllScript.swift b/SampleFiles/Colors/Generated/UIColor+GenAllScript.swift deleted file mode 100644 index b86c911..0000000 --- a/SampleFiles/Colors/Generated/UIColor+GenAllScript.swift +++ /dev/null @@ -1,21 +0,0 @@ -// Generated by ResgenSwift.ColorTool 1.0.0 - -import UIKit - -extension UIColor { - - /// Color red is #FF0000 (light) or #FF0000 (dark)" - static var red: UIColor { - UIColor(named: "red")! - } - - /// Color green_alpha_50 is #A000FF00 (light) or #A000FF00 (dark)" - static var green_alpha_50: UIColor { - UIColor(named: "green_alpha_50")! - } - - /// Color blue_light_dark is #0000FF (light) or #0000AA (dark)" - static var blue_light_dark: UIColor { - UIColor(named: "blue_light_dark")! - } -} \ No newline at end of file diff --git a/SampleFiles/Colors/Generated/R2Color+Color.swift b/SampleFiles/Colors/Generated/UIColorYolo+GenAllScript.swift similarity index 72% rename from SampleFiles/Colors/Generated/R2Color+Color.swift rename to SampleFiles/Colors/Generated/UIColorYolo+GenAllScript.swift index 1d10e7b..5fedca1 100644 --- a/SampleFiles/Colors/Generated/R2Color+Color.swift +++ b/SampleFiles/Colors/Generated/UIColorYolo+GenAllScript.swift @@ -1,8 +1,8 @@ -// Generated from ColorToolCore at 2021-12-20 15:34:55 +0000 +// Generated by ResgenSwift.Color 1.0 import UIKit -extension R2Color { +extension UIColorYolo { /// Color red is #FF0000 (light) or #FF0000 (dark)" @objc var red: UIColor { @@ -14,7 +14,7 @@ extension R2Color { UIColor(named: "green_alpha_50")! } - /// Color blue_light_dark is #0000FF (light) or #0000FF (dark)" + /// Color blue_light_dark is #0000FF (light) or #0000AA (dark)" @objc var blue_light_dark: UIColor { UIColor(named: "blue_light_dark")! } diff --git a/SampleFiles/Fonts/Generated/FontYolo+GenAllScript.swift b/SampleFiles/Fonts/Generated/FontYolo+GenAllScript.swift new file mode 100644 index 0000000..de0aa9c --- /dev/null +++ b/SampleFiles/Fonts/Generated/FontYolo+GenAllScript.swift @@ -0,0 +1,61 @@ +// Generated by ResgenSwift.Fonts 1.0 + +import SwiftUI + +extension FontYolo { + + enum FontName: String { + case LatoItalic = "Lato-Italic" + case LatoLightItalic = "Lato-LightItalic" + case LatoHairline = "Lato-Hairline" + case LatoBold = "Lato-Bold" + case LatoBlack = "Lato-Black" + case LatoRegular = "Lato-Regular" + case LatoBlackItalic = "Lato-BlackItalic" + case LatoBoldItalic = "Lato-BoldItalic" + case LatoLight = "Lato-Light" + case LatoHairlineItalic = "Lato-HairlineItalic" + } + + // MARK: - Getter + + func LatoItalic(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoItalic.rawValue, size: size) + } + + func LatoLightItalic(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoLightItalic.rawValue, size: size) + } + + func LatoHairline(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoHairline.rawValue, size: size) + } + + func LatoBold(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoBold.rawValue, size: size) + } + + func LatoBlack(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoBlack.rawValue, size: size) + } + + func LatoRegular(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoRegular.rawValue, size: size) + } + + func LatoBlackItalic(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoBlackItalic.rawValue, size: size) + } + + func LatoBoldItalic(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoBoldItalic.rawValue, size: size) + } + + func LatoLight(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoLight.rawValue, size: size) + } + + func LatoHairlineItalic(withSize size: CGFloat) -> Font { + Font.custom(FontName.LatoHairlineItalic.rawValue, size: size) + } +} \ No newline at end of file diff --git a/SampleFiles/Fonts/Generated/R2Font+Font.swift b/SampleFiles/Fonts/Generated/R2Font+Font.swift deleted file mode 100644 index 59b1101..0000000 --- a/SampleFiles/Fonts/Generated/R2Font+Font.swift +++ /dev/null @@ -1,62 +0,0 @@ -// Generated from FontToolCore - -import UIKit - -extension R2Font { - - enum FontName: String { - case LatoItalic = "Lato-Italic" - case LatoLightItalic = "Lato-LightItalic" - case LatoHairline = "Lato-Hairline" - case LatoBold = "Lato-Bold" - case LatoBlack = "Lato-Black" - case LatoRegular = "Lato-Regular" - case LatoBlackItalic = "Lato-BlackItalic" - case LatoBoldItalic = "Lato-BoldItalic" - case LatoLight = "Lato-Light" - case LatoHairlineItalic = "Lato-HairlineItalic" - } - - // MARK: - Getter - - func LatoItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoItalic.rawValue, size: size)! - } - - func LatoLightItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoLightItalic.rawValue, size: size)! - } - - func LatoHairline(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoHairline.rawValue, size: size)! - } - - func LatoBold(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoBold.rawValue, size: size)! - } - - func LatoBlack(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoBlack.rawValue, size: size)! - } - - func LatoRegular(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoRegular.rawValue, size: size)! - } - - func LatoBlackItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoBlackItalic.rawValue, size: size)! - } - - func LatoBoldItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoBoldItalic.rawValue, size: size)! - } - - func LatoLight(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoLight.rawValue, size: size)! - } - - func LatoHairlineItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoHairlineItalic.rawValue, size: size)! - } - -} \ No newline at end of file diff --git a/SampleFiles/Fonts/Generated/R2Font+FontGenAllScript.swift b/SampleFiles/Fonts/Generated/R2Font+FontGenAllScript.swift deleted file mode 100644 index 59b1101..0000000 --- a/SampleFiles/Fonts/Generated/R2Font+FontGenAllScript.swift +++ /dev/null @@ -1,62 +0,0 @@ -// Generated from FontToolCore - -import UIKit - -extension R2Font { - - enum FontName: String { - case LatoItalic = "Lato-Italic" - case LatoLightItalic = "Lato-LightItalic" - case LatoHairline = "Lato-Hairline" - case LatoBold = "Lato-Bold" - case LatoBlack = "Lato-Black" - case LatoRegular = "Lato-Regular" - case LatoBlackItalic = "Lato-BlackItalic" - case LatoBoldItalic = "Lato-BoldItalic" - case LatoLight = "Lato-Light" - case LatoHairlineItalic = "Lato-HairlineItalic" - } - - // MARK: - Getter - - func LatoItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoItalic.rawValue, size: size)! - } - - func LatoLightItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoLightItalic.rawValue, size: size)! - } - - func LatoHairline(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoHairline.rawValue, size: size)! - } - - func LatoBold(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoBold.rawValue, size: size)! - } - - func LatoBlack(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoBlack.rawValue, size: size)! - } - - func LatoRegular(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoRegular.rawValue, size: size)! - } - - func LatoBlackItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoBlackItalic.rawValue, size: size)! - } - - func LatoBoldItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoBoldItalic.rawValue, size: size)! - } - - func LatoLight(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoLight.rawValue, size: size)! - } - - func LatoHairlineItalic(withSize size: CGFloat) -> UIFont { - UIFont(name: FontName.LatoHairlineItalic.rawValue, size: size)! - } - -} \ No newline at end of file diff --git a/SampleFiles/Fonts/Generated/UIFont+Font.swift b/SampleFiles/Fonts/Generated/UIFont+Font.swift deleted file mode 100644 index 627da99..0000000 --- a/SampleFiles/Fonts/Generated/UIFont+Font.swift +++ /dev/null @@ -1,63 +0,0 @@ -// Lato/Lato-Italic.ttf Lato/Lato-LightItalic.ttf Lato/Lato-Thin.ttf Lato/Lato-Bold.ttf Lato/Lato-Black.ttf Lato/Lato-Regular.ttf Lato/Lato-BlackItalic.ttf Lato/Lato-BoldItalic.ttf Lato/Lato-Light.ttf Lato/Lato-ThinItalic.ttf -// Generated from FontToolCore - -import UIKit - -extension UIFont { - - enum FontName: String { - case LatoItalic = "Lato-Italic" - case LatoLightItalic = "Lato-LightItalic" - case LatoHairline = "Lato-Hairline" - case LatoBold = "Lato-Bold" - case LatoBlack = "Lato-Black" - case LatoRegular = "Lato-Regular" - case LatoBlackItalic = "Lato-BlackItalic" - case LatoBoldItalic = "Lato-BoldItalic" - case LatoLight = "Lato-Light" - case LatoHairlineItalic = "Lato-HairlineItalic" - } - - // MARK: - Getter - - static let LatoItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoItalic.rawValue, size: size)! - } - - static let LatoLightItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoLightItalic.rawValue, size: size)! - } - - static let LatoHairline: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoHairline.rawValue, size: size)! - } - - static let LatoBold: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBold.rawValue, size: size)! - } - - static let LatoBlack: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBlack.rawValue, size: size)! - } - - static let LatoRegular: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoRegular.rawValue, size: size)! - } - - static let LatoBlackItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBlackItalic.rawValue, size: size)! - } - - static let LatoBoldItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBoldItalic.rawValue, size: size)! - } - - static let LatoLight: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoLight.rawValue, size: size)! - } - - static let LatoHairlineItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoHairlineItalic.rawValue, size: size)! - } - -} \ No newline at end of file diff --git a/SampleFiles/Fonts/Generated/UIFont+FontGenAllScript.swift b/SampleFiles/Fonts/Generated/UIFont+FontGenAllScript.swift deleted file mode 100644 index 398823b..0000000 --- a/SampleFiles/Fonts/Generated/UIFont+FontGenAllScript.swift +++ /dev/null @@ -1,62 +0,0 @@ -// Generated from FontToolCore - -import UIKit - -extension UIFont { - - enum FontName: String { - case LatoItalic = "Lato-Italic" - case LatoLightItalic = "Lato-LightItalic" - case LatoHairline = "Lato-Hairline" - case LatoBold = "Lato-Bold" - case LatoBlack = "Lato-Black" - case LatoRegular = "Lato-Regular" - case LatoBlackItalic = "Lato-BlackItalic" - case LatoBoldItalic = "Lato-BoldItalic" - case LatoLight = "Lato-Light" - case LatoHairlineItalic = "Lato-HairlineItalic" - } - - // MARK: - Getter - - static let LatoItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoItalic.rawValue, size: size)! - } - - static let LatoLightItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoLightItalic.rawValue, size: size)! - } - - static let LatoHairline: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoHairline.rawValue, size: size)! - } - - static let LatoBold: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBold.rawValue, size: size)! - } - - static let LatoBlack: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBlack.rawValue, size: size)! - } - - static let LatoRegular: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoRegular.rawValue, size: size)! - } - - static let LatoBlackItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBlackItalic.rawValue, size: size)! - } - - static let LatoBoldItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBoldItalic.rawValue, size: size)! - } - - static let LatoLight: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoLight.rawValue, size: size)! - } - - static let LatoHairlineItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoHairlineItalic.rawValue, size: size)! - } - -} \ No newline at end of file diff --git a/SampleFiles/Fonts/Generated/UIFont+GenAllScript.swift b/SampleFiles/Fonts/Generated/UIFont+GenAllScript.swift deleted file mode 100644 index 8ea97fa..0000000 --- a/SampleFiles/Fonts/Generated/UIFont+GenAllScript.swift +++ /dev/null @@ -1,61 +0,0 @@ -// Generated by ResgenSwift.FontTool 1.0.0 - -import UIKit - -extension UIFont { - - enum FontName: String { - case LatoItalic = "Lato-Italic" - case LatoLightItalic = "Lato-LightItalic" - case LatoHairline = "Lato-Hairline" - case LatoBold = "Lato-Bold" - case LatoBlack = "Lato-Black" - case LatoRegular = "Lato-Regular" - case LatoBlackItalic = "Lato-BlackItalic" - case LatoBoldItalic = "Lato-BoldItalic" - case LatoLight = "Lato-Light" - case LatoHairlineItalic = "Lato-HairlineItalic" - } - - // MARK: - Getter - - static let LatoItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoItalic.rawValue, size: size)! - } - - static let LatoLightItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoLightItalic.rawValue, size: size)! - } - - static let LatoHairline: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoHairline.rawValue, size: size)! - } - - static let LatoBold: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBold.rawValue, size: size)! - } - - static let LatoBlack: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBlack.rawValue, size: size)! - } - - static let LatoRegular: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoRegular.rawValue, size: size)! - } - - static let LatoBlackItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBlackItalic.rawValue, size: size)! - } - - static let LatoBoldItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBoldItalic.rawValue, size: size)! - } - - static let LatoLight: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoLight.rawValue, size: size)! - } - - static let LatoHairlineItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoHairlineItalic.rawValue, size: size)! - } -} \ No newline at end of file diff --git a/SampleFiles/Fonts/Generated/UIFontYolo+GenAllScript.swift b/SampleFiles/Fonts/Generated/UIFontYolo+GenAllScript.swift new file mode 100644 index 0000000..5ba0759 --- /dev/null +++ b/SampleFiles/Fonts/Generated/UIFontYolo+GenAllScript.swift @@ -0,0 +1,61 @@ +// Generated by ResgenSwift.Fonts 1.0 + +import UIKit + +extension UIFontYolo { + + enum FontName: String { + case LatoItalic = "Lato-Italic" + case LatoLightItalic = "Lato-LightItalic" + case LatoHairline = "Lato-Hairline" + case LatoBold = "Lato-Bold" + case LatoBlack = "Lato-Black" + case LatoRegular = "Lato-Regular" + case LatoBlackItalic = "Lato-BlackItalic" + case LatoBoldItalic = "Lato-BoldItalic" + case LatoLight = "Lato-Light" + case LatoHairlineItalic = "Lato-HairlineItalic" + } + + // MARK: - Getter + + func LatoItalic(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoItalic.rawValue, size: size)! + } + + func LatoLightItalic(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoLightItalic.rawValue, size: size)! + } + + func LatoHairline(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoHairline.rawValue, size: size)! + } + + func LatoBold(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoBold.rawValue, size: size)! + } + + func LatoBlack(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoBlack.rawValue, size: size)! + } + + func LatoRegular(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoRegular.rawValue, size: size)! + } + + func LatoBlackItalic(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoBlackItalic.rawValue, size: size)! + } + + func LatoBoldItalic(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoBoldItalic.rawValue, size: size)! + } + + func LatoLight(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoLight.rawValue, size: size)! + } + + func LatoHairlineItalic(withSize size: CGFloat) -> UIFont { + UIFont(name: FontName.LatoHairlineItalic.rawValue, size: size)! + } +} \ No newline at end of file diff --git a/SampleFiles/Fonts/Generated/UIFontoptions.+FontGenAllScript.swift b/SampleFiles/Fonts/Generated/UIFontoptions.+FontGenAllScript.swift deleted file mode 100644 index 398823b..0000000 --- a/SampleFiles/Fonts/Generated/UIFontoptions.+FontGenAllScript.swift +++ /dev/null @@ -1,62 +0,0 @@ -// Generated from FontToolCore - -import UIKit - -extension UIFont { - - enum FontName: String { - case LatoItalic = "Lato-Italic" - case LatoLightItalic = "Lato-LightItalic" - case LatoHairline = "Lato-Hairline" - case LatoBold = "Lato-Bold" - case LatoBlack = "Lato-Black" - case LatoRegular = "Lato-Regular" - case LatoBlackItalic = "Lato-BlackItalic" - case LatoBoldItalic = "Lato-BoldItalic" - case LatoLight = "Lato-Light" - case LatoHairlineItalic = "Lato-HairlineItalic" - } - - // MARK: - Getter - - static let LatoItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoItalic.rawValue, size: size)! - } - - static let LatoLightItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoLightItalic.rawValue, size: size)! - } - - static let LatoHairline: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoHairline.rawValue, size: size)! - } - - static let LatoBold: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBold.rawValue, size: size)! - } - - static let LatoBlack: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBlack.rawValue, size: size)! - } - - static let LatoRegular: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoRegular.rawValue, size: size)! - } - - static let LatoBlackItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBlackItalic.rawValue, size: size)! - } - - static let LatoBoldItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoBoldItalic.rawValue, size: size)! - } - - static let LatoLight: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoLight.rawValue, size: size)! - } - - static let LatoHairlineItalic: ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.LatoHairlineItalic.rawValue, size: size)! - } - -} \ No newline at end of file diff --git a/SampleFiles/Images/Generated/UIImage+GenAllScript.swift b/SampleFiles/Images/Generated/UIImage+GenAllScript.swift index 0d1bf02..20dc6ea 100644 --- a/SampleFiles/Images/Generated/UIImage+GenAllScript.swift +++ b/SampleFiles/Images/Generated/UIImage+GenAllScript.swift @@ -1,32 +1,31 @@ -// Generated by ResgenSwift.Imagium 1.0.0 +// Generated by ResgenSwift.Images 1.0 // Images from sampleImages import UIKit extension UIImage { - static var article_notification_pull_detail: UIImage { + var article_notification_pull_detail: UIImage { UIImage(named: "article_notification_pull_detail")! } - - static var article_notification_pull: UIImage { + + var article_notification_pull: UIImage { UIImage(named: "article_notification_pull")! } - - static var new_article: UIImage { + + var new_article: UIImage { UIImage(named: "new_article")! } - - static var welcome_background: UIImage { + + var welcome_background: UIImage { UIImage(named: "welcome_background")! } - - static var article_trash: UIImage { + + var article_trash: UIImage { UIImage(named: "article_trash")! } - - static var ic_close_article: UIImage { + + var ic_close_article: UIImage { UIImage(named: "ic_close_article")! } - } \ No newline at end of file diff --git a/SampleFiles/Images/Generated/UIImage+ImageGenAllScript.swift b/SampleFiles/Images/Generated/UIImage+ImageGenAllScript.swift deleted file mode 100644 index ca3752e..0000000 --- a/SampleFiles/Images/Generated/UIImage+ImageGenAllScript.swift +++ /dev/null @@ -1,32 +0,0 @@ -// Generated from Imagium at 2022-02-14 09:30:23 +0000 -// Images from sampleImages - -import UIKit - -extension UIImage { - - static var article_notification_pull_detail: UIImage { - UIImage(named: "article_notification_pull_detail")! - } - - static var article_notification_pull: UIImage { - UIImage(named: "article_notification_pull")! - } - - static var new_article: UIImage { - UIImage(named: "new_article")! - } - - static var welcome_background: UIImage { - UIImage(named: "welcome_background")! - } - - static var article_trash: UIImage { - UIImage(named: "article_trash")! - } - - static var ic_close_article: UIImage { - UIImage(named: "ic_close_article")! - } - -} \ No newline at end of file diff --git a/SampleFiles/Strings/Generated/MyString+TargetSuffix.swift b/SampleFiles/Strings/Generated/MyString+TargetSuffix.swift deleted file mode 100644 index 38795d5..0000000 --- a/SampleFiles/Strings/Generated/MyString+TargetSuffix.swift +++ /dev/null @@ -1,37 +0,0 @@ -// Generated from StringToolCore at 2022-01-10 08:27:11 +0000 - -import UIKit - -fileprivate let kStringsFileName = "sampleStrings" - -extension MyString { - - // MARK: - Webservice - - /// Translation in en : - /// en - var param_lang: String { - NSLocalizedString("param_lang", tableName: kStringsFileName, bundle: Bundle.main, value: "en", comment: "") - } - - // MARK: - Generic - - /// Translation in en : - /// Back - var generic_back: String { - NSLocalizedString("generic_back", tableName: kStringsFileName, bundle: Bundle.main, value: "Back", comment: "") - } - - /// Translation in en : - /// Loading data... - var generic_loading_data: String { - NSLocalizedString("generic_loading_data", tableName: kStringsFileName, bundle: Bundle.main, value: "Loading data...", comment: "") - } - - /// Translation in en : - /// Welcome %@ ! - var generic_welcome_firstname_format: String { - NSLocalizedString("generic_welcome_firstname_format", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome %@ !", comment: "") - } - -} \ No newline at end of file diff --git a/SampleFiles/Strings/Generated/String+GenAllScript.swift b/SampleFiles/Strings/Generated/String+GenAllScript.swift index 98cb8ef..c5decf4 100644 --- a/SampleFiles/Strings/Generated/String+GenAllScript.swift +++ b/SampleFiles/Strings/Generated/String+GenAllScript.swift @@ -1,4 +1,4 @@ -// Generated by ResgenSwift.Strings.Stringium 1.0.0 +// Generated by ResgenSwift.Strings.Stringium 1.0 import UIKit @@ -6,60 +6,59 @@ fileprivate let kStringsFileName = "sampleStrings" extension String { - // MARK: - Webservice + // MARK: - Webservice /// Translation in en : /// en - static var param_lang: String { + var param_lang: String { NSLocalizedString("param_lang", tableName: kStringsFileName, bundle: Bundle.main, value: "en", comment: "") } - // MARK: - Generic + // MARK: - Generic /// Translation in en : /// Back - static var generic_back: String { + var generic_back: String { NSLocalizedString("generic_back", tableName: kStringsFileName, bundle: Bundle.main, value: "Back", comment: "") } /// Translation in en : /// Loading data... - static var generic_loading_data: String { + var generic_loading_data: String { NSLocalizedString("generic_loading_data", tableName: kStringsFileName, bundle: Bundle.main, value: "Loading data...", comment: "") } /// Translation in en : /// Welcome \"%@\" ! - static var generic_welcome_firstname_format: String { + var generic_welcome_firstname_format: String { NSLocalizedString("generic_welcome_firstname_format", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome \"%@\" !", comment: "") } /// Translation in en : /// Welcome \"%@\" ! - static func generic_welcome_firstname_format(arg0: String) -> String { - String(format: Self.generic_welcome_firstname_format, arg0) + func generic_welcome_firstname_format(arg0: String) -> String { + String(format: self.generic_welcome_firstname_format, arg0) } - // MARK: - EqualSymbol + // MARK: - EqualSymbol /// Translation in en : /// 1€ = 1 point ! - static var test_equal_symbol: String { + var test_equal_symbol: String { NSLocalizedString("test_equal_symbol", tableName: kStringsFileName, bundle: Bundle.main, value: "1€ = 1 point !", comment: "") } - // MARK: - Placeholders + // MARK: - Placeholders /// Translation in en : /// You %%: %2$@ %1$@ Age: %3$d - static var placeholders_test_one: String { + var placeholders_test_one: String { NSLocalizedString("placeholders_test_one", tableName: kStringsFileName, bundle: Bundle.main, value: "You %%: %2$@ %1$@ Age: %3$d", comment: "") } /// Translation in en : /// You %%: %2$@ %1$@ Age: %3$d - static func placeholders_test_one(arg0: String, arg1: String, arg2: Int) -> String { - String(format: Self.placeholders_test_one, arg0, arg1, arg2) + func placeholders_test_one(arg0: String, arg1: String, arg2: Int) -> String { + String(format: self.placeholders_test_one, arg0, arg1, arg2) } - } \ No newline at end of file diff --git a/SampleFiles/Strings/Generated/String+Placeholders.swift b/SampleFiles/Strings/Generated/String+Placeholders.swift deleted file mode 100644 index 31c8470..0000000 --- a/SampleFiles/Strings/Generated/String+Placeholders.swift +++ /dev/null @@ -1,57 +0,0 @@ -// Generated from Strings-Stringium at 2022-03-07 11:02:15 +0000 - -import UIKit - -fileprivate let kStringsFileName = "sampleStrings" - -extension String { - - // MARK: - Webservice - - /// Translation in en : - /// en - static var param_lang: String { - NSLocalizedString("param_lang", tableName: kStringsFileName, bundle: Bundle.main, value: "en", comment: "") - } - - // MARK: - Generic - - /// Translation in en : - /// Back - static var generic_back: String { - NSLocalizedString("generic_back", tableName: kStringsFileName, bundle: Bundle.main, value: "Back", comment: "") - } - - /// Translation in en : - /// Loading data... - static var generic_loading_data: String { - NSLocalizedString("generic_loading_data", tableName: kStringsFileName, bundle: Bundle.main, value: "Loading data...", comment: "") - } - - /// Translation in en : - /// Welcome \"%@\" ! - static var generic_welcome_firstname_format: String { - NSLocalizedString("generic_welcome_firstname_format", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome \"%@\" !", comment: "") - } - - /// Translation in en : - /// Welcome \"%@\" ! - static func generic_welcome_firstname_format(arg0: String) -> String { - String(format: Self.generic_welcome_firstname_format, arg0) - } - - // MARK: - Placeholders - - /// Translation in en : - /// You %%: %2$@ %1$@ Age: %3$d - static var placeholders_test_one: String { - NSLocalizedString("placeholders_test_one", tableName: kStringsFileName, bundle: Bundle.main, value: "You %%: %2$@ %1$@ Age: %3$d", comment: "") - } - - /// Translation in en : - /// You %%: %2$@ %1$@ Age: %3$d - static func placeholders_test_one(arg0: String, arg1: String, arg2: Int) -> String { - String(format: Self.placeholders_test_one, arg0, arg1, arg2) - } - -} \ No newline at end of file diff --git a/SampleFiles/Strings/Generated/String+TargetSuffix.swift b/SampleFiles/Strings/Generated/String+TargetSuffix.swift deleted file mode 100644 index fcf6786..0000000 --- a/SampleFiles/Strings/Generated/String+TargetSuffix.swift +++ /dev/null @@ -1,37 +0,0 @@ -// Generated from StringToolCore at 2022-01-10 08:39:52 +0000 - -import UIKit - -fileprivate let kStringsFileName = "sampleStrings" - -extension String { - - // MARK: - Webservice - - /// Translation in en : - /// en - static var param_lang: String { - NSLocalizedString("param_lang", tableName: kStringsFileName, bundle: Bundle.main, value: "en", comment: "") - } - - // MARK: - Generic - - /// Translation in en : - /// Back - static var generic_back: String { - NSLocalizedString("generic_back", tableName: kStringsFileName, bundle: Bundle.main, value: "Back", comment: "") - } - - /// Translation in en : - /// Loading data... - static var generic_loading_data: String { - NSLocalizedString("generic_loading_data", tableName: kStringsFileName, bundle: Bundle.main, value: "Loading data...", comment: "") - } - - /// Translation in en : - /// Welcome \"%@\" ! - static var generic_welcome_firstname_format: String { - NSLocalizedString("generic_welcome_firstname_format", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome \"%@\" !", comment: "") - } - -} \ No newline at end of file diff --git a/SampleFiles/Strings/Generated/StringTest+Placeholders.swift b/SampleFiles/Strings/Generated/StringTest+Placeholders.swift deleted file mode 100644 index 327d76d..0000000 --- a/SampleFiles/Strings/Generated/StringTest+Placeholders.swift +++ /dev/null @@ -1,57 +0,0 @@ -// Generated from Strings-Stringium at 2022-03-07 11:00:52 +0000 - -import UIKit - -fileprivate let kStringsFileName = "sampleStrings" - -extension StringTest { - - // MARK: - Webservice - - /// Translation in en : - /// en - var param_lang: String { - NSLocalizedString("param_lang", tableName: kStringsFileName, bundle: Bundle.main, value: "en", comment: "") - } - - // MARK: - Generic - - /// Translation in en : - /// Back - var generic_back: String { - NSLocalizedString("generic_back", tableName: kStringsFileName, bundle: Bundle.main, value: "Back", comment: "") - } - - /// Translation in en : - /// Loading data... - var generic_loading_data: String { - NSLocalizedString("generic_loading_data", tableName: kStringsFileName, bundle: Bundle.main, value: "Loading data...", comment: "") - } - - /// Translation in en : - /// Welcome \"%@\" ! - var generic_welcome_firstname_format: String { - NSLocalizedString("generic_welcome_firstname_format", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome \"%@\" !", comment: "") - } - - /// Translation in en : - /// Welcome \"%@\" ! - func generic_welcome_firstname_format(arg0: String) -> String { - String(format: self.generic_welcome_firstname_format, arg0) - } - - // MARK: - Placeholders - - /// Translation in en : - /// You %%: %2$@ %1$@ Age: %3$d - var placeholders_test_one: String { - NSLocalizedString("placeholders_test_one", tableName: kStringsFileName, bundle: Bundle.main, value: "You %%: %2$@ %1$@ Age: %3$d", comment: "") - } - - /// Translation in en : - /// You %%: %2$@ %1$@ Age: %3$d - func placeholders_test_one(arg0: String, arg1: String, arg2: Int) -> String { - String(format: self.placeholders_test_one, arg0, arg1, arg2) - } - -} \ No newline at end of file diff --git a/SampleFiles/Strings/Generated/en-us.lproj/sampleStrings.strings b/SampleFiles/Strings/Generated/en-us.lproj/sampleStrings.strings index be59eba..2f6f597 100644 --- a/SampleFiles/Strings/Generated/en-us.lproj/sampleStrings.strings +++ b/SampleFiles/Strings/Generated/en-us.lproj/sampleStrings.strings @@ -1,6 +1,6 @@ /** * Apple Strings File - * Generated by ResgenSwift 1.0.0 + * Generated by ResgenSwift 1.0 * Language: en-us */ diff --git a/SampleFiles/Strings/Generated/en.lproj/sampleStrings.strings b/SampleFiles/Strings/Generated/en.lproj/sampleStrings.strings index a0e6800..f92618a 100644 --- a/SampleFiles/Strings/Generated/en.lproj/sampleStrings.strings +++ b/SampleFiles/Strings/Generated/en.lproj/sampleStrings.strings @@ -1,6 +1,6 @@ /** * Apple Strings File - * Generated by ResgenSwift 1.0.0 + * Generated by ResgenSwift 1.0 * Language: en */ diff --git a/SampleFiles/Strings/Generated/fr.lproj/sampleStrings.strings b/SampleFiles/Strings/Generated/fr.lproj/sampleStrings.strings index 06df8fb..cfc520a 100644 --- a/SampleFiles/Strings/Generated/fr.lproj/sampleStrings.strings +++ b/SampleFiles/Strings/Generated/fr.lproj/sampleStrings.strings @@ -1,6 +1,6 @@ /** * Apple Strings File - * Generated by ResgenSwift 1.0.0 + * Generated by ResgenSwift 1.0 * Language: fr */ diff --git a/SampleFiles/Tags/Generated/Tags+GenAllScript.swift b/SampleFiles/Tags/Generated/Tags+GenAllScript.swift index 01fc191..f53f115 100644 --- a/SampleFiles/Tags/Generated/Tags+GenAllScript.swift +++ b/SampleFiles/Tags/Generated/Tags+GenAllScript.swift @@ -1,23 +1,20 @@ -// Generated by ResgenSwift.Strings.Tags 1.0.0 - -// typelias Tags = String +// Generated by ResgenSwift.Strings.Tags 1.0 import UIKit extension Tags { - // MARK: - ScreenTag + // MARK: - ScreenTag /// Translation in ium : /// Ecran un - static var screen_one: String { + var screen_one: String { "Ecran un" } /// Translation in ium : /// Ecran deux - static var screen_two: String { + var screen_two: String { "Ecran deux" } - } \ No newline at end of file diff --git a/SampleFiles/Tags/Generated/Tags+TagGenAllScript.swift b/SampleFiles/Tags/Generated/Tags+TagGenAllScript.swift deleted file mode 100644 index 0881d01..0000000 --- a/SampleFiles/Tags/Generated/Tags+TagGenAllScript.swift +++ /dev/null @@ -1,23 +0,0 @@ -// Generated from Strings-Tags at 2022-02-14 09:30:20 +0000 - -// typelias Tags = String - -import UIKit - -extension Tags { - - // MARK: - ScreenTag - - /// Translation in ium : - /// Ecran un - static var screen_one: String { - "Ecran un" - } - - /// Translation in ium : - /// Ecran deux - static var screen_two: String { - "Ecran deux" - } - -} \ No newline at end of file diff --git a/SampleFiles/genAllRessources.sh b/SampleFiles/genAllRessources.sh index 2c94a16..64d1add 100755 --- a/SampleFiles/genAllRessources.sh +++ b/SampleFiles/genAllRessources.sh @@ -3,25 +3,28 @@ FORCE_FLAG="$1" # Font -swift run -c release FontTool $FORCE_FLAG "./Fonts/sampleFontsAll.txt" \ +swift run -c release ResgenSwift fonts $FORCE_FLAG "./Fonts/sampleFontsAll.txt" \ --extension-output-path "./Fonts/Generated" \ - --extension-name "UIFont" \ - --extension-suffix "GenAllScript" + --extension-name "UIFontYolo" \ + --extension-name-swift-ui "FontYolo" \ + --extension-suffix "GenAllScript" \ + #--infoPlistPaths "./Fonts/Generated/test.plist ./Fonts/Generated/test2.plist" echo "\n-------------------------\n" # Color -swift run -c release ColorTool $FORCE_FLAG "./Colors/sampleColors1.txt" \ +swift run -c release ResgenSwift colors $FORCE_FLAG "./Colors/sampleColors1.txt" \ --style all \ --xcassets-path "./Colors/colors.xcassets" \ --extension-output-path "./Colors/Generated/" \ - --extension-name "UIColor" \ + --extension-name "UIColorYolo" \ + --extension-name-swift-ui "ColorYolo" \ --extension-suffix "GenAllScript" echo "\n-------------------------\n" # Twine -swift run -c release Strings twine $FORCE_FLAG "./Twine/sampleStrings.txt" \ +swift run -c release ResgenSwift strings twine $FORCE_FLAG "./Twine/sampleStrings.txt" \ --output-path "./Twine/Generated" \ --langs "fr en en-us" \ --default-lang "en" \ @@ -30,7 +33,7 @@ swift run -c release Strings twine $FORCE_FLAG "./Twine/sampleStrings.txt" \ echo "\n-------------------------\n" # Strings -swift run -c release Strings stringium $FORCE_FLAG "./Strings/sampleStrings.txt" \ +swift run -c release ResgenSwift strings stringium $FORCE_FLAG "./Strings/sampleStrings.txt" \ --output-path "./Strings/Generated" \ --langs "fr en en-us" \ --default-lang "en" \ @@ -41,7 +44,7 @@ swift run -c release Strings stringium $FORCE_FLAG "./Strings/sampleStrings.txt" echo "\n-------------------------\n" # Tags -swift run -c release Strings tags $FORCE_FLAG "./Tags/sampleTags.txt" \ +swift run -c release ResgenSwift strings tags $FORCE_FLAG "./Tags/sampleTags.txt" \ --lang "ium" \ --extension-output-path "./Tags/Generated" \ --extension-name "Tags" \ @@ -50,7 +53,7 @@ swift run -c release Strings tags $FORCE_FLAG "./Tags/sampleTags.txt" \ echo "\n-------------------------\n" # Images -swift run -c release Imagium $FORCE_FLAG "./Images/sampleImages.txt" \ +swift run -c release ResgenSwift images $FORCE_FLAG "./Images/sampleImages.txt" \ --xcassets-path "./Images/imagium.xcassets" \ --extension-output-path "./Images/Generated" \ --extension-name "UIImage" \ -- 2.39.5 From 4f7d7e18b138343a07cbb0bb47213818678ced6b Mon Sep 17 00:00:00 2001 From: Thibaut Schmitt Date: Mon, 31 Oct 2022 16:21:32 +0100 Subject: [PATCH 2/3] =?UTF-8?q?G=C3=A9n=C3=A9ration=20de=20composant=20Swi?= =?UTF-8?q?ftUI:=20Color=20et=20Image?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Sources/ResgenSwift/Colors/Colors.swift | 15 ++++ .../ResgenSwift/Colors/ColorsToolError.swift | 4 + .../Colors/ColorsToolOptions.swift | 18 ++++ .../Generator/ColorExtensionGenerator.swift | 56 ++++++++++++ .../Colors/Model/ParsedColor.swift | 22 +++++ Sources/ResgenSwift/Fonts/FontOptions.swift | 19 ++++ Sources/ResgenSwift/Fonts/Fonts.swift | 13 +++ .../ResgenSwift/Fonts/FontsToolError.swift | 4 + .../Generator/FontToolContentGenerator.swift | 86 ++++++++++++++++--- .../ResgenSwift/Fonts/Model/FontName.swift | 16 ++++ .../Generate/Model/ConfigurationFile.swift | 4 + ...ColorsConfiguration+ShellCommandable.swift | 6 ++ .../FontsConfiguration+ShellCommandable.swift | 6 ++ 13 files changed, 258 insertions(+), 11 deletions(-) diff --git a/Sources/ResgenSwift/Colors/Colors.swift b/Sources/ResgenSwift/Colors/Colors.swift index b0cc2c8..64d8957 100644 --- a/Sources/ResgenSwift/Colors/Colors.swift +++ b/Sources/ResgenSwift/Colors/Colors.swift @@ -22,6 +22,7 @@ struct Colors: ParsableCommand { static let toolName = "Color" static let defaultExtensionName = "UIColor" + static let defaultExtensionNameSUI = "Color" static let assetsColorsFolderName = "Colors" // MARK: - Command options @@ -56,6 +57,13 @@ struct Colors: ParsableCommand { staticVar: options.staticMembers, extensionName: options.extensionName, extensionFilePath: options.extensionFilePath) + + // Generate extension + ColorExtensionGenerator.writeSUIExtensionFile(colors: parsedColors, + staticVar: options.staticMembers, + extensionName: options.extensionNameSwiftUI, + extensionFilePath: options.extensionFilePathSwiftUI) + // -> Time: 0.0010340213775634766 seconds print("[\(Self.toolName)] Colors generated") @@ -80,6 +88,13 @@ struct Colors: ParsableCommand { Colors.exit(withError: error) } + // Extension for UIKit and SwiftUI should have different name + guard options.extensionName != options.extensionNameSwiftUI else { + let error = ColorsToolError.extensionNamesCollision(options.extensionName) + print(error.localizedDescription) + Colors.exit(withError: error) + } + // Check if needed to regenerate guard GeneratorChecker.shouldGenerate(force: options.forceGeneration, inputFilePath: options.inputFile, diff --git a/Sources/ResgenSwift/Colors/ColorsToolError.swift b/Sources/ResgenSwift/Colors/ColorsToolError.swift index a4310e5..0397fa7 100644 --- a/Sources/ResgenSwift/Colors/ColorsToolError.swift +++ b/Sources/ResgenSwift/Colors/ColorsToolError.swift @@ -8,6 +8,7 @@ import Foundation enum ColorsToolError: Error { + case extensionNamesCollision(String) case badFormat(String) case writeAsset(String) case createAssetFolder(String) @@ -18,6 +19,9 @@ enum ColorsToolError: Error { var description: String { switch self { + case .extensionNamesCollision(let extensionName): + return "error:[\(Fonts.toolName)] Error on extension names, extension name and SwiftUI extension name should be different (\(extensionName) is used on both)" + case .badFormat(let info): return "error:[\(Colors.toolName)] Bad line format: \(info). Accepted format are: colorName=\"#RGB/#ARGB\"; colorName \"#RGB/#ARGB\"; colorName \"#RGB/#ARGB\" \"#RGB/#ARGB\"" diff --git a/Sources/ResgenSwift/Colors/ColorsToolOptions.swift b/Sources/ResgenSwift/Colors/ColorsToolOptions.swift index 9f5ae80..00b1ca7 100644 --- a/Sources/ResgenSwift/Colors/ColorsToolOptions.swift +++ b/Sources/ResgenSwift/Colors/ColorsToolOptions.swift @@ -30,6 +30,9 @@ struct ColorsToolOptions: ParsableArguments { @Option(help: "Extension name. If not specified, it will generate an UIColor extension. Using default extension name will generate static property.") var extensionName: String = Colors.defaultExtensionName + @Option(help: "SwiftUI Extension name. If not specified, it will generate an Color extension. Using default extension name will generate static property.") + var extensionNameSwiftUI: String = Colors.defaultExtensionNameSUI + @Option(help: "Extension suffix. Ex: MyApp, it will generate {extensionName}+ColorsMyApp.swift") var extensionSuffix: String? } @@ -41,6 +44,8 @@ extension ColorsToolOptions { ColorStyle(rawValue: style) ?? .all } + // MARK: - UIKit + var extensionFileName: String { if let extensionSuffix = extensionSuffix { return "\(extensionName)+\(extensionSuffix).swift" @@ -51,4 +56,17 @@ extension ColorsToolOptions { var extensionFilePath: String { "\(extensionOutputPath)/\(extensionFileName)" } + + // MARK: - SwiftUI + + var extensionFileNameSwiftUI: String { + if let extensionSuffix = extensionSuffix { + return "\(extensionNameSwiftUI)+\(extensionSuffix).swift" + } + return "\(extensionNameSwiftUI).swift" + } + + var extensionFilePathSwiftUI: String { + "\(extensionOutputPath)/\(extensionFileNameSwiftUI)" + } } diff --git a/Sources/ResgenSwift/Colors/Generator/ColorExtensionGenerator.swift b/Sources/ResgenSwift/Colors/Generator/ColorExtensionGenerator.swift index 6221896..da936b2 100644 --- a/Sources/ResgenSwift/Colors/Generator/ColorExtensionGenerator.swift +++ b/Sources/ResgenSwift/Colors/Generator/ColorExtensionGenerator.swift @@ -13,6 +13,8 @@ struct ColorExtensionGenerator { let colors: [ParsedColor] let extensionClassname: String + // MARK: - UIKit + static func writeExtensionFile(colors: [ParsedColor], staticVar: Bool, extensionName: String, extensionFilePath: String) { // Create extension content let extensionContent = Self.getExtensionContent(colors: colors, @@ -64,4 +66,58 @@ struct ColorExtensionGenerator { } .joined(separator: "\n\n") } + + // MARK: - SwiftUI + + static func writeSUIExtensionFile(colors: [ParsedColor], staticVar: Bool, extensionName: String, extensionFilePath: String) { + // Create extension content + let extensionContent = Self.getSUIExtensionContent(colors: colors, + staticVar: staticVar, + extensionName: extensionName) + + // Write content + let extensionFilePathURL = URL(fileURLWithPath: extensionFilePath) + do { + try extensionContent.write(to: extensionFilePathURL, atomically: false, encoding: .utf8) + } catch (let error) { + let error = ColorsToolError.writeExtension(extensionFilePath, error.localizedDescription) + print(error.localizedDescription) + Colors.exit(withError: error) + } + } + + static func getSUIExtensionContent(colors: [ParsedColor], staticVar: Bool, extensionName: String) -> String { + [ + Self.getSUIHeader(extensionClassname: extensionName), + Self.getSUIProperties(for: colors, withStaticVar: staticVar), + Self.getSUIFooter() + ] + .joined(separator: "\n") + } + + private static func getSUIHeader(extensionClassname: String) -> String { + """ + // Generated by ResgenSwift.\(Colors.toolName) \(ResgenSwiftVersion) + + import SwiftUI + + extension \(extensionClassname) {\n + """ + } + + private static func getSUIFooter() -> String { + """ + } + """ + } + + private static func getSUIProperties(for colors: [ParsedColor], withStaticVar staticVar: Bool) -> String { + colors.map { + if staticVar { + return $0.getSUIColorStaticProperty() + } + return $0.getSUIColorProperty() + } + .joined(separator: "\n\n") + } } diff --git a/Sources/ResgenSwift/Colors/Model/ParsedColor.swift b/Sources/ResgenSwift/Colors/Model/ParsedColor.swift index 2bfe56c..2a8d2ee 100644 --- a/Sources/ResgenSwift/Colors/Model/ParsedColor.swift +++ b/Sources/ResgenSwift/Colors/Model/ParsedColor.swift @@ -72,6 +72,8 @@ struct ParsedColor { """ } + // MARK: - UIKit + func getColorProperty() -> String { """ /// Color \(name) is \(light) (light) or \(dark) (dark)" @@ -89,4 +91,24 @@ struct ParsedColor { } """ } + + // MARK: - SwiftUI + + func getSUIColorProperty() -> String { + """ + /// Color \(name) is \(light) (light) or \(dark) (dark)" + var \(name): Color { + Color("\(name)") + } + """ + } + + func getSUIColorStaticProperty() -> String { + """ + /// Color \(name) is \(light) (light) or \(dark) (dark)" + static var \(name): Color { + Color("\(name)")! + } + """ + } } diff --git a/Sources/ResgenSwift/Fonts/FontOptions.swift b/Sources/ResgenSwift/Fonts/FontOptions.swift index 983f00d..7ce99d5 100644 --- a/Sources/ResgenSwift/Fonts/FontOptions.swift +++ b/Sources/ResgenSwift/Fonts/FontOptions.swift @@ -24,6 +24,9 @@ struct FontsOptions: ParsableArguments { @Option(help: "Extension name. If not specified, it will generate an UIFont extension. Using default extension name will generate static property.") var extensionName: String = Fonts.defaultExtensionName + @Option(help: "Extension name. If not specified, it will generate an Font extension. Using default extension name will generate static property.") + var extensionNameSwiftUI: String = Fonts.defaultExtensionNameSUI + @Option(help: "Extension suffix. Ex: MyApp, it will generate {extensionName}+FontsMyApp.swift") var extensionSuffix: String = "" } @@ -31,6 +34,9 @@ struct FontsOptions: ParsableArguments { // MARK: - Computed var extension FontsOptions { + + // MARK: - UIKit + var extensionFileName: String { if extensionSuffix.isEmpty == false { return "\(extensionName)+\(extensionSuffix).swift" @@ -41,4 +47,17 @@ extension FontsOptions { var extensionFilePath: String { "\(extensionOutputPath)/\(extensionFileName)" } + + // MARK: - SwiftUI + + var extensionFileNameSwiftUI: String { + if extensionSuffix.isEmpty == false { + return "\(extensionNameSwiftUI)+\(extensionSuffix).swift" + } + return "\(extensionNameSwiftUI).swift" + } + + var extensionFilePathSwiftUI: String { + "\(extensionOutputPath)/\(extensionFileNameSwiftUI)" + } } diff --git a/Sources/ResgenSwift/Fonts/Fonts.swift b/Sources/ResgenSwift/Fonts/Fonts.swift index 3fa963d..0ac79a4 100644 --- a/Sources/ResgenSwift/Fonts/Fonts.swift +++ b/Sources/ResgenSwift/Fonts/Fonts.swift @@ -22,6 +22,7 @@ struct Fonts: ParsableCommand { static let toolName = "Fonts" static let defaultExtensionName = "UIFont" + static let defaultExtensionNameSUI = "Font" // MARK: - Command Options @@ -52,6 +53,11 @@ struct Fonts: ParsableCommand { extensionName: options.extensionName, extensionFilePath: options.extensionFilePath) + FontExtensionGenerator.writeSUIExtensionFile(fontsNames: fontsNames, + staticVar: options.staticMembers, + extensionName: options.extensionNameSwiftUI, + extensionFilePath: options.extensionFilePathSwiftUI) + print("Info.plist information:") print("\(FontPlistGenerator.generatePlistUIAppsFontContent(for: fontsNames))") @@ -70,6 +76,13 @@ struct Fonts: ParsableCommand { Fonts.exit(withError: error) } + // Extension for UIKit and SwiftUI should have different name + guard options.extensionName != options.extensionNameSwiftUI else { + let error = FontsToolError.extensionNamesCollision(options.extensionName) + print(error.localizedDescription) + Fonts.exit(withError: error) + } + // Check if needed to regenerate guard GeneratorChecker.shouldGenerate(force: options.forceGeneration, inputFilePath: options.inputFile, diff --git a/Sources/ResgenSwift/Fonts/FontsToolError.swift b/Sources/ResgenSwift/Fonts/FontsToolError.swift index e979ca6..30a8a22 100644 --- a/Sources/ResgenSwift/Fonts/FontsToolError.swift +++ b/Sources/ResgenSwift/Fonts/FontsToolError.swift @@ -8,6 +8,7 @@ import Foundation enum FontsToolError: Error { + case extensionNamesCollision(String) case fcScan(String, Int32, String?) case inputFolderNotFound(String) case fileNotExists(String) @@ -15,6 +16,9 @@ enum FontsToolError: Error { var localizedDescription: String { switch self { + case .extensionNamesCollision(let extensionName): + return "error:[\(Fonts.toolName)] Error on extension names, extension name and SwiftUI extension name should be different (\(extensionName) is used on both)" + case .fcScan(let path, let code, let output): return "error:[\(Fonts.toolName)] Error while getting fontName (fc-scan --format %{postscriptname} \(path). fc-scan exit with \(code) and output is: \(output ?? "no output")" diff --git a/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift b/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift index 992e55d..b716d22 100644 --- a/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift +++ b/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift @@ -9,6 +9,19 @@ import Foundation import ToolCore class FontExtensionGenerator { + + private static func getFontNameEnum(fontsNames: [String]) -> String { + var enumDefinition = " enum FontName: String {\n" + + fontsNames.forEach { + enumDefinition += " case \($0.fontNameSanitize) = \"\($0)\"\n" + } + enumDefinition += " }\n" + + return enumDefinition + } + + // MARK: - UIKit static func writeExtensionFile(fontsNames: [String], staticVar: Bool, extensionName: String, extensionFilePath: String) { // Create extension content @@ -47,17 +60,6 @@ class FontExtensionGenerator { """ } - private static func getFontNameEnum(fontsNames: [String]) -> String { - var enumDefinition = " enum FontName: String {\n" - - fontsNames.forEach { - enumDefinition += " case \($0.fontNameSanitize) = \"\($0)\"\n" - } - enumDefinition += " }\n" - - return enumDefinition - } - private static func getFontMethods(fontsNames: [FontName], staticVar: Bool) -> String { let pragma = " // MARK: - Getter" @@ -80,4 +82,66 @@ class FontExtensionGenerator { } """ } + + // MARK: - SwiftUI + + static func writeSUIExtensionFile(fontsNames: [String], staticVar: Bool, extensionName: String, extensionFilePath: String) { + // Create extension content + let extensionContent = Self.getSUIExtensionContent(fontsNames: fontsNames, + staticVar: staticVar, + extensionName: extensionName) + + // Write content + let extensionFilePathURL = URL(fileURLWithPath: extensionFilePath) + do { + try extensionContent.write(to: extensionFilePathURL, atomically: false, encoding: .utf8) + } catch (let error) { + let error = FontsToolError.writeExtension(extensionFilePath, error.localizedDescription) + print(error.localizedDescription) + Fonts.exit(withError: error) + } + } + + static func getSUIExtensionContent(fontsNames: [String], staticVar: Bool, extensionName: String) -> String { + [ + Self.getSUIHeader(extensionClassname: extensionName), + Self.getFontNameEnum(fontsNames: fontsNames), + Self.getSUIFontMethods(fontsNames: fontsNames, staticVar: staticVar), + Self.getSUIFooter() + ] + .joined(separator: "\n") + } + + private static func getSUIHeader(extensionClassname: String) -> String { + """ + // Generated by ResgenSwift.\(Fonts.toolName) \(ResgenSwiftVersion) + + import SwiftUI + + extension \(extensionClassname) {\n + """ + } + + private static func getSUIFontMethods(fontsNames: [FontName], staticVar: Bool) -> String { + let pragma = " // MARK: - Getter" + + var propertiesOrMethods: [String] = fontsNames + .unique() + .map { + if staticVar { + return $0.suiStaticProperty + } else { + return $0.suiMethod + } + } + + propertiesOrMethods.insert(pragma, at: 0) + return propertiesOrMethods.joined(separator: "\n\n") + } + + private static func getSUIFooter() -> String { + """ + } + """ + } } diff --git a/Sources/ResgenSwift/Fonts/Model/FontName.swift b/Sources/ResgenSwift/Fonts/Model/FontName.swift index 7667a07..22ac1da 100644 --- a/Sources/ResgenSwift/Fonts/Model/FontName.swift +++ b/Sources/ResgenSwift/Fonts/Model/FontName.swift @@ -29,4 +29,20 @@ extension FontName { } """ } + + var suiMethod: String { + """ + func \(fontNameSanitize)(withSize size: CGFloat) -> Font { + Font.custom(FontName.\(fontNameSanitize).rawValue, size: size) + } + """ + } + + var suiStaticProperty: String { + """ + static let \(fontNameSanitize): ((_ size: CGFloat) -> Font) = { size in + Font.custom(FontName.\(fontNameSanitize).rawValue, size: size) + } + """ + } } diff --git a/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift b/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift index 7ba457f..0601b14 100644 --- a/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift +++ b/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift @@ -45,6 +45,7 @@ struct ColorsConfiguration: Codable, CustomDebugStringConvertible { let xcassetsPath: String let extensionOutputPath: String let extensionName: String? + let extensionNameSwiftUI: String? let extensionSuffix: String? private let staticMembers: Bool? @@ -63,6 +64,7 @@ struct ColorsConfiguration: Codable, CustomDebugStringConvertible { - Xcassets path: \(xcassetsPath) - Extension output path: \(extensionOutputPath) - Extension name: \(extensionName ?? "-") + - Extension name SwiftUI: \(extensionNameSwiftUI ?? "-") - Extension suffix: \(extensionSuffix ?? "-") """ } @@ -72,6 +74,7 @@ struct FontsConfiguration: Codable, CustomDebugStringConvertible { let inputFile: String let extensionOutputPath: String let extensionName: String? + let extensionNameSwiftUI: String? let extensionSuffix: String? private let staticMembers: Bool? @@ -88,6 +91,7 @@ struct FontsConfiguration: Codable, CustomDebugStringConvertible { - Input file: \(inputFile) - Extension output path: \(extensionOutputPath) - Extension name: \(extensionName ?? "-") + - Extension name SwiftUI: \(extensionNameSwiftUI ?? "-") - Extension suffix: \(extensionSuffix ?? "-") """ } diff --git a/Sources/ResgenSwift/Generate/Runnable/ColorsConfiguration+ShellCommandable.swift b/Sources/ResgenSwift/Generate/Runnable/ColorsConfiguration+ShellCommandable.swift index 49639b0..9f810de 100644 --- a/Sources/ResgenSwift/Generate/Runnable/ColorsConfiguration+ShellCommandable.swift +++ b/Sources/ResgenSwift/Generate/Runnable/ColorsConfiguration+ShellCommandable.swift @@ -33,6 +33,12 @@ extension ColorsConfiguration: Runnable { extensionName ] } + if let extensionNameSwiftUI = extensionNameSwiftUI { + args += [ + "--extension-name-swift-ui", + extensionNameSwiftUI + ] + } if let extensionSuffix = extensionSuffix { args += [ "--extension-suffix", diff --git a/Sources/ResgenSwift/Generate/Runnable/FontsConfiguration+ShellCommandable.swift b/Sources/ResgenSwift/Generate/Runnable/FontsConfiguration+ShellCommandable.swift index 4ef8aa2..d39d222 100644 --- a/Sources/ResgenSwift/Generate/Runnable/FontsConfiguration+ShellCommandable.swift +++ b/Sources/ResgenSwift/Generate/Runnable/FontsConfiguration+ShellCommandable.swift @@ -29,6 +29,12 @@ extension FontsConfiguration: Runnable { extensionName ] } + if let extensionNameSwiftUI = extensionNameSwiftUI { + args += [ + "--extension-name-swift-ui", + extensionNameSwiftUI + ] + } if let extensionSuffix = extensionSuffix { args += [ -- 2.39.5 From 085f1ffc3347d3c48af91ffb00a1a9b381ce47d1 Mon Sep 17 00:00:00 2001 From: Thibaut Schmitt Date: Thu, 3 Nov 2022 15:00:27 +0100 Subject: [PATCH 3/3] Refactor SwiftUI extension generation and generation SwiftUI extension for images --- .../Generated/ImageYolo+GenAllScript.swift | 31 ++++++ SampleFiles/genAllRessources.sh | 3 +- Sources/ResgenSwift/Colors/Colors.swift | 10 +- .../Colors/ColorsToolOptions.swift | 4 +- .../Generator/ColorExtensionGenerator.swift | 85 ++++------------- .../Colors/Model/ParsedColor.swift | 43 +++------ Sources/ResgenSwift/Fonts/FontOptions.swift | 4 +- Sources/ResgenSwift/Fonts/Fonts.swift | 12 ++- .../Generator/FontToolContentGenerator.swift | 94 ++++--------------- .../ResgenSwift/Fonts/Model/FontName.swift | 50 +++++----- .../Generate/Model/ConfigurationFile.swift | 2 + ...ImagesConfiguration+ShellCommandable.swift | 6 ++ .../Generator/ImageExtensionGenerator.swift | 39 ++++---- Sources/ResgenSwift/Images/Images.swift | 17 +++- Sources/ResgenSwift/Images/ImagesError.swift | 4 + .../ResgenSwift/Images/ImagesOptions.swift | 23 ++++- .../Images/Model/ParsedImage.swift | 21 ++--- .../Strings/Stringium/StringiumOptions.swift | 2 +- .../ResgenSwift/Strings/Tag/TagsOptions.swift | 2 +- .../Colors/ColorExtensionGeneratorTests.swift | 6 +- .../Colors/ParsedColorTests.swift | 4 +- .../Fonts/FontExtensionGeneratorTests.swift | 3 +- .../Fonts/FontNameTests.swift | 8 +- .../Images/ImageExtensionGeneratorTests.swift | 6 +- .../Images/ParsedImageTests.swift | 4 +- 25 files changed, 219 insertions(+), 264 deletions(-) create mode 100644 SampleFiles/Images/Generated/ImageYolo+GenAllScript.swift diff --git a/SampleFiles/Images/Generated/ImageYolo+GenAllScript.swift b/SampleFiles/Images/Generated/ImageYolo+GenAllScript.swift new file mode 100644 index 0000000..9961903 --- /dev/null +++ b/SampleFiles/Images/Generated/ImageYolo+GenAllScript.swift @@ -0,0 +1,31 @@ +// Generated by ResgenSwift.Images 1.0 +// Images from sampleImages + +import SwiftUI + +extension ImageYolo { + + var article_notification_pull_detail: Image { + Image("article_notification_pull_detail") + } + + var article_notification_pull: Image { + Image("article_notification_pull") + } + + var new_article: Image { + Image("new_article") + } + + var welcome_background: Image { + Image("welcome_background") + } + + var article_trash: Image { + Image("article_trash") + } + + var ic_close_article: Image { + Image("ic_close_article") + } +} \ No newline at end of file diff --git a/SampleFiles/genAllRessources.sh b/SampleFiles/genAllRessources.sh index 64d1add..0871fff 100755 --- a/SampleFiles/genAllRessources.sh +++ b/SampleFiles/genAllRessources.sh @@ -2,7 +2,7 @@ FORCE_FLAG="$1" -# Font +## Font swift run -c release ResgenSwift fonts $FORCE_FLAG "./Fonts/sampleFontsAll.txt" \ --extension-output-path "./Fonts/Generated" \ --extension-name "UIFontYolo" \ @@ -57,4 +57,5 @@ swift run -c release ResgenSwift images $FORCE_FLAG "./Images/sampleImages.txt" --xcassets-path "./Images/imagium.xcassets" \ --extension-output-path "./Images/Generated" \ --extension-name "UIImage" \ + --extension-name-swift-ui "ImageYolo" \ --extension-suffix "GenAllScript" diff --git a/Sources/ResgenSwift/Colors/Colors.swift b/Sources/ResgenSwift/Colors/Colors.swift index 64d8957..4ec7321 100644 --- a/Sources/ResgenSwift/Colors/Colors.swift +++ b/Sources/ResgenSwift/Colors/Colors.swift @@ -56,16 +56,16 @@ struct Colors: ParsableCommand { ColorExtensionGenerator.writeExtensionFile(colors: parsedColors, staticVar: options.staticMembers, extensionName: options.extensionName, - extensionFilePath: options.extensionFilePath) + extensionFilePath: options.extensionFilePath, + isSwiftUI: false) // Generate extension - ColorExtensionGenerator.writeSUIExtensionFile(colors: parsedColors, + ColorExtensionGenerator.writeExtensionFile(colors: parsedColors, staticVar: options.staticMembers, extensionName: options.extensionNameSwiftUI, - extensionFilePath: options.extensionFilePathSwiftUI) + extensionFilePath: options.extensionFilePathSwiftUI, + isSwiftUI: true) - // -> Time: 0.0010340213775634766 seconds - print("[\(Self.toolName)] Colors generated") } diff --git a/Sources/ResgenSwift/Colors/ColorsToolOptions.swift b/Sources/ResgenSwift/Colors/ColorsToolOptions.swift index 00b1ca7..fab9f11 100644 --- a/Sources/ResgenSwift/Colors/ColorsToolOptions.swift +++ b/Sources/ResgenSwift/Colors/ColorsToolOptions.swift @@ -27,10 +27,10 @@ struct ColorsToolOptions: ParsableArguments { @Option(help: "Tell if it will generate static properties or not") var staticMembers: Bool = false - @Option(help: "Extension name. If not specified, it will generate an UIColor extension. Using default extension name will generate static property.") + @Option(help: "Extension name. If not specified, it will generate an UIColor extension.") var extensionName: String = Colors.defaultExtensionName - @Option(help: "SwiftUI Extension name. If not specified, it will generate an Color extension. Using default extension name will generate static property.") + @Option(help: "SwiftUI Extension name. If not specified, it will generate an Color extension.") var extensionNameSwiftUI: String = Colors.defaultExtensionNameSUI @Option(help: "Extension suffix. Ex: MyApp, it will generate {extensionName}+ColorsMyApp.swift") diff --git a/Sources/ResgenSwift/Colors/Generator/ColorExtensionGenerator.swift b/Sources/ResgenSwift/Colors/Generator/ColorExtensionGenerator.swift index da936b2..da95946 100644 --- a/Sources/ResgenSwift/Colors/Generator/ColorExtensionGenerator.swift +++ b/Sources/ResgenSwift/Colors/Generator/ColorExtensionGenerator.swift @@ -15,11 +15,16 @@ struct ColorExtensionGenerator { // MARK: - UIKit - static func writeExtensionFile(colors: [ParsedColor], staticVar: Bool, extensionName: String, extensionFilePath: String) { + static func writeExtensionFile(colors: [ParsedColor], + staticVar: Bool, + extensionName: String, + extensionFilePath: String, + isSwiftUI: Bool) { // Create extension content let extensionContent = Self.getExtensionContent(colors: colors, staticVar: staticVar, - extensionName: extensionName) + extensionName: extensionName, + isSwiftUI: isSwiftUI) // Write content let extensionFilePathURL = URL(fileURLWithPath: extensionFilePath) @@ -32,20 +37,23 @@ struct ColorExtensionGenerator { } } - static func getExtensionContent(colors: [ParsedColor], staticVar: Bool, extensionName: String) -> String { + static func getExtensionContent(colors: [ParsedColor], + staticVar: Bool, + extensionName: String, + isSwiftUI: Bool) -> String { [ - Self.getHeader(extensionClassname: extensionName), - Self.getProperties(for: colors, withStaticVar: staticVar), + Self.getHeader(extensionClassname: extensionName, isSwiftUI: isSwiftUI), + Self.getProperties(for: colors, withStaticVar: staticVar, isSwiftUI: isSwiftUI), Self.getFooter() ] .joined(separator: "\n") } - private static func getHeader(extensionClassname: String) -> String { + private static func getHeader(extensionClassname: String, isSwiftUI: Bool) -> String { """ // Generated by ResgenSwift.\(Colors.toolName) \(ResgenSwiftVersion) - import UIKit + import \(isSwiftUI ? "SwiftUI" : "UIKit") extension \(extensionClassname) {\n """ @@ -57,66 +65,11 @@ struct ColorExtensionGenerator { """ } - private static func getProperties(for colors: [ParsedColor], withStaticVar staticVar: Bool) -> String { + private static func getProperties(for colors: [ParsedColor], + withStaticVar staticVar: Bool, + isSwiftUI: Bool) -> String { colors.map { - if staticVar { - return $0.getColorStaticProperty() - } - return $0.getColorProperty() - } - .joined(separator: "\n\n") - } - - // MARK: - SwiftUI - - static func writeSUIExtensionFile(colors: [ParsedColor], staticVar: Bool, extensionName: String, extensionFilePath: String) { - // Create extension content - let extensionContent = Self.getSUIExtensionContent(colors: colors, - staticVar: staticVar, - extensionName: extensionName) - - // Write content - let extensionFilePathURL = URL(fileURLWithPath: extensionFilePath) - do { - try extensionContent.write(to: extensionFilePathURL, atomically: false, encoding: .utf8) - } catch (let error) { - let error = ColorsToolError.writeExtension(extensionFilePath, error.localizedDescription) - print(error.localizedDescription) - Colors.exit(withError: error) - } - } - - static func getSUIExtensionContent(colors: [ParsedColor], staticVar: Bool, extensionName: String) -> String { - [ - Self.getSUIHeader(extensionClassname: extensionName), - Self.getSUIProperties(for: colors, withStaticVar: staticVar), - Self.getSUIFooter() - ] - .joined(separator: "\n") - } - - private static func getSUIHeader(extensionClassname: String) -> String { - """ - // Generated by ResgenSwift.\(Colors.toolName) \(ResgenSwiftVersion) - - import SwiftUI - - extension \(extensionClassname) {\n - """ - } - - private static func getSUIFooter() -> String { - """ - } - """ - } - - private static func getSUIProperties(for colors: [ParsedColor], withStaticVar staticVar: Bool) -> String { - colors.map { - if staticVar { - return $0.getSUIColorStaticProperty() - } - return $0.getSUIColorProperty() + $0.getColorProperty(isStatic: staticVar, isSwiftUI: isSwiftUI) } .joined(separator: "\n\n") } diff --git a/Sources/ResgenSwift/Colors/Model/ParsedColor.swift b/Sources/ResgenSwift/Colors/Model/ParsedColor.swift index 2a8d2ee..951f206 100644 --- a/Sources/ResgenSwift/Colors/Model/ParsedColor.swift +++ b/Sources/ResgenSwift/Colors/Model/ParsedColor.swift @@ -74,41 +74,20 @@ struct ParsedColor { // MARK: - UIKit - func getColorProperty() -> String { - """ + func getColorProperty(isStatic: Bool, isSwiftUI: Bool) -> String { + if isSwiftUI { + return """ + /// Color \(name) is \(light) (light) or \(dark) (dark)" + \(isStatic ? "static " : "")var \(name): Color { + Color("\(name)") + } + """ + } + return """ /// Color \(name) is \(light) (light) or \(dark) (dark)" - @objc var \(name): UIColor { + \(isStatic ? "static " : "@objc ")var \(name): UIColor { UIColor(named: "\(name)")! } """ } - - func getColorStaticProperty() -> String { - """ - /// Color \(name) is \(light) (light) or \(dark) (dark)" - static var \(name): UIColor { - UIColor(named: "\(name)")! - } - """ - } - - // MARK: - SwiftUI - - func getSUIColorProperty() -> String { - """ - /// Color \(name) is \(light) (light) or \(dark) (dark)" - var \(name): Color { - Color("\(name)") - } - """ - } - - func getSUIColorStaticProperty() -> String { - """ - /// Color \(name) is \(light) (light) or \(dark) (dark)" - static var \(name): Color { - Color("\(name)")! - } - """ - } } diff --git a/Sources/ResgenSwift/Fonts/FontOptions.swift b/Sources/ResgenSwift/Fonts/FontOptions.swift index 7ce99d5..e522ca6 100644 --- a/Sources/ResgenSwift/Fonts/FontOptions.swift +++ b/Sources/ResgenSwift/Fonts/FontOptions.swift @@ -21,10 +21,10 @@ struct FontsOptions: ParsableArguments { @Option(help: "Tell if it will generate static properties or methods") var staticMembers: Bool = false - @Option(help: "Extension name. If not specified, it will generate an UIFont extension. Using default extension name will generate static property.") + @Option(help: "Extension name. If not specified, it will generate an UIFont extension.") var extensionName: String = Fonts.defaultExtensionName - @Option(help: "Extension name. If not specified, it will generate an Font extension. Using default extension name will generate static property.") + @Option(help: "Extension name. If not specified, it will generate an Font extension.") var extensionNameSwiftUI: String = Fonts.defaultExtensionNameSUI @Option(help: "Extension suffix. Ex: MyApp, it will generate {extensionName}+FontsMyApp.swift") diff --git a/Sources/ResgenSwift/Fonts/Fonts.swift b/Sources/ResgenSwift/Fonts/Fonts.swift index 0ac79a4..27db115 100644 --- a/Sources/ResgenSwift/Fonts/Fonts.swift +++ b/Sources/ResgenSwift/Fonts/Fonts.swift @@ -51,12 +51,14 @@ struct Fonts: ParsableCommand { FontExtensionGenerator.writeExtensionFile(fontsNames: fontsNames, staticVar: options.staticMembers, extensionName: options.extensionName, - extensionFilePath: options.extensionFilePath) + extensionFilePath: options.extensionFilePath, + isSwiftUI: false) - FontExtensionGenerator.writeSUIExtensionFile(fontsNames: fontsNames, - staticVar: options.staticMembers, - extensionName: options.extensionNameSwiftUI, - extensionFilePath: options.extensionFilePathSwiftUI) + FontExtensionGenerator.writeExtensionFile(fontsNames: fontsNames, + staticVar: options.staticMembers, + extensionName: options.extensionNameSwiftUI, + extensionFilePath: options.extensionFilePathSwiftUI, + isSwiftUI: true) print("Info.plist information:") print("\(FontPlistGenerator.generatePlistUIAppsFontContent(for: fontsNames))") diff --git a/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift b/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift index b716d22..f5c301b 100644 --- a/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift +++ b/Sources/ResgenSwift/Fonts/Generator/FontToolContentGenerator.swift @@ -21,13 +21,16 @@ class FontExtensionGenerator { return enumDefinition } - // MARK: - UIKit - - static func writeExtensionFile(fontsNames: [String], staticVar: Bool, extensionName: String, extensionFilePath: String) { + static func writeExtensionFile(fontsNames: [String], + staticVar: Bool, + extensionName: String, + extensionFilePath: String, + isSwiftUI: Bool) { // Create extension content let extensionContent = Self.getExtensionContent(fontsNames: fontsNames, staticVar: staticVar, - extensionName: extensionName) + extensionName: extensionName, + isSwiftUI: isSwiftUI) // Write content let extensionFilePathURL = URL(fileURLWithPath: extensionFilePath) @@ -40,37 +43,36 @@ class FontExtensionGenerator { } } - static func getExtensionContent(fontsNames: [String], staticVar: Bool, extensionName: String) -> String { + static func getExtensionContent(fontsNames: [String], + staticVar: Bool, + extensionName: String, + isSwiftUI: Bool) -> String { [ - Self.getHeader(extensionClassname: extensionName), + Self.getHeader(extensionClassname: extensionName, isSwiftUI: isSwiftUI), Self.getFontNameEnum(fontsNames: fontsNames), - Self.getFontMethods(fontsNames: fontsNames, staticVar: staticVar), + Self.getFontMethods(fontsNames: fontsNames, staticVar: staticVar, isSwiftUI: isSwiftUI), Self.getFooter() ] .joined(separator: "\n") } - private static func getHeader(extensionClassname: String) -> String { + private static func getHeader(extensionClassname: String, isSwiftUI: Bool) -> String { """ // Generated by ResgenSwift.\(Fonts.toolName) \(ResgenSwiftVersion) - import UIKit + import \(isSwiftUI ? "SwiftUI" : "UIKit") extension \(extensionClassname) {\n """ } - private static func getFontMethods(fontsNames: [FontName], staticVar: Bool) -> String { + private static func getFontMethods(fontsNames: [FontName], staticVar: Bool, isSwiftUI: Bool) -> String { let pragma = " // MARK: - Getter" var propertiesOrMethods: [String] = fontsNames .unique() .map { - if staticVar { - return $0.staticProperty - } else { - return $0.method - } + $0.getProperty(isStatic: staticVar, isSwiftUI: isSwiftUI) } propertiesOrMethods.insert(pragma, at: 0) @@ -82,66 +84,4 @@ class FontExtensionGenerator { } """ } - - // MARK: - SwiftUI - - static func writeSUIExtensionFile(fontsNames: [String], staticVar: Bool, extensionName: String, extensionFilePath: String) { - // Create extension content - let extensionContent = Self.getSUIExtensionContent(fontsNames: fontsNames, - staticVar: staticVar, - extensionName: extensionName) - - // Write content - let extensionFilePathURL = URL(fileURLWithPath: extensionFilePath) - do { - try extensionContent.write(to: extensionFilePathURL, atomically: false, encoding: .utf8) - } catch (let error) { - let error = FontsToolError.writeExtension(extensionFilePath, error.localizedDescription) - print(error.localizedDescription) - Fonts.exit(withError: error) - } - } - - static func getSUIExtensionContent(fontsNames: [String], staticVar: Bool, extensionName: String) -> String { - [ - Self.getSUIHeader(extensionClassname: extensionName), - Self.getFontNameEnum(fontsNames: fontsNames), - Self.getSUIFontMethods(fontsNames: fontsNames, staticVar: staticVar), - Self.getSUIFooter() - ] - .joined(separator: "\n") - } - - private static func getSUIHeader(extensionClassname: String) -> String { - """ - // Generated by ResgenSwift.\(Fonts.toolName) \(ResgenSwiftVersion) - - import SwiftUI - - extension \(extensionClassname) {\n - """ - } - - private static func getSUIFontMethods(fontsNames: [FontName], staticVar: Bool) -> String { - let pragma = " // MARK: - Getter" - - var propertiesOrMethods: [String] = fontsNames - .unique() - .map { - if staticVar { - return $0.suiStaticProperty - } else { - return $0.suiMethod - } - } - - propertiesOrMethods.insert(pragma, at: 0) - return propertiesOrMethods.joined(separator: "\n\n") - } - - private static func getSUIFooter() -> String { - """ - } - """ - } } diff --git a/Sources/ResgenSwift/Fonts/Model/FontName.swift b/Sources/ResgenSwift/Fonts/Model/FontName.swift index 22ac1da..39043f9 100644 --- a/Sources/ResgenSwift/Fonts/Model/FontName.swift +++ b/Sources/ResgenSwift/Fonts/Model/FontName.swift @@ -14,35 +14,33 @@ extension FontName { self.removeCharacters(from: "[]+-_") } - var method: String { - """ + func getProperty(isStatic: Bool, isSwiftUI: Bool) -> String { + if isSwiftUI { + if isStatic { + return """ + static let \(fontNameSanitize): ((_ size: CGFloat) -> Font) = { size in + Font.custom(FontName.\(fontNameSanitize).rawValue, size: size) + } + """ + } + return """ + func \(fontNameSanitize)(withSize size: CGFloat) -> Font { + Font.custom(FontName.\(fontNameSanitize).rawValue, size: size) + } + """ + } + // UIKit + if isStatic { + return """ + static let \(fontNameSanitize): ((_ size: CGFloat) -> UIFont) = { size in + UIFont(name: FontName.\(fontNameSanitize).rawValue, size: size)! + } + """ + } + return """ func \(fontNameSanitize)(withSize size: CGFloat) -> UIFont { UIFont(name: FontName.\(fontNameSanitize).rawValue, size: size)! } """ } - - var staticProperty: String { - """ - static let \(fontNameSanitize): ((_ size: CGFloat) -> UIFont) = { size in - UIFont(name: FontName.\(fontNameSanitize).rawValue, size: size)! - } - """ - } - - var suiMethod: String { - """ - func \(fontNameSanitize)(withSize size: CGFloat) -> Font { - Font.custom(FontName.\(fontNameSanitize).rawValue, size: size) - } - """ - } - - var suiStaticProperty: String { - """ - static let \(fontNameSanitize): ((_ size: CGFloat) -> Font) = { size in - Font.custom(FontName.\(fontNameSanitize).rawValue, size: size) - } - """ - } } diff --git a/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift b/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift index 0601b14..bbfc6ff 100644 --- a/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift +++ b/Sources/ResgenSwift/Generate/Model/ConfigurationFile.swift @@ -102,6 +102,7 @@ struct ImagesConfiguration: Codable, CustomDebugStringConvertible { let xcassetsPath: String let extensionOutputPath: String let extensionName: String? + let extensionNameSwiftUI: String? let extensionSuffix: String? private let staticMembers: Bool? @@ -119,6 +120,7 @@ struct ImagesConfiguration: Codable, CustomDebugStringConvertible { - Xcassets path: \(xcassetsPath) - Extension output path: \(extensionOutputPath) - Extension name: \(extensionName ?? "-") + - Extension name SwiftUI: \(extensionNameSwiftUI ?? "-") - Extension suffix: \(extensionSuffix ?? "-") """ } diff --git a/Sources/ResgenSwift/Generate/Runnable/ImagesConfiguration+ShellCommandable.swift b/Sources/ResgenSwift/Generate/Runnable/ImagesConfiguration+ShellCommandable.swift index db1bb4d..d26d935 100644 --- a/Sources/ResgenSwift/Generate/Runnable/ImagesConfiguration+ShellCommandable.swift +++ b/Sources/ResgenSwift/Generate/Runnable/ImagesConfiguration+ShellCommandable.swift @@ -31,6 +31,12 @@ extension ImagesConfiguration: Runnable { extensionName ] } + if let extensionNameSwiftUI = extensionNameSwiftUI { + args += [ + "--extension-name-swift-ui", + extensionNameSwiftUI + ] + } if let extensionSuffix = extensionSuffix { args += [ "--extension-suffix", diff --git a/Sources/ResgenSwift/Images/Generator/ImageExtensionGenerator.swift b/Sources/ResgenSwift/Images/Generator/ImageExtensionGenerator.swift index d5a9901..708d4e8 100644 --- a/Sources/ResgenSwift/Images/Generator/ImageExtensionGenerator.swift +++ b/Sources/ResgenSwift/Images/Generator/ImageExtensionGenerator.swift @@ -10,18 +10,20 @@ import Foundation class ImageExtensionGenerator { - // MARK: - pragm + // MARK: - UIKit static func generateExtensionFile(images: [ParsedImage], staticVar: Bool, inputFilename: String, extensionName: String, - extensionFilePath: String) { + extensionFilePath: String, + isSwiftUI: Bool) { // Create extension conten1t let extensionContent = Self.getExtensionContent(images: images, staticVar: staticVar, extensionName: extensionName, - inputFilename: inputFilename) + inputFilename: inputFilename, + isSwiftUI: isSwiftUI) // Write content let extensionFilePathURL = URL(fileURLWithPath: extensionFilePath) @@ -34,38 +36,35 @@ class ImageExtensionGenerator { } } - // MARK: - Extension content - - static func getExtensionContent(images: [ParsedImage], staticVar: Bool, extensionName: String, inputFilename: String) -> String { + static func getExtensionContent(images: [ParsedImage], + staticVar: Bool, + extensionName: String, + inputFilename: String, + isSwiftUI: Bool) -> String { [ - Self.getHeader(inputFilename: inputFilename, extensionClassname: extensionName), - Self.getProperties(images: images, staticVar: staticVar), + Self.getHeader(inputFilename: inputFilename, extensionClassname: extensionName, isSwiftUI: isSwiftUI), + Self.getProperties(images: images, staticVar: staticVar, isSwiftUI: isSwiftUI), Self.getFooter() ] .joined(separator: "\n") } - // MARK: - Extension part - - private static func getHeader(inputFilename: String, extensionClassname: String) -> String { + private static func getHeader(inputFilename: String, + extensionClassname: String, + isSwiftUI: Bool) -> String { """ // Generated by ResgenSwift.\(Images.toolName) \(ResgenSwiftVersion) // Images from \(inputFilename) - import UIKit + import \(isSwiftUI ? "SwiftUI" : "UIKit") extension \(extensionClassname) { """ } - private static func getProperties(images: [ParsedImage], staticVar: Bool) -> String { - if staticVar { - return images - .map { "\n\($0.getStaticImageProperty())" } - .joined(separator: "\n") - } - return images - .map { "\n\($0.getImageProperty())" } + private static func getProperties(images: [ParsedImage], staticVar: Bool, isSwiftUI: Bool) -> String { + images + .map { "\n\($0.getImageProperty(isStatic: staticVar, isSwiftUI: isSwiftUI))" } .joined(separator: "\n") } diff --git a/Sources/ResgenSwift/Images/Images.swift b/Sources/ResgenSwift/Images/Images.swift index f419e06..e0264aa 100644 --- a/Sources/ResgenSwift/Images/Images.swift +++ b/Sources/ResgenSwift/Images/Images.swift @@ -22,6 +22,7 @@ struct Images: ParsableCommand { static let toolName = "Images" static let defaultExtensionName = "UIImage" + static let defaultExtensionNameSUI = "Image" // MARK: - Command Options @@ -56,8 +57,15 @@ struct Images: ParsableCommand { staticVar: options.staticMembers, inputFilename: options.inputFilenameWithoutExt, extensionName: options.extensionName, - extensionFilePath: options.extensionFilePath) + extensionFilePath: options.extensionFilePath, + isSwiftUI: false) + ImageExtensionGenerator.generateExtensionFile(images: imagesToGenerate, + staticVar: options.staticMembers, + inputFilename: options.inputFilenameWithoutExt, + extensionName: options.extensionNameSwiftUI, + extensionFilePath: options.extensionFilePathSwiftUI, + isSwiftUI: true) print("[\(Self.toolName)] Images generated") } @@ -81,6 +89,13 @@ struct Images: ParsableCommand { // RSVG-Converter _ = Images.getSvgConverterPath() + // Extension for UIKit and SwiftUI should have different name + guard options.extensionName != options.extensionNameSwiftUI else { + let error = ImagesError.extensionNamesCollision(options.extensionName) + print(error.localizedDescription) + Images.exit(withError: error) + } + // Check if needed to regenerate guard GeneratorChecker.shouldGenerate(force: options.forceExecution, inputFilePath: options.inputFile, diff --git a/Sources/ResgenSwift/Images/ImagesError.swift b/Sources/ResgenSwift/Images/ImagesError.swift index a425fc4..7f879ee 100644 --- a/Sources/ResgenSwift/Images/ImagesError.swift +++ b/Sources/ResgenSwift/Images/ImagesError.swift @@ -8,6 +8,7 @@ import Foundation enum ImagesError: Error { + case extensionNamesCollision(String) case inputFolderNotFound(String) case fileNotExists(String) case unknownImageExtension(String) @@ -19,6 +20,9 @@ enum ImagesError: Error { var localizedDescription: String { switch self { + case .extensionNamesCollision(let extensionName): + return "error:[\(Fonts.toolName)] Error on extension names, extension name and SwiftUI extension name should be different (\(extensionName) is used on both)" + case .inputFolderNotFound(let inputFolder): return " error:[\(Images.toolName)] Input folder not found: \(inputFolder)" diff --git a/Sources/ResgenSwift/Images/ImagesOptions.swift b/Sources/ResgenSwift/Images/ImagesOptions.swift index b36001d..453725f 100644 --- a/Sources/ResgenSwift/Images/ImagesOptions.swift +++ b/Sources/ResgenSwift/Images/ImagesOptions.swift @@ -27,9 +27,12 @@ struct ImagesOptions: ParsableArguments { @Option(help: "Tell if it will generate static properties or not") var staticMembers: Bool = false - @Option(help: "Extension name. If not specified, it will generate an UIImage extension. Using default extension name will generate static property.") + @Option(help: "Extension name. If not specified, it will generate an UIImage extension.") var extensionName: String = Images.defaultExtensionName + @Option(help: "Extension name. If not specified, it will generate an Image extension.") + var extensionNameSwiftUI: String = Images.defaultExtensionNameSUI + @Option(help: "Extension suffix. Ex: MyApp, it will generate {extensionName}+Image{extensionSuffix}.swift") var extensionSuffix: String? } @@ -37,6 +40,9 @@ struct ImagesOptions: ParsableArguments { // MARK: - Computed var extension ImagesOptions { + + // MARK: - UIKit + var extensionFileName: String { if let extensionSuffix = extensionSuffix { return "\(extensionName)+\(extensionSuffix).swift" @@ -48,6 +54,21 @@ extension ImagesOptions { "\(extensionOutputPath)/\(extensionFileName)" } + // MARK: - SwiftUI + + var extensionFileNameSwiftUI: String { + if let extensionSuffix = extensionSuffix { + return "\(extensionNameSwiftUI)+\(extensionSuffix).swift" + } + return "\(extensionNameSwiftUI).swift" + } + + var extensionFilePathSwiftUI: String { + "\(extensionOutputPath)/\(extensionFileNameSwiftUI)" + } + + // MARK: - + var inputFilenameWithoutExt: String { URL(fileURLWithPath: inputFile) .deletingPathExtension() diff --git a/Sources/ResgenSwift/Images/Model/ParsedImage.swift b/Sources/ResgenSwift/Images/Model/ParsedImage.swift index 800facb..2c42916 100644 --- a/Sources/ResgenSwift/Images/Model/ParsedImage.swift +++ b/Sources/ResgenSwift/Images/Model/ParsedImage.swift @@ -72,17 +72,16 @@ struct ParsedImage { // MARK: - Extension property - func getImageProperty() -> String { - """ - var \(name): UIImage { - UIImage(named: "\(name)")! - } - """ - } - - func getStaticImageProperty() -> String { - """ - static var \(name): UIImage { + func getImageProperty(isStatic: Bool, isSwiftUI: Bool) -> String { + if isSwiftUI { + return """ + \(isStatic ? "static ": "")var \(name): Image { + Image("\(name)") + } + """ + } + return """ + \(isStatic ? "static ": "")var \(name): UIImage { UIImage(named: "\(name)")! } """ diff --git a/Sources/ResgenSwift/Strings/Stringium/StringiumOptions.swift b/Sources/ResgenSwift/Strings/Stringium/StringiumOptions.swift index ab9e0cd..42549ba 100644 --- a/Sources/ResgenSwift/Strings/Stringium/StringiumOptions.swift +++ b/Sources/ResgenSwift/Strings/Stringium/StringiumOptions.swift @@ -33,7 +33,7 @@ struct StringiumOptions: ParsableArguments { @Option(help: "Tell if it will generate static properties or not") var staticMembers: Bool = false - @Option(help: "Extension name. If not specified, it will generate an String extension. Using default extension name will generate static property.") + @Option(help: "Extension name. If not specified, it will generate an String extension.") var extensionName: String = Stringium.defaultExtensionName @Option(help: "Extension suffix. Ex: MyApp, it will generate {extensionName}+{extensionSuffix}.swift") diff --git a/Sources/ResgenSwift/Strings/Tag/TagsOptions.swift b/Sources/ResgenSwift/Strings/Tag/TagsOptions.swift index 3618ce0..e5372b9 100644 --- a/Sources/ResgenSwift/Strings/Tag/TagsOptions.swift +++ b/Sources/ResgenSwift/Strings/Tag/TagsOptions.swift @@ -24,7 +24,7 @@ struct TagsOptions: ParsableArguments { @Option(help: "Tell if it will generate static properties or not") var staticMembers: Bool = false - @Option(help: "Extension name. If not specified, it will generate a Tag extension. Using default extension name will generate static property.") + @Option(help: "Extension name. If not specified, it will generate a Tag extension.") var extensionName: String = Tags.defaultExtensionName @Option(help: "Extension suffix. Ex: MyApp, it will generate {extensionName}+Tag{extensionSuffix}.swift") diff --git a/Tests/ResgenSwiftTests/Colors/ColorExtensionGeneratorTests.swift b/Tests/ResgenSwiftTests/Colors/ColorExtensionGeneratorTests.swift index 54bbded..854f416 100644 --- a/Tests/ResgenSwiftTests/Colors/ColorExtensionGeneratorTests.swift +++ b/Tests/ResgenSwiftTests/Colors/ColorExtensionGeneratorTests.swift @@ -23,7 +23,8 @@ final class ColorExtensionGeneratorTests: XCTestCase { // When let extensionContent = ColorExtensionGenerator.getExtensionContent(colors: colors, staticVar: false, - extensionName: "GenColors") + extensionName: "GenColors", + isSwiftUI: false) // Expect let expect = """ @@ -58,7 +59,8 @@ final class ColorExtensionGeneratorTests: XCTestCase { // When let extensionContent = ColorExtensionGenerator.getExtensionContent(colors: colors, staticVar: true, - extensionName: "GenColor") + extensionName: "GenColor", + isSwiftUI: false) // Expect let expect = """ diff --git a/Tests/ResgenSwiftTests/Colors/ParsedColorTests.swift b/Tests/ResgenSwiftTests/Colors/ParsedColorTests.swift index ec1f16c..1335e77 100644 --- a/Tests/ResgenSwiftTests/Colors/ParsedColorTests.swift +++ b/Tests/ResgenSwiftTests/Colors/ParsedColorTests.swift @@ -17,7 +17,7 @@ final class ParsedColorTests: XCTestCase { let color = ParsedColor(name: "red", light: "#FF0000", dark: "#0000FF") // When - let property = color.getColorProperty() + let property = color.getColorProperty(isStatic: false, isSwiftUI: false) // Expect let expect = """ @@ -35,7 +35,7 @@ final class ParsedColorTests: XCTestCase { let color = ParsedColor(name: "red", light: "#FF0000", dark: "#0000FF") // When - let property = color.getColorStaticProperty() + let property = color.getColorProperty(isStatic: true, isSwiftUI: false) // Expect let expect = """ diff --git a/Tests/ResgenSwiftTests/Fonts/FontExtensionGeneratorTests.swift b/Tests/ResgenSwiftTests/Fonts/FontExtensionGeneratorTests.swift index 8ea70f1..4e5e432 100644 --- a/Tests/ResgenSwiftTests/Fonts/FontExtensionGeneratorTests.swift +++ b/Tests/ResgenSwiftTests/Fonts/FontExtensionGeneratorTests.swift @@ -23,7 +23,8 @@ final class FontExtensionGeneratorTests: XCTestCase { // When let extensionContent = FontExtensionGenerator.getExtensionContent(fontsNames: fontNames, staticVar: false, - extensionName: "GenFonts") + extensionName: "GenFonts", + isSwiftUI: false) // Expect let expect = """ diff --git a/Tests/ResgenSwiftTests/Fonts/FontNameTests.swift b/Tests/ResgenSwiftTests/Fonts/FontNameTests.swift index 03a09a2..7fce9f0 100644 --- a/Tests/ResgenSwiftTests/Fonts/FontNameTests.swift +++ b/Tests/ResgenSwiftTests/Fonts/FontNameTests.swift @@ -17,7 +17,7 @@ final class FontNameTests: XCTestCase { let fontName: FontName = "CircularStdBold" // When - let property = fontName.staticProperty + let property = fontName.getProperty(isStatic: true, isSwiftUI: false) // Expect let expect = """ @@ -34,7 +34,7 @@ final class FontNameTests: XCTestCase { let fontName: FontName = "[Circular_Std+Bold-Underline]" // When - let property = fontName.staticProperty + let property = fontName.getProperty(isStatic: true, isSwiftUI: false) // Expect let expect = """ @@ -51,7 +51,7 @@ final class FontNameTests: XCTestCase { let fontName: FontName = "CircularStdBold" // When - let property = fontName.method + let property = fontName.getProperty(isStatic: false, isSwiftUI: false) // Expect let expect = """ @@ -68,7 +68,7 @@ final class FontNameTests: XCTestCase { let fontName: FontName = "[Circular_Std+Bold-Underline]" // When - let property = fontName.method + let property = fontName.getProperty(isStatic: false, isSwiftUI: false) // Expect let expect = """ diff --git a/Tests/ResgenSwiftTests/Images/ImageExtensionGeneratorTests.swift b/Tests/ResgenSwiftTests/Images/ImageExtensionGeneratorTests.swift index c8bf707..abfba92 100644 --- a/Tests/ResgenSwiftTests/Images/ImageExtensionGeneratorTests.swift +++ b/Tests/ResgenSwiftTests/Images/ImageExtensionGeneratorTests.swift @@ -24,7 +24,8 @@ final class ImageExtensionGeneratorTests: XCTestCase { let extensionContent = ImageExtensionGenerator.getExtensionContent(images: images, staticVar: false, extensionName: "GenImages", - inputFilename: "myInputFilename") + inputFilename: "myInputFilename", + isSwiftUI: false) // Expect let expect = """ @@ -59,7 +60,8 @@ final class ImageExtensionGeneratorTests: XCTestCase { let extensionContent = ImageExtensionGenerator.getExtensionContent(images: images, staticVar: true, extensionName: "GenImages", - inputFilename: "myInputFilename") + inputFilename: "myInputFilename", + isSwiftUI: false) // Expect let expect = """ diff --git a/Tests/ResgenSwiftTests/Images/ParsedImageTests.swift b/Tests/ResgenSwiftTests/Images/ParsedImageTests.swift index a45be87..80d41b7 100644 --- a/Tests/ResgenSwiftTests/Images/ParsedImageTests.swift +++ b/Tests/ResgenSwiftTests/Images/ParsedImageTests.swift @@ -43,7 +43,7 @@ final class ParsedImageTests: XCTestCase { height: 10) // When - let property = parsedImage.getImageProperty() + let property = parsedImage.getImageProperty(isStatic: false, isSwiftUI: false) // Expect let expect = """ @@ -64,7 +64,7 @@ final class ParsedImageTests: XCTestCase { height: 10) // When - let property = parsedImage.getStaticImageProperty() + let property = parsedImage.getImageProperty(isStatic: true, isSwiftUI: false) // Expect let expect = """ -- 2.39.5