mirror of
https://github.com/mamoe/mirai.git
synced 2025-02-04 14:05:00 +08:00
Fix PluginMainServiceNotConfiguredInspection
This commit is contained in:
parent
cf08c2b767
commit
18a0a95609
@ -11,6 +11,7 @@ package net.mamoe.mirai.console.intellij.diagnostics
|
|||||||
|
|
||||||
import com.intellij.codeInspection.ProblemHighlightType
|
import com.intellij.codeInspection.ProblemHighlightType
|
||||||
import com.intellij.codeInspection.ProblemsHolder
|
import com.intellij.codeInspection.ProblemsHolder
|
||||||
|
import com.intellij.openapi.progress.impl.CancellationCheck.Companion.runWithCancellationCheck
|
||||||
import com.intellij.psi.PsiElementVisitor
|
import com.intellij.psi.PsiElementVisitor
|
||||||
import net.mamoe.mirai.console.compiler.common.resolve.AUTO_SERVICE
|
import net.mamoe.mirai.console.compiler.common.resolve.AUTO_SERVICE
|
||||||
import net.mamoe.mirai.console.intellij.diagnostics.fix.ConfigurePluginMainServiceFix
|
import net.mamoe.mirai.console.intellij.diagnostics.fix.ConfigurePluginMainServiceFix
|
||||||
@ -64,14 +65,16 @@ class PluginMainServiceNotConfiguredInspection : AbstractKotlinInspection() {
|
|||||||
ktClass: KtClassOrObject,
|
ktClass: KtClassOrObject,
|
||||||
fqName: String,
|
fqName: String,
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val sourceRoots = ktClass.module?.rootManager?.sourceRoots ?: return false
|
return runWithCancellationCheck {
|
||||||
val services = sourceRoots.asSequence().flatMap { file ->
|
val sourceRoots = ktClass.module?.rootManager?.sourceRoots ?: return@runWithCancellationCheck false
|
||||||
SERVICE_FILE_NAMES.asSequence().mapNotNull { serviceFileName ->
|
val services = sourceRoots.asSequence().flatMap { file ->
|
||||||
file.findFileByRelativePath("META-INF/services/$serviceFileName")
|
SERVICE_FILE_NAMES.asSequence().mapNotNull { serviceFileName ->
|
||||||
|
file.findFileByRelativePath("META-INF/services/$serviceFileName")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return@runWithCancellationCheck services.any { serviceFile ->
|
||||||
|
serviceFile.readAction { f -> f.inputStream.bufferedReader().use { it.readLine() }.trim() == fqName }
|
||||||
}
|
}
|
||||||
}
|
|
||||||
return services.any { serviceFile ->
|
|
||||||
serviceFile.readAction { f -> f.inputStream.bufferedReader().use { it.readLine() }.trim() == fqName }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user