void (@NotNull DocumentEvent event) { RangeMarker marker = event.getDocument().createRangeMarker(event.getOffset(), event.getOffset()); myDocumentManager.performWhenAllCommitted(() -> { if (myDetector == null) { return; } PsiFile file = myDocumentManager.getPsiFile(event.getDocument()); if (file == null) { return; } PsiElement element = file.findElementAt(marker.getStartOffset()); marker.dispose(); if (element == null || myDetector.ignoreChanges(element)) return; if (element instanceof PsiWhiteSpace) { PsiElement method = myStableChange.getMethod(); if (PsiTreeUtil.skipWhitespacesForward(element) == method) { return; } } if (!myDetector.isChangeSignatureAvailableOnElement(element, myStableChange)) { detach(); return; } updateCurrentInfo(); }); }