FileWithOffset () { VirtualFile containingFile0 = getVirtualFile(); int shift0 = 0; if (containingFile0 instanceof VirtualFileWindow) { shift0 = ((VirtualFileWindow)containingFile0).getDocumentWindow().injectedToHost(0); containingFile0 = ((VirtualFileWindow)containingFile0).getDelegate(); } Segment range = myPsiFileRange == null ? mySmartPointer.getPsiRange() : myPsiFileRange.getPsiRange(); if (range == null) return null; return new FileWithOffset(containingFile0, range.getStartOffset() + shift0); }