Keep track of newlines, so we can convert a byte offset in a file to a line and column position
Keep track of newlines, so we can convert a byte offset in a file to a line and column position