// // String+SwiftLint.swift // SwiftLint // // Created by JP Simard on 2015-05-16. // Copyright (c) 2015 Realm. All rights reserved. // import Foundation import SourceKittenFramework import SwiftXPC extension String { func hasTrailingWhitespace() -> Bool { if isEmpty { return false } if let character = utf16.suffix(1).first { return NSCharacterSet.whitespaceCharacterSet().characterIsMember(character) } return false } func isUppercase() -> Bool { return self == uppercaseString } public var chomped: String { return stringByTrimmingCharactersInSet(NSCharacterSet.newlineCharacterSet()) } public func nameStrippingLeadingUnderscoreIfPrivate(dict: XPCDictionary) -> String { let privateACL = "source.lang.swift.accessibility.private" if dict["key.accessibility"] as? String == privateACL && characters.first == "_" { return self[startIndex.successor()..) -> String { get { let subStart = startIndex.advancedBy(range.startIndex, limit: endIndex) let subEnd = subStart.advancedBy(range.endIndex - range.startIndex, limit: endIndex) return substringWithRange(Range(start: subStart, end: subEnd)) } } func substring(from: Int, length: Int? = nil) -> String { if let length = length { return self[from.. Int? { if let range = rangeOfString(search, options: [.LiteralSearch, .BackwardsSearch]) { return startIndex.distanceTo(range.startIndex) } return nil } }