Skip to content

Commit 130eaf2

Browse files
update swift 4 api
1 parent 5760375 commit 130eaf2

File tree

6 files changed

+27
-29
lines changed

6 files changed

+27
-29
lines changed

CodeGenerator.xcodeproj/project.pbxproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -728,7 +728,7 @@
728728
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
729729
PRODUCT_BUNDLE_IDENTIFIER = com.wangjie.CodeGenerator;
730730
PRODUCT_NAME = "$(TARGET_NAME)";
731-
SWIFT_SWIFT3_OBJC_INFERENCE = On;
731+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
732732
SWIFT_VERSION = 4.0;
733733
};
734734
name = Debug;
@@ -745,7 +745,7 @@
745745
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
746746
PRODUCT_BUNDLE_IDENTIFIER = com.wangjie.CodeGenerator;
747747
PRODUCT_NAME = "$(TARGET_NAME)";
748-
SWIFT_SWIFT3_OBJC_INFERENCE = On;
748+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
749749
SWIFT_VERSION = 4.0;
750750
};
751751
name = Release;
@@ -762,7 +762,7 @@
762762
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
763763
PRODUCT_BUNDLE_IDENTIFIER = com.wangjie.CodeGeneratorTests;
764764
PRODUCT_NAME = "$(TARGET_NAME)";
765-
SWIFT_SWIFT3_OBJC_INFERENCE = On;
765+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
766766
SWIFT_VERSION = 4.0;
767767
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CodeGenerator.app/Contents/MacOS/CodeGenerator";
768768
};
@@ -780,7 +780,7 @@
780780
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks";
781781
PRODUCT_BUNDLE_IDENTIFIER = com.wangjie.CodeGeneratorTests;
782782
PRODUCT_NAME = "$(TARGET_NAME)";
783-
SWIFT_SWIFT3_OBJC_INFERENCE = On;
783+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
784784
SWIFT_VERSION = 4.0;
785785
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CodeGenerator.app/Contents/MacOS/CodeGenerator";
786786
};
@@ -801,7 +801,7 @@
801801
PROVISIONING_PROFILE = "";
802802
PROVISIONING_PROFILE_SPECIFIER = "";
803803
SKIP_INSTALL = YES;
804-
SWIFT_SWIFT3_OBJC_INFERENCE = On;
804+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
805805
SWIFT_VERSION = 4.0;
806806
};
807807
name = Debug;
@@ -820,7 +820,7 @@
820820
PRODUCT_NAME = "$(TARGET_NAME)";
821821
PROVISIONING_PROFILE_SPECIFIER = "";
822822
SKIP_INSTALL = YES;
823-
SWIFT_SWIFT3_OBJC_INFERENCE = On;
823+
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
824824
SWIFT_VERSION = 4.0;
825825
};
826826
name = Release;

Generate.../ClosureType.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ class ClosureType: SwiftType {
3131
}
3232

3333
override var isOptional: Bool {
34-
guard name.characters.count > 7 else { return false }
34+
guard name.count > 7 else { return false }
3535
let comps = name.components(separatedBy: "->")
3636
guard comps.count == 2 else { return false }
3737
let leftParenthesesCount = comps[1].count(of: "(")
3838
let rightParentesescount = comps[1].count(of: ")")
39-
let lastTwo = name.substring(from: name.index(name.endIndex, offsetBy: -2))
39+
let lastTwo = name.suffix(2)
4040
return [")?", ")!"].contains(lastTwo) && leftParenthesesCount != rightParentesescount
4141
}
4242

