Collection<OptionDescription> () { List<OptionDescription> result = new ArrayList<>(); EditorSettingsExternalizable instance = EditorSettingsExternalizable.getInstance(); result.add( new BooleanOptionDescription(ApplicationBundle.message("checkbox.show.code.folding.outline"), CodeFoldingConfigurable.ID) { @Override public boolean isOptionEnabled() { return instance.isFoldingOutlineShown(); } @Override public void setOptionState(boolean enabled) { instance.setFoldingOutlineShown(enabled); ApplicationManager.getApplication().invokeLater(() -> CodeFoldingConfigurableKt.applyCodeFoldingSettingsChanges(), ModalityState.nonModal()); } } ); String byDefault = ApplicationBundle.message("label.fold.by.default"); CodeFoldingOptionsProviderEP.EP_NAME.forEachExtensionSafe(ep -> { CodeFoldingOptionsProvider wrapper = ConfigurableWrapper.wrapConfigurable(ep); UnnamedConfigurable configurable = wrapper instanceof ConfigurableWrapper ? ((ConfigurableWrapper)wrapper).getConfigurable() : wrapper; if (!(configurable instanceof ConfigurableWithOptionDescriptors)) { return; } String title = ConfigurableBuilder.getConfigurableTitle(configurable); String prefix = title == null ? byDefault + " " : StringUtil.trimEnd(byDefault, ':') + " in " + title + ": "; result.addAll(((ConfigurableWithOptionDescriptors)configurable).getOptionDescriptors(CodeFoldingConfigurable.ID, s -> prefix + s)); }); return result; }