From 1c42217d201775c872801dec05c927f86eb8b416 Mon Sep 17 00:00:00 2001 From: Johannes Lund Date: Sat, 25 Apr 2015 20:22:29 +0200 Subject: [PATCH] Revert 171fdee..d223f74 This rolls back to commit 171fdee98bb7407c675647ae6e88bcea320633a9. --- .../UserInterfaceState.xcuserstate | Bin 84953 -> 89481 bytes Chromatism/Chromatism/JLKeywordScope.swift | 4 ++-- Chromatism/Chromatism/JLNestedScope.swift | 2 +- Chromatism/Chromatism/JLRegexScope.swift | 2 +- Chromatism/Chromatism/JLScope.swift | 4 ++-- Chromatism/Chromatism/JLTextStorage.swift | 4 ++-- Chromatism/Chromatism/JLTextView.swift | 2 +- .../Chromatism/JLTextViewController.swift | 2 +- .../Chromatism/NSIndexSet+Additions.swift | 4 ++-- .../ChromatismTests/JLKeywordScopeTests.swift | 4 ++-- Chromatism/ChromatismTests/JLScopeTests.swift | 4 ++-- Chromatism/ChromatismTests/ObjectiveC.swift | 2 +- .../SwiftChromatismDemo/AppDelegate.swift | 6 +++--- 13 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Chromatism/Chromatism.xcodeproj/project.xcworkspace/xcuserdata/Johannes.xcuserdatad/UserInterfaceState.xcuserstate b/Chromatism/Chromatism.xcodeproj/project.xcworkspace/xcuserdata/Johannes.xcuserdatad/UserInterfaceState.xcuserstate index d7401b613d2f2c7e4e29728965ed6229e3153286..19f573b8ec324cda92a2a98ea977086178e41dfb 100644 GIT binary patch literal 89481 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 literal 84953 zcmeF42V4}_`uEQ{vpc&xSk~SZ8-lX1y;xAH5)lnx*K8J8WFxSI1(m4DoD@@UdNbXU z-h1!$njTHR>AlyRc2nNp%xt5nSN-3_ydq3!ct91vVgb{)0 zh@OZk*(ugV<5mTmBB5}@qH*EMLxNS!k;UTzO;xoad|WZEIo#Nn&<&Sd-$xiq48%zK zk^W==$siNSB$7!iB#UGdE3pwfag(WJ8Yw3gWIkCy7Lr9|Fd9^T_$+0&*d_h+IrAA)Cm}1 zp(E)ino7sfESgQ-bSj-jb7>(hqBH4iI+xC)2h#a;0bNLgw1%#rwKPP-w2`i&tLYI` zrW@!9^hA0-y?|awFQQxNrSxig4ZVflN^hh0&O*@0RRyMSHDwy?|D)$Dq9 z1G|mg&hBRSuzT6V>@l{DJ;`2Xudr9yYwUIQ5&M{Z!ail6v2WP7>^t@|`&|$PgJ2ZQ zLLZ^8Fi;pSj1a~M6NO1arr;D@f?LQDW(lQ2g|J9iCLAmTgrIPU&>%DktAvwAuok3^R_0aXy_0jd!4b~0OjnIwPW#}wAyUweds>{>O z(v|4Sbc=M0b<1@DU5&0zSFbx%w_4Y#J3@Dq?s(lPx-)bebr?nT|Jy0>)i>OR(euKQN^lkQhN(+hf&zNfyQeu#dAeyl!2Z_#Jz zC+nx^r|PHabMyuJLj3{yGJUzeLO)->K!1?luRmB{tv^J+QeUTErC+UIqi@w8reCW+ zLVt?>RQ+lC)AeWQ&(xo#->AP(ze#_m{vQ4P`iJz7>Yva*seeZQyncuNW&LaVH}r4o z-_w7n|3v?}{ww{r`hV+x(*Gt3qE6I{hl(xYD)BIJt$2hei${ych{ua3h$oAuh-Zjr zisyUOy;f5m&vVj|pG#q6(#c-CILlaUJis{HxX`%BxY!sp z))-e9BgST9i;)|TG#+I<#dxamG~?;Ui;Nc=FEMU1ZZ>W)ZZ+OuywP}*@n+-w#s`cK z8Xqz~V|>>5obh?%8^$+{ZyDbTTPdm zE;C(jy4iG#=~mN&riV-qn;tPeXL{cBf@!Lm@8hDpPv5mJUUQJN%qB(LO?CQC)qOsQO|kmgGPsZy$v!cwEON?I+gkxrIQ zkxrFPlTMe;kj|9OlFpXSkh0z&*+G=U|dyQAQIV3dXio;lZDO1 zO!~+=P7U&Szj>UqFyHF5I^CAsg4{w2{_3?swI2r^RE%c5+Mjj~CWVref@-#W)Af=R0Lv?s{QB$Bk=r@nX2XmXMgH6Hecytt8sp2vf7&D#JTeuLWi~li>qNts3sI_ z@|$y#4{uYB-oZf=+MHJW?zP(2uYW;} zyo0zlkzsIR?-z)Nc!`fpUZMrP0bX3B{Ths*ZsayK1zI=bfGLYg%jc>y5>qUSIb;?| zzmiNRGe|DUBl)C&6p|t`Q|>GGll#j9 zo2B>wMwbLCgLQthMR7!|wzY}F{N_+ysJS(_DHtfnq^o&BD7ab^7Z;^`*DmsHL=*%g zp%o3CNKh2gUl%A~}itgPcrGA*afds2Ry61wZ1ZpYSX7YScf@wusZ%# z*XI;RA}vAm9>cqkSrDvjS>ZPi>*DK*ULCrpI(~NFJ)u%EoZ0 zp*a!@$Yyet;-M{ME4h?hMlL5;kSk?}?37)yTlUCa*>^b_+Zb{!xSrgA4%CeQCxa>S zRHgg$o5#X8nm6JuP-=C&EzNDHYt?$GPL7&|K2TYl;0UFC7OrUwG*kzx)%vP+#hsj# zuZ%6hh$eVwQt|alyJ-$KHNY962Dnn`%i9Zx#!LGc(HPgsG0

