Skip to content

Commit baac8c3

Browse files
committed
Merge branch 'imindeu-main'
2 parents c67ac93 + a19a7f5 commit baac8c3

14 files changed

+59
-29
lines changed

Sources/RswiftGenerators/Shared/SwiftIdentifier.swift

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -124,26 +124,23 @@ extension Sequence {
124124
}
125125

126126
private let disallowedCharacters: CharacterSet = {
127-
let disallowed = NSMutableCharacterSet(charactersIn: "")
128-
disallowed.formUnion(with: CharacterSet.whitespacesAndNewlines)
129-
disallowed.formUnion(with: CharacterSet.punctuationCharacters)
130-
disallowed.formUnion(with: CharacterSet.symbols)
131-
disallowed.formUnion(with: CharacterSet.illegalCharacters)
132-
disallowed.formUnion(with: CharacterSet.controlCharacters)
133-
disallowed.removeCharacters(in: "_")
127+
var disallowed = CharacterSet(charactersIn: "")
128+
disallowed.formUnion(CharacterSet.whitespacesAndNewlines)
129+
disallowed.formUnion(CharacterSet.punctuationCharacters)
130+
disallowed.formUnion(CharacterSet.symbols)
131+
disallowed.formUnion(CharacterSet.illegalCharacters)
132+
disallowed.formUnion(CharacterSet.controlCharacters)
133+
disallowed.remove(charactersIn: "_")
134134

135135
// Emoji ranges, roughly based on http://www.unicode.org/Public/emoji/1.0//emoji-data.txt
136136
[
137137
0x2600...0x27BF,
138138
0x1F300...0x1F6FF,
139139
0x1F900...0x1F9FF,
140140
0x1F1E6...0x1F1FF,
141-
].forEach {
142-
let range = NSRange(location: $0.lowerBound, length: $0.upperBound - $0.lowerBound)
143-
disallowed.removeCharacters(in: range)
144-
}
141+
].forEach { range in range.compactMap(UnicodeScalar.init).forEach { scalar in disallowed.remove(scalar) } }
145142

146-
return disallowed as CharacterSet
143+
return disallowed
147144
}()
148145

149146
// Based on https://docs.swift.org/swift-book/ReferenceManual/LexicalStructure.html#ID413

Sources/RswiftParsers/Resources/AssetCatalog+Parser.swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
import Foundation
99
import RswiftResources
10-
import CoreGraphics
1110

1211
// Note: "appiconset" is not loadable by default, so it's not included here
1312
private let imageExtensions: Set<String> = ["launchimage", "imageset", "imagestack", "symbolset"]
@@ -41,7 +40,11 @@ extension AssetCatalog: SupportedExtensions {
4140
}
4241
let options: FileManager.DirectoryEnumerationOptions
4342
if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 6.0, *) {
43+
#if !os(Linux)
4444
options = [.skipsHiddenFiles, .producesRelativePathURLs]
45+
#else
46+
options = [.skipsHiddenFiles]
47+
#endif
4548
} else {
4649
options = [.skipsHiddenFiles]
4750
}

Sources/RswiftParsers/Resources/FontResource+Parser.swift

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,15 @@
77

88
import Foundation
99
import RswiftResources
10+
11+
#if canImport(CoreGraphics)
1012
import CoreGraphics
13+
#endif
1114

