New J2K: add conversion progress bar

Relates to #KT-31812
This commit is contained in:
Ilya Kirillov
2019-06-05 17:18:34 +03:00
parent f51e28ea68
commit 1a9deed5d8
17 changed files with 277 additions and 79 deletions
@@ -27,8 +27,8 @@ import kotlinx.coroutines.runBlocking
import kotlinx.coroutines.withContext
import org.jetbrains.kotlin.idea.caches.resolve.getResolutionFacade
import org.jetbrains.kotlin.idea.caches.resolve.resolveImportReference
import org.jetbrains.kotlin.idea.core.util.range
import org.jetbrains.kotlin.idea.core.util.EDT
import org.jetbrains.kotlin.idea.core.util.range
import org.jetbrains.kotlin.idea.util.ImportInsertHelper
import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.idea.util.application.runWriteAction
@@ -42,6 +42,9 @@ import org.jetbrains.kotlin.resolve.diagnostics.Diagnostics
import java.util.*
class J2kPostProcessor(private val formatCode: Boolean) : PostProcessor {
override val phasesCount: Int = 1
override fun insertImport(file: KtFile, fqName: FqName) {
ApplicationManager.getApplication().invokeAndWait {
runWriteAction {
@@ -57,7 +60,12 @@ class J2kPostProcessor(private val formatCode: Boolean) : PostProcessor {
PROCESS
}
override fun doAdditionalProcessing(file: KtFile, converterContext: ConverterContext?, rangeMarker: RangeMarker?) =
override fun doAdditionalProcessing(
file: KtFile,
converterContext: ConverterContext?,
rangeMarker: RangeMarker?,
onPhaseChanged: ((Int, String) -> Unit)?
) =
runBlocking(EDT.ModalityStateElement(ModalityState.defaultModalityState())) {
do {
var modificationStamp: Long? = file.modificationStamp
@@ -6,7 +6,9 @@
package org.jetbrains.kotlin.idea.j2k
import com.intellij.openapi.module.Module
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiJavaFile
import org.jetbrains.kotlin.j2k.*
object JavaToKotlinConverterFactory {
@@ -20,6 +22,17 @@ object JavaToKotlinConverterFactory {
fun createPostProcessor(formatCode: Boolean): PostProcessor =
J2kConverterExtension.extension.createPostProcessor(formatCode)
fun createWithProgressIndicator(
progress: ProgressIndicator?,
files: List<PsiJavaFile>?,
phasesCount: Int
): WithProgressProcessor =
J2kConverterExtension.extension.createWithProgressProcessor(progress, files, phasesCount)
fun doCheckBeforeConversion(project: Project, module: Module): Boolean =
J2kConverterExtension.extension.doCheckBeforeConversion(project, module)
val isNewJ2k: Boolean
get() = J2kConverterExtension.extension.isNewJ2k
}
@@ -1,6 +1,8 @@
package org.jetbrains.kotlin.idea.j2k
import com.intellij.openapi.progress.ProgressIndicator
import com.intellij.openapi.project.Project
import com.intellij.psi.PsiJavaFile
import org.jetbrains.kotlin.j2k.*
class OldJ2kConverterExtension : J2kConverterExtension() {
@@ -15,4 +17,11 @@ class OldJ2kConverterExtension : J2kConverterExtension() {
override fun createPostProcessor(formatCode: Boolean): PostProcessor =
J2kPostProcessor(formatCode)
override fun createWithProgressProcessor(
progress: ProgressIndicator?,
files: List<PsiJavaFile>?,
phasesCount: Int
): WithProgressProcessor =
OldWithProgressProcessor(progress, files)
}