mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
IDEA-45342 Breadcrumbs are not shown for XML file
This commit is contained in:
@@ -136,6 +136,7 @@ fix.html.family=Fix Html
|
||||
|
||||
xml.options=XML Options
|
||||
xml.editor.options.breadcrumbs.title=Show HTML breadcrumbs (Reopen editor for changes to take effect)
|
||||
xml.editor.options.breadcrumbs.for.xml.title=Show breadcrumbs for XML files
|
||||
xml.editor.options.misc.title=XML/HTML
|
||||
|
||||
invalid.url.title=Invalid URL
|
||||
|
||||
+1
@@ -26,6 +26,7 @@ public class WebEditorAppearanceConfigurable extends BeanConfigurable<WebEditorO
|
||||
public WebEditorAppearanceConfigurable() {
|
||||
super(WebEditorOptions.getInstance());
|
||||
checkBox("breadcrumbsEnabled", XmlBundle.message("xml.editor.options.breadcrumbs.title"));
|
||||
checkBox("breadcrumbsEnabledInXml", XmlBundle.message("xml.editor.options.breadcrumbs.for.xml.title"));
|
||||
checkBox("showCssColorPreviewInGutter", "Show CSS Color preview icon in gutter");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -39,6 +39,7 @@ import java.io.File;
|
||||
public class WebEditorOptions implements PersistentStateComponent<WebEditorOptions>, ExportableComponent {
|
||||
|
||||
private boolean myBreadcrumbsEnabled = true;
|
||||
private boolean myBreadcrumbsEnabledInXml = false;
|
||||
private boolean myShowCssColorPreviewInGutter = true;
|
||||
private boolean myAutomaticallyInsertClosingTag = true;
|
||||
private boolean myAutomaticallyInsertRequiredAttributes = true;
|
||||
@@ -59,6 +60,14 @@ public class WebEditorOptions implements PersistentStateComponent<WebEditorOptio
|
||||
return myBreadcrumbsEnabled;
|
||||
}
|
||||
|
||||
public void setBreadcrumbsEnabledInXml(boolean b) {
|
||||
myBreadcrumbsEnabledInXml = b;
|
||||
}
|
||||
|
||||
public boolean isBreadcrumbsEnabledInXml() {
|
||||
return myBreadcrumbsEnabledInXml;
|
||||
}
|
||||
|
||||
public boolean isShowCssColorPreviewInGutter() {
|
||||
return myShowCssColorPreviewInGutter;
|
||||
}
|
||||
|
||||
@@ -44,7 +44,8 @@ public class BreadcrumbsLoaderComponent extends AbstractProjectComponent {
|
||||
}
|
||||
|
||||
private static boolean isEnabled() {
|
||||
return WebEditorOptions.getInstance().isBreadcrumbsEnabled();
|
||||
final WebEditorOptions webEditorOptions = WebEditorOptions.getInstance();
|
||||
return webEditorOptions.isBreadcrumbsEnabled() || webEditorOptions.isBreadcrumbsEnabledInXml();
|
||||
}
|
||||
|
||||
private static class MyFileEditorManagerListener implements FileEditorManagerListener {
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
*/
|
||||
package com.intellij.xml.breadcrumbs;
|
||||
|
||||
import com.intellij.application.options.editor.WebEditorOptions;
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.lang.xml.XMLLanguage;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
@@ -252,8 +254,11 @@ public class BreadcrumbsXmlWrapper implements BreadcrumbsItemListener<Breadcrumb
|
||||
static BreadcrumbsInfoProvider findInfoProvider(@Nullable FileViewProvider viewProvider) {
|
||||
BreadcrumbsInfoProvider provider = null;
|
||||
if (viewProvider != null) {
|
||||
final WebEditorOptions webEditorOptions = WebEditorOptions.getInstance();
|
||||
final Language baseLang = viewProvider.getBaseLanguage();
|
||||
provider = getInfoProvider(baseLang);
|
||||
if (!webEditorOptions.isBreadcrumbsEnabledInXml() && baseLang == XMLLanguage.INSTANCE) return null;
|
||||
if (!webEditorOptions.isBreadcrumbsEnabled() && baseLang != XMLLanguage.INSTANCE) return null;
|
||||
if (provider == null) {
|
||||
for (final Language language : viewProvider.getLanguages()) {
|
||||
provider = getInfoProvider(language);
|
||||
|
||||
@@ -44,7 +44,7 @@ public class XmlLanguageBreadcrumbsInfoProvider extends BreadcrumbsInfoProvider
|
||||
}
|
||||
|
||||
public Language[] getLanguages() {
|
||||
return new Language[]{XHTMLLanguage.INSTANCE, HTMLLanguage.INSTANCE};
|
||||
return new Language[]{XMLLanguage.INSTANCE, XHTMLLanguage.INSTANCE, HTMLLanguage.INSTANCE};
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@@ -77,7 +77,7 @@ public class XmlLanguageBreadcrumbsInfoProvider extends BreadcrumbsInfoProvider
|
||||
@Nullable
|
||||
public String getElementTooltip(@NotNull final PsiElement e) {
|
||||
final XmlTag tag = (XmlTag)e;
|
||||
final StringBuffer result = new StringBuffer("<");
|
||||
final StringBuffer result = new StringBuffer("<");
|
||||
result.append(tag.getName());
|
||||
final XmlAttribute[] attributes = tag.getAttributes();
|
||||
for (final XmlAttribute each : attributes) {
|
||||
@@ -85,10 +85,10 @@ public class XmlLanguageBreadcrumbsInfoProvider extends BreadcrumbsInfoProvider
|
||||
}
|
||||
|
||||
if (tag.isEmpty()) {
|
||||
result.append("/>");
|
||||
result.append("/>");
|
||||
}
|
||||
else {
|
||||
result.append(">...</").append(tag.getName()).append(">");
|
||||
result.append(">...</").append(tag.getName()).append(">");
|
||||
}
|
||||
|
||||
return result.toString();
|
||||
|
||||
Reference in New Issue
Block a user