@Override
  public @NotNull Collection<OptionDescription> getOptions() {
    List<OptionDescription> result = new ArrayList<>();
    for (RegistryValue value : ((RegistryManagerImpl)RegistryManager.getInstance()).getAll()) {
      if (value.isBoolean()) {
        String key = value.getKey();
        RegistryBooleanOptionDescriptor optionDescriptor = new RegistryBooleanOptionDescriptor(key, key);
        if (value.isChangedFromDefault()) {
          result.add(0, optionDescriptor);
        }
        else {
          result.add(optionDescriptor);
        }
      }
      else {
        result.add(new RegistryTextOptionDescriptor(value));
      }
    }
    List<ExperimentalFeature> experimentalFeatureList = Experiments.EP_NAME.getExtensionList();
    if (!experimentalFeatureList.isEmpty()) {
      Experiments experiments = Experiments.getInstance();
      for (ExperimentalFeature feature : experimentalFeatureList) {
        @NlsSafe String optionName = feature.id; // Probably need to add localized feature.name
        ExperimentalFeatureBooleanOptionDescriptor descriptor = new ExperimentalFeatureBooleanOptionDescriptor(optionName, feature.id);
        if (experiments.isChanged(feature.id)) {
          result.add(0, descriptor);
        }
        else {
          result.add(descriptor);
        }
      }
    }
    return result;
  }
@Override
  public @NotNull Collection<OptionDescription> getOptions()