diff --git a/platform/lang-impl/src/com/intellij/ide/ui/search/TraverseUIStarter.java b/platform/lang-impl/src/com/intellij/ide/ui/search/TraverseUIStarter.java index 72fac222ac24..b1c1e25e978c 100644 --- a/platform/lang-impl/src/com/intellij/ide/ui/search/TraverseUIStarter.java +++ b/platform/lang-impl/src/com/intellij/ide/ui/search/TraverseUIStarter.java @@ -30,6 +30,8 @@ import com.intellij.openapi.application.ApplicationStarter; import com.intellij.openapi.application.ex.ApplicationEx; import com.intellij.openapi.keymap.impl.ui.KeymapPanel; import com.intellij.openapi.options.SearchableConfigurable; +import com.intellij.openapi.options.UnnamedConfigurable; +import com.intellij.openapi.options.ex.ConfigurableWrapper; import com.intellij.openapi.project.ProjectManager; import com.intellij.openapi.util.JDOMUtil; import org.jdom.Document; @@ -97,6 +99,12 @@ public class TraverseUIStarter implements ApplicationStarter { configurableElement.setAttribute(CONFIGURABLE_NAME, configurable.getDisplayName()); final TreeSet sortedOptions = options.get(configurable); writeOptions(configurableElement, sortedOptions); + if (configurable instanceof ConfigurableWrapper) { + final UnnamedConfigurable wrapped = ((ConfigurableWrapper)configurable).getConfigurable(); + if (wrapped instanceof SearchableConfigurable) { + configurable = (SearchableConfigurable)wrapped; + } + } if (configurable instanceof KeymapPanel){ processKeymap(configurableElement); } else if (configurable instanceof OptionsContainingConfigurable){ diff --git a/platform/platform-tests/testSrc/com/intellij/search/SearchableOptionsTest.java b/platform/platform-tests/testSrc/com/intellij/search/SearchableOptionsTest.java new file mode 100644 index 000000000000..3d35c5aca2b3 --- /dev/null +++ b/platform/platform-tests/testSrc/com/intellij/search/SearchableOptionsTest.java @@ -0,0 +1,44 @@ +/* + * Copyright 2000-2013 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.intellij.search; + +import com.intellij.ide.fileTemplates.impl.AllFileTemplatesConfigurable; +import com.intellij.ide.ui.search.ConfigurableHit; +import com.intellij.ide.ui.search.SearchableOptionsRegistrar; +import com.intellij.openapi.options.Configurable; +import com.intellij.openapi.options.ConfigurableGroup; +import com.intellij.openapi.options.ex.IdeConfigurablesGroup; +import com.intellij.testFramework.LightPlatformLangTestCase; + +import javax.swing.event.DocumentEvent; +import java.util.Set; + +/** + * User: anna + */ +public class SearchableOptionsTest extends LightPlatformLangTestCase { + public void testFindCodeTemplates() throws Exception { + final ConfigurableHit configurables = + SearchableOptionsRegistrar.getInstance().getConfigurables(new ConfigurableGroup[]{new IdeConfigurablesGroup()}, DocumentEvent.EventType.INSERT, null, "method", getProject()); + final Set configurableSet = configurables.getAll(); + for (Configurable configurable : configurableSet) { + if (configurable.getDisplayName().equals(new AllFileTemplatesConfigurable().getDisplayName())) { + return; + } + } + fail("File Templates are not found"); + } +} diff --git a/resources-en/src/search/searchableOptions.xml b/resources-en/src/search/searchableOptions.xml index 550f54e9584b..d10479787b77 100644 --- a/resources-en/src/search/searchableOptions.xml +++ b/resources-en/src/search/searchableOptions.xml @@ -1,160 +1,222 @@ - - - + - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - + - + - - - - - - - - - - - - - - @@ -789,1242 +475,263 @@ - -