diff --git a/plugins/devkit/src/dom/Action.java b/plugins/devkit/src/dom/Action.java index 18f6ab68ac2d..773d3a5ebfa5 100644 --- a/plugins/devkit/src/dom/Action.java +++ b/plugins/devkit/src/dom/Action.java @@ -22,6 +22,7 @@ package org.jetbrains.idea.devkit.dom; import com.intellij.psi.PsiClass; import com.intellij.util.xml.*; import org.jetbrains.annotations.NotNull; +import org.jetbrains.idea.devkit.dom.impl.PluginPsiClassConverter; import java.util.List; diff --git a/plugins/devkit/src/dom/Component.java b/plugins/devkit/src/dom/Component.java index 5ee37ca70c97..c21a21f1ef18 100644 --- a/plugins/devkit/src/dom/Component.java +++ b/plugins/devkit/src/dom/Component.java @@ -22,6 +22,7 @@ package org.jetbrains.idea.devkit.dom; import com.intellij.psi.PsiClass; import com.intellij.util.xml.*; import org.jetbrains.annotations.NotNull; +import org.jetbrains.idea.devkit.dom.impl.PluginPsiClassConverter; import java.util.List; diff --git a/plugins/devkit/src/dom/ExtensionPoint.java b/plugins/devkit/src/dom/ExtensionPoint.java index 47e1f59ab817..658ca26ef55b 100644 --- a/plugins/devkit/src/dom/ExtensionPoint.java +++ b/plugins/devkit/src/dom/ExtensionPoint.java @@ -18,6 +18,7 @@ package org.jetbrains.idea.devkit.dom; import com.intellij.psi.PsiClass; import com.intellij.util.xml.*; import org.jetbrains.annotations.NotNull; +import org.jetbrains.idea.devkit.dom.impl.PluginPsiClassConverter; /** * @author mike diff --git a/plugins/devkit/src/dom/IdeaPlugin.java b/plugins/devkit/src/dom/IdeaPlugin.java index 8d1d193daa8e..6afc6966bd67 100644 --- a/plugins/devkit/src/dom/IdeaPlugin.java +++ b/plugins/devkit/src/dom/IdeaPlugin.java @@ -91,6 +91,9 @@ public interface IdeaPlugin extends DomElement { @SubTagList("depends") Dependency addDependency(); + @NotNull + @SubTagList("module") + List getModules(); @NotNull @SubTagList("extensions") diff --git a/plugins/devkit/src/dom/PluginModule.java b/plugins/devkit/src/dom/PluginModule.java new file mode 100644 index 000000000000..2efc1cabdb71 --- /dev/null +++ b/plugins/devkit/src/dom/PluginModule.java @@ -0,0 +1,32 @@ +/* + * Copyright 2000-2009 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 org.jetbrains.idea.devkit.dom; + +import com.intellij.util.xml.DomElement; +import com.intellij.util.xml.GenericAttributeValue; +import com.intellij.util.xml.NameValue; +import org.jetbrains.annotations.NotNull; + +/** + * @author Dmitry Avdeev + */ +public interface PluginModule extends DomElement { + + @NotNull + @NameValue + GenericAttributeValue getValue(); + +} diff --git a/plugins/devkit/resources/com/intellij/util/xml/PluginPsiClassConverter.java b/plugins/devkit/src/dom/impl/PluginPsiClassConverter.java similarity index 87% rename from plugins/devkit/resources/com/intellij/util/xml/PluginPsiClassConverter.java rename to plugins/devkit/src/dom/impl/PluginPsiClassConverter.java index 9fabb3aeffc2..db687949a00c 100644 --- a/plugins/devkit/resources/com/intellij/util/xml/PluginPsiClassConverter.java +++ b/plugins/devkit/src/dom/impl/PluginPsiClassConverter.java @@ -13,11 +13,15 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package com.intellij.util.xml; +package org.jetbrains.idea.devkit.dom.impl; import com.intellij.psi.PsiClass; import com.intellij.psi.impl.source.resolve.reference.impl.providers.JavaClassReferenceProvider; import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.util.xml.ConvertContext; +import com.intellij.util.xml.ExtendClass; +import com.intellij.util.xml.GenericDomValue; +import com.intellij.util.xml.PsiClassConverter; /** * @author peter diff --git a/plugins/devkit/testData/codeInsight/pluginWithModules.xml b/plugins/devkit/testData/codeInsight/pluginWithModules.xml new file mode 100644 index 000000000000..d277c5560585 --- /dev/null +++ b/plugins/devkit/testData/codeInsight/pluginWithModules.xml @@ -0,0 +1,13 @@ + + com.intellij + IDEA CORE + + + + + + + + + + \ No newline at end of file diff --git a/plugins/devkit/testSources/codeInsight/PluginXmlFunctionalTest.java b/plugins/devkit/testSources/codeInsight/PluginXmlFunctionalTest.java index 9d5d3d67388e..28eb9180393d 100644 --- a/plugins/devkit/testSources/codeInsight/PluginXmlFunctionalTest.java +++ b/plugins/devkit/testSources/codeInsight/PluginXmlFunctionalTest.java @@ -122,4 +122,8 @@ public class PluginXmlFunctionalTest extends JavaCodeInsightFixtureTestCase { myFixture.checkResultByFile(getTestName(false) + "_after.xml"); } + public void testPluginModule() throws Throwable { + myFixture.testHighlighting("pluginWithModules.xml"); + } + }