vjd?9boWX*THCps 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 Sz_)+RZT; 0 { + if count(string) > 0 { let firstCharacter = String(string[string.startIndex ... string.startIndex]) let remainingString = string[string.startIndex.successor() ..< string.endIndex] if var array = dictionary[firstCharacter] { @@ -71,7 +71,7 @@ private struct Branch: Node, Printable { var pattern: String { var array = children.map { $0.pattern } - array.sort { countElements($0) < countElements($1) } + array.sort { count($0) < count($1) } switch array.count { case 0: return character + "" diff --git a/Chromatism/Chromatism/JLNestedScope.swift b/Chromatism/Chromatism/JLNestedScope.swift index e4c70be..c263146 100644 --- a/Chromatism/Chromatism/JLNestedScope.swift +++ b/Chromatism/Chromatism/JLNestedScope.swift @@ -65,7 +65,7 @@ public class JLNestedScope: JLScope { println("Intersection: \(intersection)") self.indexSet = newIndexSet - oldIndexSet = newIndexSet.mutableCopy() as NSMutableIndexSet + oldIndexSet = newIndexSet.mutableCopy() as! NSMutableIndexSet } func incrementingTokenIsValid(token: JLTokenizingScope.TokenResult) -> Bool { diff --git a/Chromatism/Chromatism/JLRegexScope.swift b/Chromatism/Chromatism/JLRegexScope.swift index 9486285..8c2dd7e 100644 --- a/Chromatism/Chromatism/JLRegexScope.swift +++ b/Chromatism/Chromatism/JLRegexScope.swift @@ -34,7 +34,7 @@ public class JLRegexScope: JLScope { }) }) - performSubscopes(attributedString, indexSet: indexSet.mutableCopy() as NSMutableIndexSet) + performSubscopes(attributedString, indexSet: indexSet.mutableCopy() as! NSMutableIndexSet) } private func process(result: NSTextCheckingResult, attributedString: NSMutableAttributedString) { diff --git a/Chromatism/Chromatism/JLScope.swift b/Chromatism/Chromatism/JLScope.swift index 683da58..cbdbd66 100644 --- a/Chromatism/Chromatism/JLScope.swift +++ b/Chromatism/Chromatism/JLScope.swift @@ -38,9 +38,9 @@ public class JLScope: NSObject, Printable, Equatable { // Create a copy of the indexSet and call perform to subscopes // The results of the subscope is removed from the indexSet copy before the next subscope is performed - let indexSetCopy = indexSet.mutableCopy() as NSMutableIndexSet + let indexSetCopy = indexSet.mutableCopy() as! NSMutableIndexSet performSubscopes(attributedString, indexSet: indexSetCopy) - self.indexSet = indexSet.mutableCopy() as NSMutableIndexSet + self.indexSet = indexSet.mutableCopy() as! NSMutableIndexSet } // Will change indexSet diff --git a/Chromatism/Chromatism/JLTextStorage.swift b/Chromatism/Chromatism/JLTextStorage.swift index 7ec35fd..a6689ce 100644 --- a/Chromatism/Chromatism/JLTextStorage.swift +++ b/Chromatism/Chromatism/JLTextStorage.swift @@ -26,7 +26,7 @@ public class JLTextStorage: NSTextStorage { public override func processEditing() { if let range = editedLineRange { - let layoutManager = layoutManagers[0] as NSLayoutManager + let layoutManager = layoutManagers[0] as! NSLayoutManager //println("Non Contigigous Layout: \(layoutManager.hasNonContiguousLayout)") let editedLineIndexSet = NSIndexSet(indexesInRange: range) documentScope.perform(editedLineIndexSet) @@ -48,7 +48,7 @@ public class JLTextStorage: NSTextStorage { public override func replaceCharactersInRange(range: NSRange, withString str: String) { let actions = NSTextStorageEditActions.EditedCharacters | NSTextStorageEditActions.EditedAttributes - let delta = str.utf16Count - range.length + let delta = count(str.utf16) - range.length edited(actions, range: range, changeInLength: delta) backingStore.replaceCharactersInRange(range, withString: str) editedLineRange = (string as NSString).lineRangeForRange(editedRange) diff --git a/Chromatism/Chromatism/JLTextView.swift b/Chromatism/Chromatism/JLTextView.swift index 1570f74..3458048 100644 --- a/Chromatism/Chromatism/JLTextView.swift +++ b/Chromatism/Chromatism/JLTextView.swift @@ -84,7 +84,7 @@ extension JLTextView: JLNestedScopeDelegate { additions.enumerateRangesUsingBlock { (range, stop) in let range = self.textRange(range.start ..< range.end) - let array = self.selectionRectsForRange(range) as [UITextSelectionRect] + let array = self.selectionRectsForRange(range) as! [UITextSelectionRect] for value in array { self.flash(value.rect, color: UIColor(white: 0.0, alpha: 0.1)) } diff --git a/Chromatism/Chromatism/JLTextViewController.swift b/Chromatism/Chromatism/JLTextViewController.swift index 2563b41..886fc7f 100644 --- a/Chromatism/Chromatism/JLTextViewController.swift +++ b/Chromatism/Chromatism/JLTextViewController.swift @@ -48,7 +48,7 @@ public class JLTextViewController: UIViewController { // FIXME: ! could be wrong let info = notification.userInfo! let scrollView = self.textView - let kbSize = (info[UIKeyboardFrameBeginUserInfoKey] as NSValue).CGRectValue().size; + let kbSize = (info[UIKeyboardFrameBeginUserInfoKey] as! NSValue).CGRectValue().size; var contentInsets = scrollView.contentInset; contentInsets.bottom = kbSize.height; diff --git a/Chromatism/Chromatism/NSIndexSet+Additions.swift b/Chromatism/Chromatism/NSIndexSet+Additions.swift index d41d978..8e74016 100644 --- a/Chromatism/Chromatism/NSIndexSet+Additions.swift +++ b/Chromatism/Chromatism/NSIndexSet+Additions.swift @@ -36,13 +36,13 @@ func NSIndexSetDelta(oldSet: NSIndexSet, newSet: NSIndexSet) -> (additions: NSMu } func -(left: NSIndexSet, right: NSIndexSet) -> NSMutableIndexSet { - let indexSet = left.mutableCopy() as NSMutableIndexSet + let indexSet = left.mutableCopy() as! NSMutableIndexSet indexSet.removeIndexes(right) return indexSet } func +(left: NSIndexSet, right: NSIndexSet) -> NSMutableIndexSet { - let indexSet = left.mutableCopy() as NSMutableIndexSet + let indexSet = left.mutableCopy() as! NSMutableIndexSet indexSet.addIndexes(right) return indexSet } diff --git a/Chromatism/ChromatismTests/JLKeywordScopeTests.swift b/Chromatism/ChromatismTests/JLKeywordScopeTests.swift index d3ff184..d9a4dec 100644 --- a/Chromatism/ChromatismTests/JLKeywordScopeTests.swift +++ b/Chromatism/ChromatismTests/JLKeywordScopeTests.swift @@ -11,7 +11,7 @@ import XCTest class JLKeywordScopeTests: XCTestCase { - let string = NSString(contentsOfURL: NSBundle(forClass: ObjectiveC.self).URLForResource("demo", withExtension: "txt"), encoding: NSUTF8StringEncoding, error: nil) + let string = NSString(contentsOfURL: NSBundle(forClass: ObjectiveC.self).URLForResource("demo", withExtension: "txt")!, encoding: NSUTF8StringEncoding, error: nil) as! String var attributedString: NSMutableAttributedString! var keywords = "Array|AutoreleasingUnsafePointer|BidirectionalReverseView|Bit|Bool|CFunctionPointer|COpaquePointer|CVaListPointer|Character|CollectionOfOne|ConstUnsafePointer|ContiguousArray|Dictionary|DictionaryGenerator|DictionaryIndex|Double|EmptyCollection|EmptyGenerator|EnumerateGenerator|FilterCollectionView|FilterCollectionViewIndex|FilterGenerator|FilterSequenceView|Float|Float80|FloatingPointClassification|GeneratorOf|GeneratorOfOne|GeneratorSequence|HeapBuffer|HeapBuffer|HeapBufferStorage|HeapBufferStorageBase|ImplicitlyUnwrappedOptional|IndexingGenerator|Int|Int16|Int32|Int64|Int8|IntEncoder|LazyBidirectionalCollection|LazyForwardCollection|LazyRandomAccessCollection|LazySequence|Less|MapCollectionView|MapSequenceGenerator|MapSequenceView|MirrorDisposition|ObjectIdentifier|OnHeap|Optional|PermutationGenerator|QuickLookObject|RandomAccessReverseView|Range|RangeGenerator|RawByte|Repeat|ReverseBidirectionalIndex|ReverseRandomAccessIndex|SequenceOf|SinkOf|Slice|StaticString|StrideThrough|StrideThroughGenerator|StrideTo|StrideToGenerator|String|Index|UTF8View|Index|UnicodeScalarView|IndexType|GeneratorType|UTF16View|UInt|UInt16|UInt32|UInt64|UInt8|UTF16|UTF32|UTF8|UnicodeDecodingResult|UnicodeScalar|Unmanaged|UnsafeArray|UnsafeArrayGenerator|UnsafeMutableArray|UnsafePointer|VaListBuilder|Header|Zip2|ZipGenerator2".componentsSeparatedByString("|") @@ -45,7 +45,7 @@ class JLKeywordScopeTests: XCTestCase { func testKeywordPattern() { // This is an example of a performance test case. - let scope = JLKeywordScope(keywords: keywords, tokenTypes: .Keyword) + let scope = JLKeywordScope(keywords: keywords, tokenType: .Keyword) scope.attributedString = attributedString scope.theme = .Default self.measureBlock() { diff --git a/Chromatism/ChromatismTests/JLScopeTests.swift b/Chromatism/ChromatismTests/JLScopeTests.swift index 386ba17..65b652c 100644 --- a/Chromatism/ChromatismTests/JLScopeTests.swift +++ b/Chromatism/ChromatismTests/JLScopeTests.swift @@ -72,8 +72,8 @@ extension String { } } -@infix func + (left: NSAttributedString, right: NSAttributedString) -> NSMutableAttributedString { - let string = left.mutableCopy() as NSMutableAttributedString + func + (left: NSAttributedString, right: NSAttributedString) -> NSMutableAttributedString { + let string = left.mutableCopy() as! NSMutableAttributedString string.appendAttributedString(right) return string } diff --git a/Chromatism/ChromatismTests/ObjectiveC.swift b/Chromatism/ChromatismTests/ObjectiveC.swift index d669d4b..cf3b744 100644 --- a/Chromatism/ChromatismTests/ObjectiveC.swift +++ b/Chromatism/ChromatismTests/ObjectiveC.swift @@ -11,7 +11,7 @@ import XCTest class ObjectiveC: XCTestCase { - let string = NSString(contentsOfURL: NSBundle(forClass: ObjectiveC.self).URLForResource("demo", withExtension: "txt"), encoding: NSUTF8StringEncoding, error: nil) + let string = NSString(contentsOfURL: NSBundle(forClass: ObjectiveC.self).URLForResource("demo", withExtension: "txt")!, encoding: NSUTF8StringEncoding, error: nil) as! String var attributedString: NSMutableAttributedString! var language: JLLanguage.ObjectiveC! diff --git a/SwiftChromatismDemo/SwiftChromatismDemo/AppDelegate.swift b/SwiftChromatismDemo/SwiftChromatismDemo/AppDelegate.swift index 6827c90..c5ec3d9 100644 --- a/SwiftChromatismDemo/SwiftChromatismDemo/AppDelegate.swift +++ b/SwiftChromatismDemo/SwiftChromatismDemo/AppDelegate.swift @@ -15,15 +15,15 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: NSDictionary?) -> Bool { + func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { self.window = UIWindow(frame: UIScreen.mainScreen().bounds) // Override point for customization after application launch. // Load demo text let url = NSBundle.mainBundle().URLForResource("objc", withExtension: "txt"); - let string = NSString(contentsOfURL: url!, encoding: NSUTF8StringEncoding, error: nil) + let string = NSString(contentsOfURL: url!, encoding: NSUTF8StringEncoding, error: nil) as! String - let viewController = JLTextViewController(text: string!, language: .ObjectiveC, theme: .Default) + let viewController = JLTextViewController(text: string, language: .ObjectiveC, theme: .Default) viewController.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Resign", style: .Plain, target: viewController.textView, action:"resignFirstResponder")