int (int textOffset, boolean leanForward) { int[] offsets = getTokenOffsets(); int tokenIndex = findTokenIndex(textOffset, offsets, leanForward); return ((PsiToken) tokens.get(tokenIndex)).psiStart() + (textOffset - offsets[tokenIndex]); }