IDEA-228949 plugin.xml: fix resolving <with> "attribute" when @Attribute is defined on field

GitOrigin-RevId: ccad63d0367f0dc75bdccf5137f408817101e018
This commit is contained in:
Yann Cébron
2019-12-11 16:08:36 +01:00
committed by intellij-monorepo-bot
parent 355bdf075d
commit 3adc832826
10 changed files with 82 additions and 19 deletions

View File

@@ -0,0 +1,7 @@
public class ExtensionDefinesWithAttributeViaAnnotation {
@com.intellij.util.xmlb.annotations.Attribute("customAttributeName")
private String myAttribute;
private String myAttributeWithoutAnnotation;
}

View File

@@ -0,0 +1,11 @@
<idea-plugin>
<id>my.plugin</id>
<vendor>DevKit</vendor>
<extensionPoints>
<extensionPoint name="viaAttribute" beanClass="ExtensionDefinesWithAttributeViaAnnotation">
<with attribute="<caret>" />
</extensionPoint>
</extensionPoints>
</idea-plugin>

View File

@@ -0,0 +1,15 @@
<idea-plugin>
<id>my.plugin</id>
<vendor>DevKit</vendor>
<extensionPoints>
<extensionPoint name="viaAttribute" beanClass="ExtensionDefinesWithAttributeViaAnnotation">
<with attribute="customAttributeName" implements="java.lang.Runnable"/>
<with attribute="myAttributeWithoutAnnotation" implements="java.lang.Runnable"/>
<with attribute="<error descr="Cannot resolve extension point property 'myAttribute'">myAttribute</error>" implements="java.lang.Runnable"/>
</extensionPoint>
</extensionPoints>
</idea-plugin>

View File

@@ -21,7 +21,7 @@
<extensionPoint name="projectConfigurable"
beanClass="com.intellij.openapi.options.ConfigurableEP"
area="IDEA_PROJECT">
<with attribute="instanceClass" implements="com.intellij.openapi.options.Configurable"/>
<with attribute="instance" implements="com.intellij.openapi.options.Configurable"/>
</extensionPoint>
<extensionPoint name="generalOptionsProvider" beanClass="com.intellij.ide.GeneralSettingsConfigurableEP">
<with attribute="instance" implements="com.intellij.openapi.options.SearchableConfigurable"/>

View File

@@ -360,6 +360,16 @@ class PluginXmlFunctionalTest extends JavaCodeInsightFixtureTestCase {
doHighlightingTest("extensionWithDefaultValuesInAnnotations.xml", "ExtBeanWithDefaultValuesInAnnotations.java")
}
void testExtensionDefinesWithAttributeViaAnnotation() {
doHighlightingTest("extensionDefinesWithAttributeViaAnnotation.xml", "ExtensionDefinesWithAttributeViaAnnotation.java")
}
void testExtensionDefinesWithAttributeViaAnnotationCompletion() {
myFixture.copyFileToProject("ExtensionDefinesWithAttributeViaAnnotation.java")
myFixture.testCompletionVariants("extensionDefinesWithAttributeViaAnnotation-completion.xml",
"customAttributeName", "myAttributeWithoutAnnotation")
}
void testLanguageAttributeHighlighting() {
configureLanguageAttributeTest()
doHighlightingTest("languageAttribute.xml", "MyLanguageAttributeEPBean.java")