void (@NotNull Project project, @NotNull Editor editor, @NotNull PsiFile file, boolean showFeedbackOnEmptyMenu) { long start = System.currentTimeMillis(); PsiDocumentManager.getInstance(project).commitAllDocuments(); if (editor instanceof EditorWindow) { editor = ((EditorWindow)editor).getDelegate(); file = InjectedLanguageManager.getInstance(file.getProject()).getTopLevelFile(file); } LookupEx lookup = LookupManager.getActiveLookup(editor); if (lookup != null) { lookup.showElementActions(null); return; } if (!LightEdit.owns(project)) { DaemonCodeAnalyzerImpl codeAnalyzer = (DaemonCodeAnalyzerImpl)DaemonCodeAnalyzer.getInstance(project); letAutoImportComplete(editor, file, codeAnalyzer); } IntentionsUI.getInstance(project).hide(); if (HintManagerImpl.getInstanceImpl().performCurrentQuestionAction()) { return; } //intentions check isWritable before modification: if (!file.isWritable()) return; TemplateState state = TemplateManagerImpl.getTemplateState(editor); if (state != null && !state.isFinished()) { CommandProcessor.getInstance().executeCommand(project, () -> state.gotoEnd(false), LangBundle.message("command.name.finish.template"), null); } editor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE); showIntentionHint(project, editor, file, showFeedbackOnEmptyMenu); long elapsed = System.currentTimeMillis() - start; IntentionFUSCollector.reportPopupDelay(project, elapsed, file.getFileType()); }