1215
extension FontResource: SupportedExtensions {
1316
static public let supportedExtensions: Set<String> = ["otf", "ttf"]
1417

18+
#if canImport(CoreGraphics)
1519
static public func parse(url: URL) throws -> FontResource {
1620
guard let dataProvider = CGDataProvider(url: url as CFURL) else {
1721
throw ResourceParsingError("Unable to create data provider for font at \(url)")
@@ -28,4 +32,9 @@ extension FontResource: SupportedExtensions {
2832
filename: url.lastPathComponent
2933
)
3034
}
35+
#else
36+
static public func parse(url: URL) throws -> FontResource {
37+
throw ResourceParsingError("Unsupported FontResource.parse")
38+
}
39+
#endif
3140
}

Sources/RswiftParsers/Resources/ImageResource+Parser.swift

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@
77

88
import Foundation
99
import RswiftResources
10-
import CoreGraphics
11-
1210

1311
extension ImageResource: SupportedExtensions {
1412
// See "Supported Image Formats" on https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIImage_Class/

Sources/RswiftParsers/Resources/Nib+Parser.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation
9+
#if canImport(FoundationXML)
10+
import FoundationXML
11+
#endif
912
import RswiftResources
1013

1114

@@ -60,7 +63,7 @@ internal class NibParserDelegate: NSObject, XMLParserDelegate {
6063
var isObjectsTagOpened = false;
6164
var levelSinceObjectsTagOpened = 0;
6265

63-
@objc func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
66+
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
6467
if isObjectsTagOpened {
6568
levelSinceObjectsTagOpened += 1
6669
}
@@ -113,7 +116,7 @@ internal class NibParserDelegate: NSObject, XMLParserDelegate {
113116
}
114117
}
115118

116-
@objc func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
119+
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
117120
switch elementName {
118121
case "objects":
119122
isObjectsTagOpened = false;

Sources/RswiftParsers/Resources/Storyboard+Parser.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66
//
77

88
import Foundation
9+
#if canImport(FoundationXML)
10+
import FoundationXML
11+
#endif
912
import RswiftResources
1013

1114

@@ -96,7 +99,7 @@ private class StoryboardParserDelegate: NSObject, XMLParserDelegate {
9699
// State
97100
var currentViewController: StoryboardResource.ViewController?
98101

99-
@objc func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
102+
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
100103
if let id = attributeDict["id"], isGenerated(id: id) {
101104
generatedIds.append(id)
102105
}
@@ -173,7 +176,7 @@ private class StoryboardParserDelegate: NSObject, XMLParserDelegate {
173176
}
174177
}
175178

176-
@objc func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
179+
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
177180
// We keep the current view controller open to collect segues until the closing scene:
178181
// <scene>
179182
// <viewController>

Sources/RswiftParsers/Shared/Glob.swift

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,12 @@
88

99
import Foundation
1010

11+
#if os(Linux)
12+
import Glibc
13+
#else
14+
import Darwin
15+
#endif
16+
1117
public let GlobBehaviorBashV3 = Glob.Behavior(
1218
supportsGlobstar: false,
1319
includesFilesFromRootOfGlobstar: false,
@@ -202,7 +208,7 @@ public class Glob: Collection {
202208
private func populateFiles(gt: glob_t, includeFiles: Bool) {
203209
let includeDirectories = behavior.includesDirectoriesInResults
204210

205-
for i in 0..<Int(gt.gl_matchc) {
211+
for i in 0..<Int(gt.gl_pathc) {
206212
if let path = String(validatingUTF8: gt.gl_pathv[i]!) {
207213
if !includeFiles || !includeDirectories {
208214
let isDirectory = self.isDirectory(path: path)

Sources/RswiftResources/Integrations/Bundle+Extensions.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ extension Bundle {
3232
if #available(macOS 13, iOS 16, tvOS 16, watchOS 9, *) {
3333
// Xcode 14 doesn't recognize `Locale.language`, Xcode 14.1 does know `Locale.language`
3434
// Xcode 14.1 is first to ship with swift 5.7.1
35-
#if swift(>=5.7.1)
35+
#if swift(>=5.7.1) && !os(Linux)
3636
language = locale.language.languageCode?.identifier
3737
#else
3838
language = locale.languageCode

Sources/RswiftResources/Integrations/ColorResource+Integrations.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
//
77

88
import Foundation
9+
10+
#if canImport(SwiftUI)
911
import SwiftUI
1012

1113
@available(macOS 10.15, iOS 13, tvOS 13, watchOS 6, visionOS 1, *)
@@ -20,7 +22,7 @@ extension Color {
2022
self.init(resource.name, bundle: resource.bundle)
2123
}
2224
}
23-
25+
#endif
2426

2527
#if os(iOS) || os(tvOS) || os(visionOS)
2628
import UIKit

Sources/RswiftResources/Integrations/DataResource+Integrations.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import UIKit
1313
import AppKit
1414
#endif
1515

16+
#if canImport(UIKit) || canImport(AppKit)
1617
extension NSDataAsset {
1718

1819
/**
@@ -37,3 +38,4 @@ extension DataResource {
3738
NSDataAsset(resource: self)?.data
3839
}
3940
}
41+
#endif

0 commit comments

Comments
 (0)