SourceKitten
SourceKitten copied to clipboard
strong type `byteRange` instead of just using NSRange
public let content: String
/// UTF16 based range in entire String. Equivalent to Range<UTF16Index>
public let range: NSRange
/// Byte based range in entire String. Equivalent to Range<UTF8Index>
public let byteRange: NSRange
Any way to strong type byteRange so that methods like below reject non byte ranges?
extension SyntaxMap {
/// Returns array of SyntaxTokens intersecting with byte range
///
/// - Parameter byteRange: byte based NSRange
internal func tokensIn(byteRange: NSRange) -> [SyntaxToken] {....}
Right now we have to remember to use a method on nsstring in SourceKitten to convert the ranges in the contents
of the file.
extension NSString {
/**
Converts an `NSRange` suitable for filtering `self` as an
`NSString` to a range of byte offsets in `self`.
- parameter start: Starting character index in the string.
- parameter length: Number of characters to include in range.
- returns: An equivalent `NSRange`.
*/
public func NSRangeToByteRange(start start: Int, length: Int) -> NSRange?
...