void (@NotNull final Project project, @NotNull final Editor editor, @NotNull PsiFile file) { if (!EditorModificationUtil.checkModificationAllowed(editor)) return; if (!editor.getSelectionModel().hasSelection()) { SurroundWithHandler.selectLogicalLineContentsAtCaret(editor); if (!editor.getSelectionModel().hasSelection()) return; } List<AnAction> group = createActionGroup(editor, file, new HashSet<>()); if (group.isEmpty()) { HintManager.getInstance().showErrorHint(editor, CodeInsightBundle.message("templates.surround.no.defined")); return; } ListPopup popup = JBPopupFactory.getInstance() .createActionGroupPopup(CodeInsightBundle.message("templates.select.template.chooser.title"), new DefaultActionGroup(group), DataManager.getInstance().getDataContext(editor.getContentComponent()), JBPopupFactory.ActionSelectionAid.MNEMONICS, false); popup.showInBestPositionFor(editor); }