public int OffsetToLineNumber (int offset)
{
var node = GetNodeAtOffset (offset);
if (node == null)
return 0;
int result = node.left != null ? node.left.Count : 0;
while (node.parent != null) {
if (node == node.parent.right) {
if (node.parent.left != null)
result += node.parent.left.Count;
result++;
}
node = node.parent;
}
return result + 1;
}