void (EditorTextField field) { field.addSettingsProvider(editor -> { ExtendableTextComponent.Extension extension = ExtendableTextComponent.Extension .create(AllIcons.General.InlineAdd, AllIcons.General.InlineAddHover, TaskBundle.message("settings.add.placeholder"), () -> { Set<String> placeholders = new HashSet<>(); for (CommitPlaceholderProvider provider : CommitPlaceholderProvider.EXTENSION_POINT_NAME.getExtensionList()) { placeholders.addAll(Arrays.asList(provider.getPlaceholders(null))); } JBPopupFactory.getInstance().createListPopup(new BaseListPopupStep<>(TaskBundle.message("settings.placeholders"), ArrayUtilRt.toStringArray(placeholders)) { @Override public PopupStep onChosen(String selectedValue, boolean finalChoice) { WriteCommandAction.runWriteCommandAction(myProject, () -> editor.getDocument() .insertString(editor.getCaretModel().getOffset(), "${" + selectedValue + "}")); return FINAL_CHOICE; } }).showInBestPositionFor(editor); }); ExtendableEditorSupport.setupExtension(editor, field.getBackground(), extension); }); }