[Analysis API] remove analyzeInModalWindow to the intellij repository
As it's IDE-specific functionality
This commit is contained in:
committed by
Space Team
parent
32456a1611
commit
5ac0d2e603
@@ -7,11 +7,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.analysis.api
|
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.api.session.KtAnalysisSessionProvider
|
||||||
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
import org.jetbrains.kotlin.analysis.project.structure.KtModule
|
||||||
import org.jetbrains.kotlin.psi.KtElement
|
import org.jetbrains.kotlin.psi.KtElement
|
||||||
@@ -54,27 +49,4 @@ public inline fun <R> analyzeInDependedAnalysisSession(
|
|||||||
action: KtAnalysisSession.() -> R
|
action: KtAnalysisSession.() -> R
|
||||||
): R =
|
): R =
|
||||||
KtAnalysisSessionProvider.getInstance(originalFile.project)
|
KtAnalysisSessionProvider.getInstance(originalFile.project)
|
||||||
.analyseInDependedAnalysisSession(originalFile, elementToReanalyze, action)
|
.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
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user