Generate.../FuncSignature.swift

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,12 @@ struct FuncSignature {
3333
name = string.substring(with: nameResult.range(at: 1))
3434

3535
let paramsRange = try string.paramsRange()
36-
let rawParams = string.substring(with: paramsRange)
36+
let rawParams = String(string[paramsRange])
3737
let paramsString = rawParams.paramsStrings
3838
params = paramsString.map { paramString in
3939
try? FuncParam(string: paramString.trimed)
4040
}.flatMap { $0 }
41-
42-
let stringAfterLastParam = string.substring(from: string.index(string.startIndex, offsetBy: paramsRange.toRange()!.upperBound))
41+
let stringAfterLastParam = String(string[paramsRange.upperBound...])
4342

4443
guard let returnTypeResult = "->(.*)$".firstMatch(in: stringAfterLastParam) else {
4544
returnType = SwiftType.Void
@@ -51,12 +50,12 @@ struct FuncSignature {
5150
}
5251

5352
private extension String {
54-
func paramsRange() throws -> NSRange {
53+
func paramsRange() throws -> Range<String.Index> {
5554
var startParenthesisCount = 0
5655
var endParenthesisCount = 0
5756
var paramsStartIndex: Int!
5857
var paramsEndIndex: Int!
59-
characters.enumerated().forEach { index, char in
58+
enumerated().forEach { index, char in
6059
if char == "(" {
6160
startParenthesisCount += 1
6261
if paramsStartIndex == nil {
@@ -73,18 +72,20 @@ private extension String {
7372
}
7473
}
7574

76-
guard var startIndex = paramsStartIndex, let endIndex = paramsEndIndex else {
75+
guard var startIntIndex = paramsStartIndex, let endIntIndex = paramsEndIndex else {
7776
throw NSError.sourceInvalid
7877
}
79-
startIndex += 1
80-
return NSRange(location: startIndex, length: endIndex-startIndex)
78+
startIntIndex += 1
79+
let startIndex = index(self.startIndex, offsetBy: startIntIndex)
80+
let endIndex = index(self.startIndex, offsetBy: endIntIndex)
81+
return startIndex..<endIndex
8182
}
8283

8384
var paramsStrings: [String] {
8485
var parenthesisDiff = 0
8586
var paramEnd = 0
8687
var paramsString = [String]()
87-
characters.enumerated().forEach { index, character in
88+
enumerated().forEach { index, character in
8889
if character == "(" {
8990
parenthesisDiff += 1
9091
}
@@ -95,11 +96,11 @@ private extension String {
9596
let start = self.index(startIndex, offsetBy: paramEnd)
9697
let end = self.index(startIndex, offsetBy: index)
9798
paramEnd = index + 1
98-
paramsString.append(substring(with: Range(uncheckedBounds: (lower: start, upper: end))))
99+
paramsString.append(String(self[start..<end]))
99100
}
100101
}
101102
let lastStart = index(startIndex, offsetBy: paramEnd)
102-
paramsString.append(substring(with: Range(uncheckedBounds: (lower: lastStart, upper: endIndex))))
103+
paramsString.append(String(self[lastStart..<endIndex]))
103104
return paramsString.filter { !$0.isEmpty }
104105
}
105106
}

Generate.../InterfaceSignature.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ struct InterfaceSignature {
3838
var openBraceCount = 0
3939
var varSignatures: [VarSignature] = []
4040
for line in lines {
41-
if let firstTwoIndex = line.trimed.index(line.trimed.startIndex, offsetBy: 2, limitedBy: line.trimed.endIndex),line.trimed.substring(to: firstTwoIndex) == "//" {
41+
if line.trimed.prefix(2) == "//" {
4242
continue
4343
}
4444
let lineOpen = line.filter { $0 == "{" }

Generate.../String+regexr.swift

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,12 @@ import Foundation
1111
extension String {
1212
func matches(in string: String) -> [NSTextCheckingResult] {
1313
let regex = try! NSRegularExpression(pattern: self)
14-
return regex.matches(in: string, options: [], range: NSRange(0 ..< string.characters.count))
14+
return regex.matches(in: string, options: [], range: NSRange(0 ..< string.count))
1515
}
1616

1717
func firstMatch(in string: String) -> NSTextCheckingResult? {
1818
let regex = try! NSRegularExpression(pattern: self)
19-
return regex.firstMatch(in: string, options: [], range: NSRange(0 ..< string.characters.count))
19+
return regex.firstMatch(in: string, options: [], range: NSRange(0 ..< string.count))
2020
}
2121

2222
func substring(with range: NSRange) -> String {
@@ -37,7 +37,7 @@ extension String {
3737

3838
func count(of char: Character) -> Int {
3939
var count = 0
40-
characters.forEach { c in
40+
forEach { c in
4141
if c == char {
4242
count += 1
4343
}
@@ -51,9 +51,6 @@ extension String {
5151

5252
/// Capitalized the first letter
5353
var Capitalized: String {
54-
guard !isEmpty else { return "" }
55-
56-
let range = Range(uncheckedBounds: (lower: startIndex, upper: index(after: startIndex)))
57-
return replacingCharacters(in: range, with: substring(with: range).uppercased())
54+
return prefix(1).uppercased() + dropFirst()
5855
}
5956
}

Generate.../SwiftType.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class SwiftType {
2828

2929
var unwrappedName: String {
3030
if isOptional {
31-
return name.substring(to: name.index(before: name.endIndex))
31+
return String(name[..<name.index(before: name.endIndex)])
3232
}
3333
return name
3434
}
@@ -39,7 +39,7 @@ class SwiftType {
3939

4040
var isOptional: Bool {
4141
guard !name.isEmpty else { return false }
42-
return ("?!").characters.contains(name.characters.last!)
42+
return ("?!").contains(name.last!)
4343
}
4444

4545
var optionalName: String {

0 commit comments

Comments
 (0)