/*
 * Copyright 2000-2017 JetBrains s.r.o.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.jetbrains.python;

import com.intellij.ide.ui.search.SearchableOptionContributor;
import com.intellij.ide.ui.search.SearchableOptionProcessor;
import org.jetbrains.annotations.NotNull;

public class PySearchableOptionContributor extends SearchableOptionContributor {
  @Override
  public void processOptions(@NotNull SearchableOptionProcessor processor) {
    processIntegratedTools(processor);

    processProjectSettings(processor);
  }

  private static void processProjectSettings(SearchableOptionProcessor processor) {
    processor.addOptions("Python interpreter", "Project interpreter", "Python interpreter", "com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable", "Project interpreter", true);
  }

  private static void processIntegratedTools(SearchableOptionProcessor processor) {
    final String configurableId = "com.jetbrains.python.configuration.PyIntegratedToolsModulesConfigurable";
    final String displayName = "Python Integrated Tools";
    processor.addOptions("Package requirements file", displayName, "Package requirements file",
                         configurableId, displayName, true);
    processor.addOptions("Default test runner", displayName, "Default test runner",
                         configurableId, displayName, true);
    processor.addOptions("Docstring format", displayName, "Docstring format",
                         configurableId, displayName, true);
    processor.addOptions("Analyze Python code in docstrings", displayName, "Analyze Python code in docstrings",
                         configurableId, displayName, true);
    processor.addOptions("Sphinx working directory", displayName, "Sphinx working directory",
                         configurableId, displayName, true);
    processor.addOptions("Treat txt files as reStructuredText", displayName, "Treat *.txt files as reStructuredText ",
                         configurableId, displayName, false);
    processor.addOptions("reStructuredText", displayName, "Docstring format",
                         configurableId, displayName, false);
    processor.addOptions("Epytext", "Docstring format", "Docstring format",
                         configurableId, displayName, false);
    processor.addOptions("Plain", displayName, "Docstring format",
                         configurableId, displayName, false);
    processor.addOptions("Unittests", displayName, "Default test runner",
                         configurableId, displayName, false);
    processor.addOptions("py.test", displayName, "Default test runner",
                         configurableId, displayName, false);
    processor.addOptions("Nosetests", displayName, "Default test runner",
                         configurableId, displayName, false);
    processor.addOptions("Attests", displayName, "Default test runner",
                         configurableId, displayName, false);
  }
}

@@ -1122,32 +1122,116 @@
 or processor) %7B%0A
+    String id = %22com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable%22;%0A
     processor.ad
@@ -1309,75 +1309,340 @@
 er%22,
- %22com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable%22
+%0A                         id, %22Project interpreter%22, true);%0A%0A    processor.addOptions(%22pip package%22, %22Project interpreter%22, %22Project Interpreter Packages%22,%0A                         id, %22Project interpreter%22, true);%0A%0A%0A    processor.addOptions(%22virtualenv venv%22, %22Project interpreter%22, %22Create VirtualEnv%22,%0A                         id
 , %22P
@@ -1665,24 +1665,25 @@
 er%22, true);%0A
+%0A
   %7D%0A%0A  priva

Add more synonyms to the Python project interpreter (PY-24580)