mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[devkit] LightServiceMigrationXMLInspection: provide quick-fix
...for the "Service class annotated with '@Service' must not be registered in the 'plugin.xml' file" warning. The provided quick-fix removes the service registration from the 'plugin.xml' file. ^IDEA-254577 GitOrigin-RevId: fdb96913323c60dc8551ff55dac24c04b3299dff
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7884824d0f
commit
2e5cd31c49
@@ -13,6 +13,7 @@ import com.intellij.psi.util.PsiUtilCore
|
||||
import com.intellij.util.xml.DomElement
|
||||
import com.intellij.util.xml.highlighting.DomElementAnnotationHolder
|
||||
import com.intellij.util.xml.highlighting.DomHighlightingHelper
|
||||
import com.intellij.util.xml.highlighting.RemoveDomElementQuickFix
|
||||
import org.jetbrains.idea.devkit.DevKitBundle
|
||||
import org.jetbrains.idea.devkit.dom.Extension
|
||||
import org.jetbrains.uast.UClass
|
||||
@@ -36,7 +37,7 @@ internal class LightServiceMigrationXMLInspection : DevKitPluginXmlInspectionBas
|
||||
if (uClass == null || containsUnitTestOrHeadlessModeCheck(uClass)) return
|
||||
if (aClass.hasAnnotation(Service::class.java.canonicalName)) {
|
||||
val message = DevKitBundle.message("inspection.light.service.migration.already.annotated.message")
|
||||
holder.createProblem(element, ProblemHighlightType.ERROR, message, null)
|
||||
holder.createProblem(element, ProblemHighlightType.ERROR, message, null, RemoveDomElementQuickFix(element))
|
||||
}
|
||||
else {
|
||||
val message = getMessage(level)
|
||||
|
||||
+1
-1
@@ -5,6 +5,6 @@
|
||||
<extensionPoint qualifiedName="com.intellij.applicationService" beanClass="com.intellij.openapi.components.ServiceDescriptor"/>
|
||||
</extensionPoints>
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<<error descr="Service class annotated with '@Service' must not be registered in the 'plugin.xml' file">applicationService</error> serviceImplementation="com.example.demo.MyService"/>
|
||||
<<error descr="Service class annotated with '@Service' must not be registered in the 'plugin.xml' file">application<caret>Service</error> serviceImplementation="com.example.demo.MyService"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
<idea-plugin>
|
||||
<id>com.example.demo</id>
|
||||
|
||||
<extensionPoints>
|
||||
<extensionPoint qualifiedName="com.intellij.applicationService" beanClass="com.intellij.openapi.components.ServiceDescriptor"/>
|
||||
</extensionPoints>
|
||||
<extensions defaultExtensionNs="com.intellij"<caret>/>
|
||||
</idea-plugin>
|
||||
+2
-1
@@ -38,7 +38,8 @@ internal class LightServiceMigrationInspectionTest : LightServiceMigrationInspec
|
||||
}
|
||||
|
||||
fun testLightService() {
|
||||
doTest(getCodeFilePath(), getXmlFilePath())
|
||||
myFixture.copyFileToProject(getCodeFilePath())
|
||||
DevKitInspectionFixTestBase.doTest(myFixture, "Remove <applicationService> element", "xml", getTestName(true))
|
||||
}
|
||||
|
||||
fun testLibraryClass() {
|
||||
|
||||
Reference in New Issue
Block a user