@Override
  public @NotNull Collection<OptionDescription> getOptions() {
    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(() -> CodeFoldingConfigurable.Util.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;
  }
@Override
  public @NotNull Collection<OptionDescription> getOptions()