From 753a50e8900d5641c830b8d7f77d38c282f056b4 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Thu, 13 Jun 2013 14:14:16 +0200 Subject: [PATCH] to avoid static initialization issues, extract extension point interface to top level --- .../src/com/intellij/lang/ant/AntParsingTest.java | 6 +++--- .../src/com/intellij/codeInsight/XmlParsingTest.java | 3 +-- .../com/intellij/psi/xml/StartTagEndTokenProvider.java | 10 ++++++++++ .../src/com/intellij/psi/xml/XmlChildRole.java | 10 +--------- .../src/com/intellij/xml/XmlCoreEnvironment.java | 4 ++-- 5 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 xml/xml-psi-impl/src/com/intellij/psi/xml/StartTagEndTokenProvider.java diff --git a/plugins/ant/tests/src/com/intellij/lang/ant/AntParsingTest.java b/plugins/ant/tests/src/com/intellij/lang/ant/AntParsingTest.java index de266621e071..070b5611bb1b 100644 --- a/plugins/ant/tests/src/com/intellij/lang/ant/AntParsingTest.java +++ b/plugins/ant/tests/src/com/intellij/lang/ant/AntParsingTest.java @@ -23,7 +23,7 @@ import com.intellij.lang.xml.XmlASTFactory; import com.intellij.openapi.application.PluginPathManager; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.util.SystemInfo; -import com.intellij.psi.xml.XmlChildRole; +import com.intellij.psi.xml.StartTagEndTokenProvider; import com.intellij.testFramework.ParsingTestCase; public class AntParsingTest extends ParsingTestCase { @@ -36,8 +36,8 @@ public class AntParsingTest extends ParsingTestCase { protected void setUp() throws Exception { super.setUp(); addExplicitExtension(LanguageASTFactory.INSTANCE, XMLLanguage.INSTANCE, new XmlASTFactory()); - registerExtensionPoint(new ExtensionPointName("com.intellij.xml.startTagEndToken"), - XmlChildRole.StartTagEndTokenProvider.class); + registerExtensionPoint(new ExtensionPointName("com.intellij.xml.startTagEndToken"), + StartTagEndTokenProvider.class); } @Override diff --git a/xml/tests/src/com/intellij/codeInsight/XmlParsingTest.java b/xml/tests/src/com/intellij/codeInsight/XmlParsingTest.java index 85f01c54b656..da3254a24815 100644 --- a/xml/tests/src/com/intellij/codeInsight/XmlParsingTest.java +++ b/xml/tests/src/com/intellij/codeInsight/XmlParsingTest.java @@ -49,8 +49,7 @@ public class XmlParsingTest extends ParsingTestCase { addExplicitExtension(LanguageParserDefinitions.INSTANCE, DTDLanguage.INSTANCE, new DTDParserDefinition()); addExplicitExtension(LanguageASTFactory.INSTANCE, XMLLanguage.INSTANCE, new XmlASTFactory()); addExplicitExtension(LanguageASTFactory.INSTANCE, DTDLanguage.INSTANCE, new XmlASTFactory()); - registerExtensionPoint(new ExtensionPointName("com.intellij.xml.startTagEndToken"), - XmlChildRole.StartTagEndTokenProvider.class); + registerExtensionPoint(StartTagEndTokenProvider.EP_NAME, StartTagEndTokenProvider.class); } @Override diff --git a/xml/xml-psi-impl/src/com/intellij/psi/xml/StartTagEndTokenProvider.java b/xml/xml-psi-impl/src/com/intellij/psi/xml/StartTagEndTokenProvider.java new file mode 100644 index 000000000000..e81ea4ad23d1 --- /dev/null +++ b/xml/xml-psi-impl/src/com/intellij/psi/xml/StartTagEndTokenProvider.java @@ -0,0 +1,10 @@ +package com.intellij.psi.xml; + +import com.intellij.openapi.extensions.ExtensionPointName; +import com.intellij.psi.tree.IElementType; + +public interface StartTagEndTokenProvider { + ExtensionPointName EP_NAME = new ExtensionPointName("com.intellij.xml.startTagEndToken"); + + IElementType[] getTypes(); +} diff --git a/xml/xml-psi-impl/src/com/intellij/psi/xml/XmlChildRole.java b/xml/xml-psi-impl/src/com/intellij/psi/xml/XmlChildRole.java index 0e39ab22e2ab..02cb1fe03b5a 100644 --- a/xml/xml-psi-impl/src/com/intellij/psi/xml/XmlChildRole.java +++ b/xml/xml-psi-impl/src/com/intellij/psi/xml/XmlChildRole.java @@ -16,11 +16,9 @@ package com.intellij.psi.xml; import com.intellij.lang.ASTNode; -import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.extensions.Extensions; import com.intellij.psi.PsiElement; import com.intellij.psi.tree.DefaultRoleFinder; -import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.RoleFinder; import com.intellij.util.ArrayUtil; import com.intellij.xml.util.XmlTagUtil; @@ -29,12 +27,6 @@ import org.jetbrains.annotations.Nullable; public interface XmlChildRole { - interface StartTagEndTokenProvider { - IElementType[] getTypes(); - } - - ExtensionPointName EP_NAME = new ExtensionPointName("com.intellij.xml.startTagEndToken"); - RoleFinder START_TAG_NAME_FINDER = new RoleFinder() { public ASTNode findChild(@NotNull ASTNode parent) { final PsiElement element = XmlTagUtil.getStartTagNameElement((XmlTag)parent.getPsi()); @@ -65,7 +57,7 @@ public interface XmlChildRole { RoleFinder ATTRIBUTE_VALUE_VALUE_FINDER = new DefaultRoleFinder(XmlTokenType.XML_ATTRIBUTE_VALUE_TOKEN); RoleFinder START_TAG_END_FINDER = new DefaultRoleFinder(XmlTokenType.XML_TAG_END) { { - final StartTagEndTokenProvider[] tokenProviders = Extensions.getExtensions(EP_NAME); + final StartTagEndTokenProvider[] tokenProviders = Extensions.getExtensions(StartTagEndTokenProvider.EP_NAME); for (StartTagEndTokenProvider tokenProvider : tokenProviders) { myElementTypes = ArrayUtil.mergeArrays(myElementTypes, tokenProvider.getTypes()); } diff --git a/xml/xml-psi-impl/src/com/intellij/xml/XmlCoreEnvironment.java b/xml/xml-psi-impl/src/com/intellij/xml/XmlCoreEnvironment.java index 77852f097a34..2ae1d0d0db65 100644 --- a/xml/xml-psi-impl/src/com/intellij/xml/XmlCoreEnvironment.java +++ b/xml/xml-psi-impl/src/com/intellij/xml/XmlCoreEnvironment.java @@ -26,7 +26,7 @@ import com.intellij.psi.impl.cache.impl.id.IdIndexers; import com.intellij.psi.impl.cache.impl.idCache.XmlIdIndexer; import com.intellij.psi.impl.source.xml.XmlElementDescriptorProvider; import com.intellij.psi.meta.MetaDataContributor; -import com.intellij.psi.xml.XmlChildRole; +import com.intellij.psi.xml.StartTagEndTokenProvider; import com.intellij.psi.xml.XmlFileNSInfoProvider; import com.intellij.util.indexing.FileBasedIndexExtension; import com.intellij.xml.index.XmlNamespaceIndex; @@ -57,7 +57,7 @@ public class XmlCoreEnvironment { appEnvironment.addExplicitExtension(IdIndexers.INSTANCE, XmlFileType.INSTANCE, new XmlIdIndexer()); appEnvironment.addExplicitExtension(IdIndexers.INSTANCE, DTDFileType.INSTANCE, new XmlIdIndexer()); - CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(), XmlChildRole.EP_NAME, XmlChildRole.StartTagEndTokenProvider.class); + CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(), StartTagEndTokenProvider.EP_NAME, StartTagEndTokenProvider.class); CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(), XmlSuppressionProvider.EP_NAME, XmlSuppressionProvider.class); CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(), XmlFileNSInfoProvider.EP_NAME, XmlFileNSInfoProvider.class); CoreApplicationEnvironment.registerExtensionPoint(Extensions.getRootArea(), XmlSchemaProvider.EP_NAME, XmlSchemaProvider.class);