New J2K: force use old j2k for all not file/copy-paste conversions

This commit is contained in:
Ilya Kirillov
2019-07-09 16:07:41 +03:00
parent 8f69cca2b3
commit 041677ab1b
4 changed files with 22 additions and 18 deletions
@@ -9,8 +9,8 @@ import com.intellij.lang.java.JavaLanguage
import com.intellij.psi.PsiElement
import com.intellij.psi.PsiExpression
import com.intellij.psi.PsiMember
import org.jetbrains.kotlin.idea.util.module
import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.j2k.OldJavaToKotlinConverter
import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.psi.KtPsiFactory
@@ -21,13 +21,7 @@ fun PsiElement.j2kText(): String? =
fun PsiElement.convertToKotlin(): org.jetbrains.kotlin.j2k.Result? {
if (language != JavaLanguage.INSTANCE) return null
val j2kConverter =
JavaToKotlinConverterFactory.createJavaToKotlinConverter(
project,
module,
ConverterSettings.defaultSettings,
IdeaJavaToKotlinServices
)
val j2kConverter = OldJavaToKotlinConverter(project, ConverterSettings.defaultSettings, IdeaJavaToKotlinServices)
return j2kConverter.elementsToKotlin(listOf(this))
}
@@ -43,7 +43,7 @@ import org.jetbrains.kotlin.idea.core.util.getKotlinJvmRuntimeMarkerClass
import org.jetbrains.kotlin.idea.debugger.evaluate.compilation.DebugLabelPropertyDescriptorProvider
import org.jetbrains.kotlin.idea.debugger.getClassDescriptor
import org.jetbrains.kotlin.idea.debugger.getContextElement
import org.jetbrains.kotlin.idea.j2k.JavaToKotlinConverterFactory
import org.jetbrains.kotlin.idea.j2k.J2kPostProcessor
import org.jetbrains.kotlin.idea.j2k.convertToKotlin
import org.jetbrains.kotlin.idea.j2k.j2k
import org.jetbrains.kotlin.idea.j2k.j2kText
@@ -259,7 +259,7 @@ class KotlinCodeFragmentFactory : CodeFragmentFactory() {
kotlinCodeFragment.context
)
AfterConversionPass(project, JavaToKotlinConverterFactory.createPostProcessor(formatCode = false))
AfterConversionPass(project, J2kPostProcessor(formatCode = false))
.run(
convertedFragment!!,
conversionContext,
@@ -49,14 +49,12 @@ import com.intellij.psi.util.PsiTreeUtil
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
import org.jetbrains.kotlin.j2k.ConversionType
import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.j2k.FilesResult
import org.jetbrains.kotlin.j2k.logJ2kConversionStatistics
import org.jetbrains.kotlin.j2k.*
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.UserDataProperty
import java.io.File
@@ -115,12 +113,17 @@ class JavaToKotlinAction : AnAction() {
project: Project,
module: Module,
enableExternalCodeProcessing: Boolean = true,
askExternalCodeProcessing: Boolean = true
askExternalCodeProcessing: Boolean = true,
forceUsingOldJ2k: Boolean = false
): List<KtFile> {
var converterResult: FilesResult? = null
fun convert() {
val converter =
JavaToKotlinConverterFactory.createJavaToKotlinConverter(
if (forceUsingOldJ2k) OldJavaToKotlinConverter(
project,
ConverterSettings.defaultSettings,
IdeaJavaToKotlinServices
) else JavaToKotlinConverterFactory.createJavaToKotlinConverter(
project,
module,
ConverterSettings.defaultSettings,
@@ -128,7 +131,8 @@ class JavaToKotlinAction : AnAction() {
)
converterResult = converter.filesToKotlin(
javaFiles,
JavaToKotlinConverterFactory.createPostProcessor(formatCode = true),
if (forceUsingOldJ2k) J2kPostProcessor(formatCode = true)
else JavaToKotlinConverterFactory.createPostProcessor(formatCode = true),
progress = ProgressManager.getInstance().progressIndicator!!
)
}
@@ -188,7 +188,13 @@ class KotlinCreateTestIntention : SelfTargetingRangeIntention<KtNamedDeclaration
getDocument(generatedFile)?.let { doPostponedOperationsAndUnblockDocument(it) }
}
JavaToKotlinAction.convertFiles(listOf(generatedFile), project, srcModule, false).singleOrNull()
JavaToKotlinAction.convertFiles(
listOf(generatedFile),
project,
srcModule,
false,
forceUsingOldJ2k = true
).singleOrNull()
}
}
}