mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-01-06 11:50:54 +07:00
process extensions from xincluded plugin xmls with modules but no id
GitOrigin-RevId: 16d4fad929dbe8a063abf0fdf4fb4fcb1ade3de7
This commit is contained in:
committed by
intellij-monorepo-bot
parent
0ceb1a7af2
commit
8fef03d491
@@ -5,6 +5,7 @@ import com.intellij.openapi.fileTypes.StdFileTypes;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.roots.impl.LibraryScopeCache;
|
||||
import com.intellij.openapi.util.Condition;
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
@@ -43,13 +44,10 @@ public class PluginIdModuleIndex extends ScalarIndexExtension<String> {
|
||||
if (plugin == null) return Collections.emptyMap();
|
||||
|
||||
List<String> ids = new ArrayList<>();
|
||||
ContainerUtil.addIfNotNull(ids, plugin.getPluginId());
|
||||
ids.add(StringUtil.notNullize(plugin.getPluginId()));
|
||||
for (PluginModule module : plugin.getModules()) {
|
||||
ContainerUtil.addIfNotNull(ids, module.getValue().getStringValue());
|
||||
}
|
||||
if (ids.isEmpty()) {
|
||||
ids.add("");
|
||||
}
|
||||
return ContainerUtil.newHashMap(ids, Collections.nCopies(ids.size(), null));
|
||||
};
|
||||
}
|
||||
@@ -62,7 +60,7 @@ public class PluginIdModuleIndex extends ScalarIndexExtension<String> {
|
||||
|
||||
@Override
|
||||
public int getVersion() {
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -11,5 +11,6 @@
|
||||
<orderEntry type="module" module-name="intellij.devkit.tests" />
|
||||
<orderEntry type="module" module-name="intellij.xml.psi.impl" scope="TEST" />
|
||||
<orderEntry type="module" module-name="intellij.spellchecker" scope="TEST" />
|
||||
<orderEntry type="module" module-name="intellij.xml.analysis.impl" scope="TEST" />
|
||||
</component>
|
||||
</module>
|
||||
@@ -1,3 +1,3 @@
|
||||
<extensionPoints>
|
||||
<extensionPoint name="extension" beanClass="foo.Bar"/>
|
||||
<extensionPoint name="extensionX" beanClass="foo.Bar"/>
|
||||
</extensionPoints>
|
||||
@@ -0,0 +1,6 @@
|
||||
<idea-plugin>
|
||||
<module value="someModule"/>
|
||||
<extensionPoints>
|
||||
<extensionPoint qualifiedName="foo.extension2" beanClass="foo.Bar"/>
|
||||
</extensionPoints>
|
||||
</idea-plugin>
|
||||
@@ -4,15 +4,18 @@
|
||||
<vendor>JetBrains</vendor>
|
||||
<version>1.0</version>
|
||||
|
||||
<xi:include href="/pluginWithXInclude-extensionPointsWithModule.xml" xpointer="xpointer(/idea-plugin/*)"/>
|
||||
<extensionPoints>
|
||||
<extensionPoint name="bar" interface="java.util.List"/>
|
||||
<xi:include href="/extensionPoints.xml" xpointer="xpointer(/extensionPoints/*)"/>
|
||||
<xi:include href="/pluginWithXInclude-extensionPoints.xml" xpointer="xpointer(/extensionPoints/*)"/>
|
||||
</extensionPoints>
|
||||
|
||||
<extensions defaultExtensionNs="foo">
|
||||
|
||||
<bar implementation="java.util.ArrayList"/>
|
||||
<extension/>
|
||||
<extensionX/>
|
||||
<extension2/>
|
||||
<<error descr="Element extensionUnknown is not allowed here">extensionUnknown</error>/>
|
||||
</extensions>
|
||||
|
||||
</idea-plugin>
|
||||
@@ -6,6 +6,7 @@ package org.jetbrains.idea.devkit.codeInsight
|
||||
import com.intellij.codeInsight.TargetElementUtil
|
||||
import com.intellij.codeInsight.completion.CompletionContributorEP
|
||||
import com.intellij.codeInsight.completion.CompletionType
|
||||
import com.intellij.codeInsight.daemon.impl.analysis.XmlPathReferenceInspection
|
||||
import com.intellij.codeInsight.lookup.LookupElement
|
||||
import com.intellij.codeInsight.lookup.LookupElementPresentation
|
||||
import com.intellij.codeInspection.LocalInspectionEP
|
||||
@@ -426,7 +427,8 @@ class PluginXmlFunctionalTest extends JavaCodeInsightFixtureTestCase {
|
||||
}
|
||||
|
||||
void testPluginWithXInclude() {
|
||||
doHighlightingTest("pluginWithXInclude.xml", "pluginWithXInclude-extensionPoints.xml")
|
||||
myFixture.enableInspections(new XmlPathReferenceInspection())
|
||||
doHighlightingTest("pluginWithXInclude.xml", "pluginWithXInclude-extensionPoints.xml", "pluginWithXInclude-extensionPointsWithModule.xml")
|
||||
}
|
||||
|
||||
void testPluginXmlInIdeaProjectWithoutVendor() {
|
||||
|
||||
Reference in New Issue
Block a user