[Analysis API] remove analyzeInModalWindow to the intellij repository

As it's IDE-specific functionality
This commit is contained in:
Ilya Kirillov
2023-07-26 14:37:26 +02:00
committed by Space Team
parent 32456a1611
commit 5ac0d2e603
@@ -7,11 +7,6 @@
package org.jetbrains.kotlin.analysis.api
import com.intellij.openapi.application.ApplicationManager
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.progress.Task
import com.intellij.openapi.util.Computable
import org.jetbrains.kotlin.analysis.api.lifetime.KtLifetimeTokenFactory
import org.jetbrains.kotlin.analysis.api.session.KtAnalysisSessionProvider
import org.jetbrains.kotlin.analysis.project.structure.KtModule
import org.jetbrains.kotlin.psi.KtElement
@@ -54,27 +49,4 @@ public inline fun <R> analyzeInDependedAnalysisSession(
action: KtAnalysisSession.() -> R
): R =
KtAnalysisSessionProvider.getInstance(originalFile.project)
.analyseInDependedAnalysisSession(originalFile, elementToReanalyze, action)
/**
* Show a modal window with a progress bar and specified [windowTitle]
* and execute given [action] task with [KtAnalysisSession] context
* If [action] throws some exception, then [analyzeInModalWindow] will rethrow it
* Should be executed from EDT only
* If you want to analyse something from non-EDT thread, consider using [analyze]
*/
public inline fun <R> analyzeInModalWindow(
contextElement: KtElement,
windowTitle: String,
crossinline action: KtAnalysisSession.() -> R
): R {
ApplicationManager.getApplication().assertIsDispatchThread()
val task = object : Task.WithResult<R, Exception>(contextElement.project, windowTitle, /*canBeCancelled*/ true) {
override fun compute(indicator: ProgressIndicator): R =
ApplicationManager.getApplication().runReadAction(Computable {
analyze(contextElement, action)
})
}
task.queue()
return task.result
}
.analyseInDependedAnalysisSession(originalFile, elementToReanalyze, action)