Segment (@NotNull PsiFile containingFile, @NotNull Document document, @NotNull Segment segment, boolean isSegmentGreedy) { Project project = containingFile.getProject(); PsiDocumentManagerBase documentManager = (PsiDocumentManagerBase)PsiDocumentManager.getInstance(project); List<DocumentEvent> events = documentManager.getEventsSinceCommit(document); if (!events.isEmpty()) { SmartPointerManagerImpl pointerManager = (SmartPointerManagerImpl)SmartPointerManager.getInstance(project); SmartPointerTracker tracker = pointerManager.getTracker(containingFile.getViewProvider().getVirtualFile()); if (tracker != null) { return tracker.getUpdatedRange(containingFile, segment, isSegmentGreedy, (FrozenDocument)documentManager.getLastCommittedDocument(document), events); } } return null; }