IDEA-225625 EPs to make dynamic

making xmlStructureViewBuilderProvider dynamic

GitOrigin-RevId: c8b43c6afe70c538a25b533b5f5bfdbba91e858c
This commit is contained in:
Dmitry Avdeev
2020-02-11 15:53:14 +03:00
committed by intellij-monorepo-bot
parent e6511aa319
commit 90e7985fef
9 changed files with 70 additions and 4 deletions

View File

@@ -12,5 +12,6 @@
<orderEntry type="module" module-name="intellij.platform.structureView.impl" />
<orderEntry type="module" module-name="intellij.platform.core.impl" />
<orderEntry type="module" module-name="intellij.platform.util.ui" />
<orderEntry type="module" module-name="intellij.platform.lang.impl" />
</component>
</module>

View File

@@ -5,6 +5,7 @@
*/
package com.intellij.lang.xml;
import com.intellij.ide.impl.StructureViewWrapperImpl;
import com.intellij.ide.structureView.StructureViewBuilder;
import com.intellij.ide.structureView.StructureViewModel;
import com.intellij.ide.structureView.TreeBasedStructureViewBuilder;
@@ -13,7 +14,9 @@ import com.intellij.ide.structureView.xml.XmlStructureViewBuilderProvider;
import com.intellij.lang.Language;
import com.intellij.lang.LanguageStructureViewBuilder;
import com.intellij.lang.PsiStructureViewFactory;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.extensions.ExtensionPointUtil;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.psi.PsiFile;
import com.intellij.psi.xml.XmlFile;
@@ -21,6 +24,14 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
public class XmlStructureViewBuilderFactory implements PsiStructureViewFactory {
public XmlStructureViewBuilderFactory()
{
XmlStructureViewBuilderProvider.EP_NAME.addExtensionPointListener(
() -> ApplicationManager.getApplication().getMessageBus().syncPublisher(StructureViewWrapperImpl.STRUCTURE_CHANGED).run(),
ExtensionPointUtil.createKeyedExtensionDisposable(this, PsiStructureViewFactory.EP_NAME.getPoint(null)));
}
@Override
@Nullable
public StructureViewBuilder getStructureViewBuilder(@NotNull final PsiFile psiFile) {