diff --git a/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.form b/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.form
index dee99e97b52d..42b6c69f61fd 100644
--- a/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.form
+++ b/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.form
@@ -1,6 +1,6 @@
diff --git a/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.java b/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.java
index 62acd2103353..5b3cc29e5ec5 100644
--- a/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.java
+++ b/platform/lang-impl/src/com/intellij/application/options/editor/EditorAppearanceConfigurable.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2014 JetBrains s.r.o.
+ * Copyright 2000-2015 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.
@@ -24,7 +24,9 @@ import com.intellij.ide.ui.UISettings;
import com.intellij.openapi.application.ApplicationBundle;
import com.intellij.openapi.editor.ex.EditorSettingsExternalizable;
import com.intellij.openapi.extensions.ExtensionPointName;
-import com.intellij.openapi.options.*;
+import com.intellij.openapi.options.CompositeConfigurable;
+import com.intellij.openapi.options.ConfigurationException;
+import com.intellij.openapi.options.UnnamedConfigurable;
import com.intellij.openapi.options.ex.ConfigurableWrapper;
import org.jetbrains.annotations.Nls;
import org.jetbrains.annotations.NotNull;
@@ -36,7 +38,7 @@ import java.awt.event.ActionListener;
import java.util.List;
/**
- * To provide additional options in Editor | Appearance section register implementation of {@link com.intellij.openapi.options.UnnamedConfigurable} in the plugin.xml:
+ * To provide additional options in Editor | Appearance section register implementation of {@link UnnamedConfigurable} in the plugin.xml:
*
* <extensions defaultExtensionNs="com.intellij">
* <editorAppearanceConfigurable instance="class-name"/>
@@ -64,6 +66,7 @@ public class EditorAppearanceConfigurable extends CompositeConfigurable implements UnnamedConfigurable {
public WebEditorAppearanceConfigurable() {
super(WebEditorOptions.getInstance());
- checkBox("breadcrumbsEnabled", XmlBundle.message("xml.editor.options.breadcrumbs.title"));
checkBox("showCssColorPreviewInGutter", "Show CSS color preview icon in gutter");
checkBox("showCssInlineColorPreview", "Show CSS color preview as background");
}
diff --git a/xml/impl/src/com/intellij/codeInsight/daemon/impl/tagTreeHighlighting/XmlTagTreeHighlightingPass.java b/xml/impl/src/com/intellij/codeInsight/daemon/impl/tagTreeHighlighting/XmlTagTreeHighlightingPass.java
index ebf85eab5f4a..7a1a25287d8f 100644
--- a/xml/impl/src/com/intellij/codeInsight/daemon/impl/tagTreeHighlighting/XmlTagTreeHighlightingPass.java
+++ b/xml/impl/src/com/intellij/codeInsight/daemon/impl/tagTreeHighlighting/XmlTagTreeHighlightingPass.java
@@ -74,7 +74,7 @@ public class XmlTagTreeHighlightingPass extends TextEditorHighlightingPass {
myFile = file;
myEditor = editor;
final FileViewProvider viewProvider = file.getManager().findViewProvider(file.getVirtualFile());
- myInfoProvider = BreadcrumbsXmlWrapper.findInfoProvider(viewProvider, WebEditorOptions.getInstance());
+ myInfoProvider = BreadcrumbsXmlWrapper.findInfoProvider(viewProvider);
}
@Override
diff --git a/xml/impl/src/com/intellij/xml/breadcrumbs/BreadcrumbsLoaderComponent.java b/xml/impl/src/com/intellij/xml/breadcrumbs/BreadcrumbsLoaderComponent.java
index 5122b35b08a2..2b6a5d71eba2 100644
--- a/xml/impl/src/com/intellij/xml/breadcrumbs/BreadcrumbsLoaderComponent.java
+++ b/xml/impl/src/com/intellij/xml/breadcrumbs/BreadcrumbsLoaderComponent.java
@@ -15,7 +15,8 @@
*/
package com.intellij.xml.breadcrumbs;
-import com.intellij.application.options.editor.WebEditorOptions;
+import com.intellij.ide.ui.UISettings;
+import com.intellij.ide.ui.UISettingsListener;
import com.intellij.openapi.Disposable;
import com.intellij.openapi.components.AbstractProjectComponent;
import com.intellij.openapi.editor.Editor;
@@ -54,17 +55,17 @@ public class BreadcrumbsLoaderComponent extends AbstractProjectComponent {
public void initComponent() {
MessageBusConnection connection = myProject.getMessageBus().connect(myProject);
connection.subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, new MyFileEditorManagerListener());
- connection.subscribe(WebEditorOptions.WEB_EDITOR_OPTIONS, new MyWebEditorOptionsListener());
connection.subscribe(FileTypeManager.TOPIC, new MyFileTypeListener());
MyVirtualFileListener listener = new MyVirtualFileListener();
VirtualFileManager.getInstance().addVirtualFileListener(listener, myProject);
+ UISettings.getInstance().addUISettingsListener(new MyUISettingsListener(), myProject);
}
private static class MyFileEditorManagerListener extends FileEditorManagerAdapter {
@Override
public void fileOpened(@NotNull final FileEditorManager source, @NotNull final VirtualFile file) {
- reinitBreadcrumbsComponent(source, file, WebEditorOptions.getInstance());
+ reinitBreadcrumbsComponent(source, file);
}
}
@@ -75,37 +76,35 @@ public class BreadcrumbsLoaderComponent extends AbstractProjectComponent {
FileEditorManager fileEditorManager = FileEditorManager.getInstance(myProject);
VirtualFile file = event.getFile();
if (fileEditorManager.isFileOpen(file)) {
- reinitBreadcrumbsComponent(fileEditorManager, file, WebEditorOptions.getInstance());
+ reinitBreadcrumbsComponent(fileEditorManager, file);
}
}
}
}
- private class MyWebEditorOptionsListener implements WebEditorOptions.WebEditorOptionsListener {
- @Override
- public void breadcrumbsOptionsChanged(@NotNull WebEditorOptions options) {
- reinitBreadcrumbsInAllEditors(options);
- }
- }
-
private class MyFileTypeListener extends FileTypeListener.Adapter {
@Override
public void fileTypesChanged(@NotNull FileTypeEvent event) {
- reinitBreadcrumbsInAllEditors(WebEditorOptions.getInstance());
+ reinitBreadcrumbsInAllEditors();
}
}
- private void reinitBreadcrumbsInAllEditors(@NotNull WebEditorOptions options) {
+ private class MyUISettingsListener implements UISettingsListener {
+ @Override
+ public void uiSettingsChanged(UISettings source) {
+ reinitBreadcrumbsInAllEditors();
+ }
+ }
+
+ private void reinitBreadcrumbsInAllEditors() {
FileEditorManager fileEditorManager = FileEditorManager.getInstance(myProject);
for (VirtualFile virtualFile : fileEditorManager.getOpenFiles()) {
- reinitBreadcrumbsComponent(fileEditorManager, virtualFile, options);
+ reinitBreadcrumbsComponent(fileEditorManager, virtualFile);
}
}
- private static void reinitBreadcrumbsComponent(@NotNull final FileEditorManager fileEditorManager,
- @NotNull VirtualFile file,
- @NotNull WebEditorOptions webEditorOptions) {
- if (webEditorOptions.isBreadcrumbsEnabled() && isSuitable(fileEditorManager.getProject(), file, webEditorOptions)) {
+ private static void reinitBreadcrumbsComponent(@NotNull final FileEditorManager fileEditorManager, @NotNull VirtualFile file) {
+ if (isSuitable(fileEditorManager.getProject(), file)) {
FileEditor[] fileEditors = fileEditorManager.getAllEditors(file);
for (final FileEditor fileEditor : fileEditors) {
if (fileEditor instanceof TextEditor) {
@@ -113,7 +112,7 @@ public class BreadcrumbsLoaderComponent extends AbstractProjectComponent {
if (BreadcrumbsXmlWrapper.getBreadcrumbsComponent(editor) != null) {
continue;
}
- final BreadcrumbsXmlWrapper wrapper = new BreadcrumbsXmlWrapper(editor, webEditorOptions);
+ final BreadcrumbsXmlWrapper wrapper = new BreadcrumbsXmlWrapper(editor);
final JComponent c = wrapper.getComponent();
fileEditorManager.addTopComponent(fileEditor, c);
@@ -144,13 +143,13 @@ public class BreadcrumbsLoaderComponent extends AbstractProjectComponent {
}
}
- private static boolean isSuitable(@NotNull Project project, @NotNull VirtualFile file, @NotNull WebEditorOptions webEditorOptions) {
+ private static boolean isSuitable(@NotNull Project project, @NotNull VirtualFile file) {
if (file instanceof HttpVirtualFile) {
return false;
}
final FileViewProvider provider = PsiManager.getInstance(project).findViewProvider(file);
- return provider != null && BreadcrumbsXmlWrapper.findInfoProvider(provider, webEditorOptions) != null;
+ return provider != null && BreadcrumbsXmlWrapper.findInfoProvider(provider) != null;
}
private static void disposeWrapper(@NotNull FileEditorManager fileEditorManager,
diff --git a/xml/impl/src/com/intellij/xml/breadcrumbs/BreadcrumbsXmlWrapper.java b/xml/impl/src/com/intellij/xml/breadcrumbs/BreadcrumbsXmlWrapper.java
index a308cdc2d421..1787dbe4d419 100644
--- a/xml/impl/src/com/intellij/xml/breadcrumbs/BreadcrumbsXmlWrapper.java
+++ b/xml/impl/src/com/intellij/xml/breadcrumbs/BreadcrumbsXmlWrapper.java
@@ -15,7 +15,6 @@
*/
package com.intellij.xml.breadcrumbs;
-import com.intellij.application.options.editor.WebEditorOptions;
import com.intellij.codeInsight.daemon.impl.tagTreeHighlighting.XmlTagTreeHighlightingUtil;
import com.intellij.codeInsight.highlighting.HighlightManager;
import com.intellij.ide.ui.UISettings;
@@ -33,6 +32,7 @@ import com.intellij.openapi.editor.event.CaretAdapter;
import com.intellij.openapi.editor.event.CaretEvent;
import com.intellij.openapi.editor.event.CaretListener;
import com.intellij.openapi.editor.ex.EditorGutterComponentEx;
+import com.intellij.openapi.editor.ex.EditorSettingsExternalizable;
import com.intellij.openapi.editor.impl.EditorImpl;
import com.intellij.openapi.editor.markup.RangeHighlighter;
import com.intellij.openapi.editor.markup.TextAttributes;
@@ -80,7 +80,7 @@ public class BreadcrumbsXmlWrapper implements BreadcrumbsItemListener BREADCRUMBS_COMPONENT_KEY = new Key("BREADCRUMBS_KEY");
- public BreadcrumbsXmlWrapper(@NotNull final Editor editor, @NotNull WebEditorOptions webEditorOptions) {
+ public BreadcrumbsXmlWrapper(@NotNull final Editor editor) {
myEditor = editor;
myEditor.putUserData(BREADCRUMBS_COMPONENT_KEY, this);
@@ -112,7 +112,7 @@ public class BreadcrumbsXmlWrapper implements BreadcrumbsItemListener {
- public static final Topic WEB_EDITOR_OPTIONS =
- new Topic("web editor options changed", WebEditorOptionsListener.class);
-
- private boolean myBreadcrumbsEnabled = true;
private boolean myShowCssColorPreviewInGutter = true;
private boolean mySelectWholeCssIdentifierOnDoubleClick = true;
private boolean myShowCssInlineColorPreview = false;
@@ -54,18 +48,6 @@ public class WebEditorOptions implements PersistentStateComponent