options provider only for se

This commit is contained in:
Sergey Ignatov
2014-10-17 18:41:31 +04:00
parent aa8537e5b0
commit 224500798c
6 changed files with 34 additions and 38 deletions
@@ -19,7 +19,6 @@ import com.intellij.ide.DataManager;
import com.intellij.ide.SearchTopHitProvider;
import com.intellij.ide.actions.ApplyIntentionAction;
import com.intellij.ide.ui.OptionsTopHitProvider;
import com.intellij.ide.ui.TooMuchOptionsProvider;
import com.intellij.ide.ui.search.ActionFromOptionDescriptorProvider;
import com.intellij.ide.ui.search.OptionDescription;
import com.intellij.ide.ui.search.SearchableOptionsRegistrar;
@@ -90,7 +89,7 @@ public class GotoActionItemProvider implements ChooseByNameItemProvider {
Project project = CommonDataKeys.PROJECT.getData(dataContext);
final CollectConsumer<Object> collector = new CollectConsumer<Object>();
for (SearchTopHitProvider provider : SearchTopHitProvider.EP_NAME.getExtensions()) {
if (provider instanceof TooMuchOptionsProvider) continue;
if (provider instanceof OptionsTopHitProvider.Optional) continue;
if (provider instanceof OptionsTopHitProvider && !((OptionsTopHitProvider)provider).isEnabled(project)) continue;
if (provider instanceof OptionsTopHitProvider && !StringUtil.startsWith(pattern, "#")) {
String prefix = "#" + ((OptionsTopHitProvider)provider).getId() + " ";
@@ -18,18 +18,19 @@ package com.intellij.ide.ui;
import com.intellij.ide.ui.search.BooleanOptionDescription;
import com.intellij.notification.impl.NotificationsConfigurationImpl;
import com.intellij.openapi.project.Project;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
/**
* @author Sergey.Malenkov
*/
public class AppearanceOptionsTopHitProvider extends OptionsTopHitProvider {
private static final Collection<BooleanOptionDescription> ourOptions = Collections.unmodifiableCollection(Arrays.asList(
public static final String ID = "appearance";
private static final Collection<BooleanOptionDescription> ourOptions = ContainerUtil.immutableList(
appearance("UI: " + messageIde("checkboox.cyclic.scrolling.in.lists"), "CYCLE_SCROLLING"),
appearance("UI: " + messageIde("checkbox.show.icons.in.quick.navigation"), "SHOW_ICONS_IN_QUICK_NAVIGATION"),
appearance("UI: " + messageIde("checkbox.position.cursor.on.default.button"), "MOVE_MOUSE_ON_DEFAULT_BUTTON"),
@@ -48,7 +49,7 @@ public class AppearanceOptionsTopHitProvider extends OptionsTopHitProvider {
appearance("Window: Small labels in editor tabs", "USE_SMALL_LABELS_ON_TABS"),
appearance("Window: " + messageIde("checkbox.widescreen.tool.window.layout"), "WIDESCREEN_SUPPORT"),
appearance("Window: " + messageIde("checkbox.right.toolwindow.layout"), "RIGHT_HORIZONTAL_SPLIT"),
appearance("Window: " + messageIde("checkbox.use.preview.window"), "NAVIGATE_TO_PREVIEW")));
appearance("Window: " + messageIde("checkbox.use.preview.window"), "NAVIGATE_TO_PREVIEW"));
@NotNull
@Override
@@ -58,7 +59,7 @@ public class AppearanceOptionsTopHitProvider extends OptionsTopHitProvider {
@Override
public String getId() {
return "appearance";
return ID;
}
static BooleanOptionDescription appearance(String option, String field) {
@@ -88,18 +89,23 @@ public class AppearanceOptionsTopHitProvider extends OptionsTopHitProvider {
};
}
public static class Ex extends AppearanceOptionsTopHitProvider implements TooMuchOptionsProvider {
private static final Collection<BooleanOptionDescription> ourOptions = Collections.unmodifiableCollection(Arrays.asList(
public static class Ex extends OptionsTopHitProvider implements OptionsTopHitProvider.Optional {
private static final Collection<BooleanOptionDescription> ourOptions = ContainerUtil.immutableList(
appearance("Window: " + "Hide Tool Window Bars", "HIDE_TOOL_STRIPES"),
appearance("View: Show Main Toolbar", "SHOW_MAIN_TOOLBAR"),
appearance("View: Show Status Bar", "SHOW_STATUS_BAR"),
appearance("View: Show Navigation Bar", "SHOW_NAVIGATION_BAR")
));
);
@NotNull
@Override
public Collection<BooleanOptionDescription> getOptions(@Nullable Project project) {
return ourOptions;
}
@Override
public String getId() {
return ID;
}
}
}
@@ -18,18 +18,19 @@ package com.intellij.ide.ui;
import com.intellij.ide.ui.search.BooleanOptionDescription;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.SystemInfo;
import com.intellij.util.containers.ContainerUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
/**
* @author Konstantin Bulenkov
*/
public class EditorOptionsTopHitProvider extends OptionsTopHitProvider {
private static final Collection<BooleanOptionDescription> ourOptions = Collections.unmodifiableCollection(Arrays.asList(
private static final String ID = "editor";
private static final Collection<BooleanOptionDescription> ourOptions = ContainerUtil.immutableList(
editor("Mouse: " + messageApp("checkbox.honor.camelhumps.words.settings.on.double.click"),
"IS_MOUSE_CLICK_SELECTION_HONORS_CAMEL_WORDS"),
editor("Mouse: " + messageApp(SystemInfo.isMac
@@ -58,7 +59,8 @@ public class EditorOptionsTopHitProvider extends OptionsTopHitProvider {
editorTabs("Tabs: " + messageApp("checkbox.editor.tabs.show.close.button"), "SHOW_CLOSE_BUTTON"),
editorTabs("Tabs: " + messageApp("checkbox.mark.modified.tabs.with.asterisk"), "MARK_MODIFIED_TABS_WITH_ASTERISK"),
editorTabs("Tabs: " + messageApp("checkbox.show.tabs.tooltips"), "SHOW_TABS_TOOLTIPS"),
editorTabs("Tabs: " + messageApp("radio.close.non.modified.files.first"), "CLOSE_NON_MODIFIED_FILES_FIRST")));
editorTabs("Tabs: " + messageApp("radio.close.non.modified.files.first"), "CLOSE_NON_MODIFIED_FILES_FIRST")
);
@NotNull
@Override
@@ -68,7 +70,7 @@ public class EditorOptionsTopHitProvider extends OptionsTopHitProvider {
@Override
public String getId() {
return "editor";
return ID;
}
static BooleanOptionDescription editor(String option, String field) {
@@ -95,15 +97,20 @@ public class EditorOptionsTopHitProvider extends OptionsTopHitProvider {
return new DaemonCodeAnalyzerOptionDescription(field, option, "editor.preferences.appearance");
}
public static class Ex extends EditorOptionsTopHitProvider implements TooMuchOptionsProvider {
private static final Collection<BooleanOptionDescription> ourOptions = Collections.unmodifiableCollection(Arrays.asList(
public static class Ex extends OptionsTopHitProvider implements OptionsTopHitProvider.Optional {
private static final Collection<BooleanOptionDescription> ourOptions = ContainerUtil.immutableList(
editorApp("Appearance: " + messageApp("checkbox.show.line.numbers"), "ARE_LINE_NUMBERS_SHOWN")
));
);
@NotNull
@Override
public Collection<BooleanOptionDescription> getOptions(@Nullable Project project) {
return ourOptions;
}
@Override
public String getId() {
return ID;
}
}
}
@@ -76,4 +76,7 @@ public abstract class OptionsTopHitProvider implements SearchTopHitProvider {
static String messageKeyMap(String property) {
return StringUtil.stripHtml(KeyMapBundle.message(property), false);
}
public interface Optional { // for search everywhere only
}
}
@@ -1,19 +0,0 @@
/*
* Copyright 2000-2014 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.ide.ui;
public interface TooMuchOptionsProvider {
}
@@ -24,7 +24,7 @@ import com.intellij.util.Consumer;
/**
* @author Konstantin Bulenkov
*/
public class UISimpleSettingsProvider implements SearchTopHitProvider, TooMuchOptionsProvider {
public class UISimpleSettingsProvider implements SearchTopHitProvider, OptionsTopHitProvider.Optional {
private static OptionDescription CYCLING_SCROLLING = AppearanceOptionsTopHitProvider.appearance("Cyclic scrolling", "CYCLE_SCROLLING");
private static OptionDescription MEMORY_INDICATOR = AppearanceOptionsTopHitProvider.appearance("Show Memory Indicator",
"SHOW_MEMORY_INDICATOR");