Collection<OptionDescription> () { 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; }