ItemWithPresentation (PsiElement target, boolean hasDifferentNames) { Pointer<PsiElement> pointer = ReadAction.compute(() -> SmartPointerManager.createPointer(target)); TargetPresentation presentation = ReadAction.compute(() -> computePresentation(target, hasDifferentNames)); return new ItemWithPresentation(pointer, presentation); }