From 4e5e14046dff7e6b1bd7e4ff9c84a31baa6a7319 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 25 Jul 2019 00:25:05 +0300 Subject: [PATCH] New J2K: use old J2K for evaluate expression instead of new one #KT-32693 fixed --- .../idea/j2k/JavaToKotlinConverterFactory.kt | 39 ------------------- .../kotlin/idea/actions/JavaToKotlinAction.kt | 9 ++--- .../copy/ConvertJavaCopyPasteProcessor.kt | 32 ++++++++++----- .../copy/ConvertTextJavaCopyPasteProcessor.kt | 15 +++---- .../kotlin/j2k/J2KConverterExtension.kt | 7 ++-- 5 files changed, 38 insertions(+), 64 deletions(-) delete mode 100644 idea/idea-j2k/src/org/jetbrains/kotlin/idea/j2k/JavaToKotlinConverterFactory.kt diff --git a/idea/idea-j2k/src/org/jetbrains/kotlin/idea/j2k/JavaToKotlinConverterFactory.kt b/idea/idea-j2k/src/org/jetbrains/kotlin/idea/j2k/JavaToKotlinConverterFactory.kt deleted file mode 100644 index 66a2d919d67..00000000000 --- a/idea/idea-j2k/src/org/jetbrains/kotlin/idea/j2k/JavaToKotlinConverterFactory.kt +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -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 { - fun createJavaToKotlinConverter( - project: Project, - targetModule: Module?, - settings: ConverterSettings, - services: JavaToKotlinConverterServices - ): JavaToKotlinConverter = - J2kConverterExtension.extension.createJavaToKotlinConverter(project, targetModule, settings, services) - - fun createPostProcessor(formatCode: Boolean): PostProcessor = - J2kConverterExtension.extension.createPostProcessor(formatCode) - - fun createWithProgressIndicator( - progress: ProgressIndicator?, - files: List?, - 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 -} \ No newline at end of file diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/JavaToKotlinAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/JavaToKotlinAction.kt index 822c63ed21b..6620e317eac 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/JavaToKotlinAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/JavaToKotlinAction.kt @@ -50,7 +50,6 @@ import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.core.util.toPsiFile import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices import org.jetbrains.kotlin.idea.j2k.J2kPostProcessor -import org.jetbrains.kotlin.idea.j2k.JavaToKotlinConverterFactory import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.isRunningInCidrIde @@ -123,7 +122,7 @@ class JavaToKotlinAction : AnAction() { project, ConverterSettings.defaultSettings, IdeaJavaToKotlinServices - ) else JavaToKotlinConverterFactory.createJavaToKotlinConverter( + ) else J2kConverterExtension.extension().createJavaToKotlinConverter( project, module, ConverterSettings.defaultSettings, @@ -132,7 +131,7 @@ class JavaToKotlinAction : AnAction() { converterResult = converter.filesToKotlin( javaFiles, if (forceUsingOldJ2k) J2kPostProcessor(formatCode = true) - else JavaToKotlinConverterFactory.createPostProcessor(formatCode = true), + else J2kConverterExtension.extension().createPostProcessor(formatCode = true), progress = ProgressManager.getInstance().progressIndicator!! ) } @@ -144,7 +143,7 @@ class JavaToKotlinAction : AnAction() { val linesCount = javaFiles.sumBy { StringUtil.getLineBreakCount(it.text) } logJ2kConversionStatistics( ConversionType.FILES, - JavaToKotlinConverterFactory.isNewJ2k, + J2kConverterExtension.isNewJ2k, conversionTime, linesCount, javaFiles.size @@ -220,7 +219,7 @@ class JavaToKotlinAction : AnAction() { val module = e.getData(LangDataKeys.MODULE)!! - if (!JavaToKotlinConverterFactory.doCheckBeforeConversion(project, module)) return + if (!J2kConverterExtension.extension().doCheckBeforeConversion(project, module)) return val firstSyntaxError = javaFiles.asSequence().map { PsiTreeUtil.findChildOfType(it, PsiErrorElement::class.java) }.firstOrNull() diff --git a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertJavaCopyPasteProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertJavaCopyPasteProcessor.kt index 14634ff1774..2bdf0138f8b 100644 --- a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertJavaCopyPasteProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertJavaCopyPasteProcessor.kt @@ -39,7 +39,6 @@ import org.jetbrains.kotlin.idea.core.util.range import org.jetbrains.kotlin.idea.core.util.start import org.jetbrains.kotlin.idea.editor.KotlinEditorOptions import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices -import org.jetbrains.kotlin.idea.j2k.JavaToKotlinConverterFactory import org.jetbrains.kotlin.idea.util.ImportInsertHelper import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.application.runWriteAction @@ -83,6 +82,8 @@ class ConvertJavaCopyPasteProcessor : CopyPastePostProcessor() .sumBy { StringUtil.getLineBreakCount(it.text) } -fun runPostProcessing(project: Project, file: KtFile, bounds: TextRange?, converterContext: ConverterContext?) { - val postProcessor = JavaToKotlinConverterFactory.createPostProcessor(formatCode = true) - if (JavaToKotlinConverterFactory.isNewJ2k) { +fun checkUseNewJ2k(targetFile: KtFile): Boolean { + if (targetFile is KtCodeFragment) return false + return J2kConverterExtension.isNewJ2k +} + +fun runPostProcessing( + project: Project, + file: KtFile, + bounds: TextRange?, + converterContext: ConverterContext?, + useNewJ2k: Boolean +) { + val postProcessor = J2kConverterExtension.extension(useNewJ2k).createPostProcessor(formatCode = true) + if (useNewJ2k) { ProgressManager.getInstance().runProcessWithProgressSynchronously( { val processor = - JavaToKotlinConverterFactory.createWithProgressIndicator( + J2kConverterExtension.extension(useNewJ2k).createWithProgressProcessor( ProgressManager.getInstance().progressIndicator!!, emptyList(), postProcessor.phasesCount diff --git a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt index ee3a7714ad0..f3040d9b5ef 100644 --- a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt @@ -34,7 +34,6 @@ import org.jetbrains.annotations.TestOnly import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.editor.KotlinEditorOptions -import org.jetbrains.kotlin.idea.j2k.JavaToKotlinConverterFactory import org.jetbrains.kotlin.idea.util.application.runWriteAction import org.jetbrains.kotlin.idea.util.projectStructure.module import org.jetbrains.kotlin.j2k.ConversionType @@ -98,6 +97,8 @@ class ConvertTextJavaCopyPasteProcessor : CopyPastePostProcessor("org.jetbrains.kotlin.j2kConverterExtension") - val extension: J2kConverterExtension - get() = EP_NAME.extensions.first { it.isNewJ2k == useNewJ2k() } + fun extension(useNewJ2k: Boolean = isNewJ2k): J2kConverterExtension = + EP_NAME.extensions.first { it.isNewJ2k == useNewJ2k } } }