mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
QD-9205 Replace "inspect qodana" with "qodana" AppStarter
GitOrigin-RevId: 61ddfe1ed1839fcec9e6a9053dccd02614c02915
This commit is contained in:
committed by
intellij-monorepo-bot
parent
cd9e06da04
commit
80aa2f4cfd
@@ -78,7 +78,7 @@ import java.util.function.Predicate;
|
||||
|
||||
import static com.intellij.configurationStore.StoreUtilKt.forPoorJavaClientOnlySaveProjectIndEdtDoNotUseThisMethod;
|
||||
|
||||
public class InspectionApplicationBase implements CommandLineInspectionProgressReporter, InspectionApplicationStart.Synchronous {
|
||||
public class InspectionApplicationBase implements CommandLineInspectionProgressReporter {
|
||||
public static final Logger LOG = Logger.getInstance(InspectionApplicationBase.class);
|
||||
|
||||
public static final String PROJECT_STRUCTURE_DIR = "projectStructure";
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInspection
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName
|
||||
import com.intellij.openapi.extensions.ExtensionPointName.Companion.create
|
||||
import org.jetbrains.annotations.ApiStatus
|
||||
|
||||
@ApiStatus.Internal
|
||||
interface InspectionApplicationFactory {
|
||||
fun id(): String
|
||||
|
||||
fun getApplication(args: List<String>): InspectionApplicationStart
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
fun getApplication(id: String, args: List<String>): InspectionApplicationStart =
|
||||
EP_NAME.extensionList
|
||||
.firstOrNull { it.id() == id }
|
||||
?.getApplication(args)
|
||||
?: throw InspectionApplicationException("There is no loaded inspect engine with id= '$id'. Please check loaded plugin list.")
|
||||
|
||||
val EP_NAME: ExtensionPointName<InspectionApplicationFactory> = create("com.intellij.inspectionApplicationFactory")
|
||||
}
|
||||
}
|
||||
|
||||
sealed interface InspectionApplicationStart {
|
||||
interface Synchronous : InspectionApplicationStart {
|
||||
fun startup()
|
||||
}
|
||||
|
||||
interface Asynchronous : InspectionApplicationStart {
|
||||
suspend fun startup()
|
||||
}
|
||||
}
|
||||
@@ -1,38 +1,19 @@
|
||||
// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
|
||||
package com.intellij.codeInspection
|
||||
|
||||
import com.intellij.codeInspection.InspectionApplicationFactory.Companion.getApplication
|
||||
import com.intellij.openapi.application.ModernApplicationStarter
|
||||
import java.util.concurrent.CompletableFuture
|
||||
import kotlin.system.exitProcess
|
||||
|
||||
class InspectionMain : ModernApplicationStarter() {
|
||||
private lateinit var application: InspectionApplicationStart
|
||||
private lateinit var application: InspectionApplicationBase
|
||||
|
||||
override fun premain(args: List<String>) {
|
||||
InspectionApplicationBase.LOG.info("Command line arguments: $args")
|
||||
application = if (args.size > 1 && "qodana" == args[1]) {
|
||||
buildQodanaApplication(args)
|
||||
}
|
||||
else {
|
||||
buildInspectionApplication(args)
|
||||
}
|
||||
application = buildInspectionApplication(args)
|
||||
}
|
||||
|
||||
private fun buildQodanaApplication(args: List<String>) =
|
||||
try {
|
||||
getApplication("qodana", args.subList(2, args.size))
|
||||
}
|
||||
catch (e: InspectionApplicationException) {
|
||||
System.err.println(e.message)
|
||||
exitProcess(1)
|
||||
}
|
||||
catch (e: Exception) {
|
||||
e.printStackTrace() // workaround for IDEA-289086
|
||||
exitProcess(1)
|
||||
}
|
||||
|
||||
private fun buildInspectionApplication(args: List<String>): InspectionApplicationStart {
|
||||
private fun buildInspectionApplication(args: List<String>): InspectionApplicationBase {
|
||||
val app = InspectionApplicationBase()
|
||||
if (args.size < 4) {
|
||||
System.err.println("invalid args:$args")
|
||||
@@ -112,14 +93,11 @@ class InspectionMain : ModernApplicationStarter() {
|
||||
}
|
||||
|
||||
override suspend fun start(args: List<String>) {
|
||||
when (val r = application) {
|
||||
is InspectionApplicationStart.Asynchronous -> r.startup()
|
||||
/*
|
||||
todo https://youtrack.jetbrains.com/issue/IDEA-298594
|
||||
See also com.intellij.platform.ide.bootstrap.ApplicationLoader.executeApplicationStarter
|
||||
*/
|
||||
is InspectionApplicationStart.Synchronous -> CompletableFuture.runAsync(r::startup)
|
||||
}
|
||||
/*
|
||||
todo https://youtrack.jetbrains.com/issue/IDEA-298594
|
||||
See also com.intellij.platform.ide.bootstrap.ApplicationLoader.executeApplicationStarter
|
||||
*/
|
||||
CompletableFuture.runAsync(application::startup)
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user