SwiftLint/Source/SwiftLintFramework/Extensions/StringView+SwiftLint.swift

16 lines
592 B
Swift

import SourceKittenFramework
extension StringView {
/// Converts a line and column position in a code snippet to a byte offset.
/// - Parameters:
/// - line: Line in code snippet
/// - bytePosition: Byte position in line
/// - Returns: Byte offset coinciding with the line and the column given
func byteOffset(forLine line: Int64, bytePosition: Int64) -> ByteCount? {
guard line > 0, line <= lines.count, bytePosition > 0 else {
return nil
}
return lines[Int(line) - 1].byteRange.location + ByteCount(bytePosition - 1)
}
}