void (final PsiElement element, final Editor editor, final Object[] descriptors, final Project project, @Nullable PsiElement highlighted, final int elementStart, final ParameterInfoHandler<?, ?> handler, final boolean requestFocus, boolean singleParameterInfo) { if (editor.isDisposed() || !editor.getComponent().isVisible()) return; PsiDocumentManager.getInstance(project).performLaterWhenAllCommitted(() -> { if (editor.isDisposed() || !element.isValid() || (!ApplicationManager.getApplication().isUnitTestMode() && !UIUtil.isShowing(editor.getContentComponent()))) return; final Document document = editor.getDocument(); if (document.getTextLength() < elementStart) return; ParameterInfoControllerBase controller = ParameterInfoControllerBase.findControllerAtOffset(editor, elementStart); if (controller == null) { ParameterInfoControllerBase.createParameterInfoController( project, editor, elementStart, descriptors, highlighted, element, handler, true, requestFocus); } else { controller.setDescriptors(descriptors); controller.showHint(requestFocus, singleParameterInfo); } }); }