1074
private positionInBuffer(node: TreeNode, remainder: number, ret: BufferCursor): null;
1075
private positionInBuffer(node: TreeNode, remainder: number, ret?: BufferCursor): BufferCursor | null {
1077
>
const bufferIndex = node.piece.bufferIndex;
1078
>
const lineStarts = this._buffers[bufferIndex].lineStarts;
1079
>
1080
>
const startOffset = lineStarts[piece.start.line] + piece.start.column;
1081
>
1082
>
const offset = startOffset + remainder;
1083
>
1084
>
// binary search offset between startOffset and endOffset
1085
>
let low = piece.start.line;
1086
>
let high = piece.end.line;
1087
>
1088
>
let mid: number = 0;
1089
>
let midStop: number = 0;
1090
>
let midStart: number = 0;
1091
>
1092
>
while (low <= high) {
1093
>
mid = low + ((high - low) / 2) | 0;
1094
>
midStart = lineStarts[mid];
1095
>
1096
>
if (mid === high) {
1097
break;
1098
}