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.PsiElement
import com.intellij.psi.PsiExpression import com.intellij.psi.PsiExpression
import com.intellij.psi.PsiMember import com.intellij.psi.PsiMember
import org.jetbrains.kotlin.idea.util.module
import org.jetbrains.kotlin.j2k.ConverterSettings import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.j2k.OldJavaToKotlinConverter
import org.jetbrains.kotlin.psi.KtExpression import org.jetbrains.kotlin.psi.KtExpression
import org.jetbrains.kotlin.psi.KtNamedDeclaration import org.jetbrains.kotlin.psi.KtNamedDeclaration
import org.jetbrains.kotlin.psi.KtPsiFactory import org.jetbrains.kotlin.psi.KtPsiFactory
@@ -21,13 +21,7 @@ fun PsiElement.j2kText(): String? =
fun PsiElement.convertToKotlin(): org.jetbrains.kotlin.j2k.Result? { fun PsiElement.convertToKotlin(): org.jetbrains.kotlin.j2k.Result? {
if (language != JavaLanguage.INSTANCE) return null if (language != JavaLanguage.INSTANCE) return null
val j2kConverter = val j2kConverter = OldJavaToKotlinConverter(project, ConverterSettings.defaultSettings, IdeaJavaToKotlinServices)
JavaToKotlinConverterFactory.createJavaToKotlinConverter(
project,
module,
ConverterSettings.defaultSettings,
IdeaJavaToKotlinServices
)
return j2kConverter.elementsToKotlin(listOf(this)) 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.evaluate.compilation.DebugLabelPropertyDescriptorProvider
import org.jetbrains.kotlin.idea.debugger.getClassDescriptor import org.jetbrains.kotlin.idea.debugger.getClassDescriptor
import org.jetbrains.kotlin.idea.debugger.getContextElement 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.convertToKotlin
import org.jetbrains.kotlin.idea.j2k.j2k import org.jetbrains.kotlin.idea.j2k.j2k
import org.jetbrains.kotlin.idea.j2k.j2kText import org.jetbrains.kotlin.idea.j2k.j2kText
@@ -259,7 +259,7 @@ class KotlinCodeFragmentFactory : CodeFragmentFactory() {
kotlinCodeFragment.context kotlinCodeFragment.context
) )
AfterConversionPass(project, JavaToKotlinConverterFactory.createPostProcessor(formatCode = false)) AfterConversionPass(project, J2kPostProcessor(formatCode = false))
.run( .run(
convertedFragment!!, convertedFragment!!,
conversionContext, conversionContext,
@@ -49,14 +49,12 @@ import com.intellij.psi.util.PsiTreeUtil
import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.core.util.toPsiFile import org.jetbrains.kotlin.idea.core.util.toPsiFile
import org.jetbrains.kotlin.idea.j2k.IdeaJavaToKotlinServices 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.j2k.JavaToKotlinConverterFactory
import org.jetbrains.kotlin.idea.util.application.executeWriteCommand import org.jetbrains.kotlin.idea.util.application.executeWriteCommand
import org.jetbrains.kotlin.idea.util.application.runReadAction import org.jetbrains.kotlin.idea.util.application.runReadAction
import org.jetbrains.kotlin.idea.util.isRunningInCidrIde import org.jetbrains.kotlin.idea.util.isRunningInCidrIde
import org.jetbrains.kotlin.j2k.ConversionType import org.jetbrains.kotlin.j2k.*
import org.jetbrains.kotlin.j2k.ConverterSettings
import org.jetbrains.kotlin.j2k.FilesResult
import org.jetbrains.kotlin.j2k.logJ2kConversionStatistics
import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.psi.UserDataProperty import org.jetbrains.kotlin.psi.UserDataProperty
import java.io.File import java.io.File
@@ -115,12 +113,17 @@ class JavaToKotlinAction : AnAction() {
project: Project, project: Project,
module: Module, module: Module,
enableExternalCodeProcessing: Boolean = true, enableExternalCodeProcessing: Boolean = true,
askExternalCodeProcessing: Boolean = true askExternalCodeProcessing: Boolean = true,
forceUsingOldJ2k: Boolean = false
): List<KtFile> { ): List<KtFile> {
var converterResult: FilesResult? = null var converterResult: FilesResult? = null
fun convert() { fun convert() {
val converter = val converter =
JavaToKotlinConverterFactory.createJavaToKotlinConverter( if (forceUsingOldJ2k) OldJavaToKotlinConverter(
project,
ConverterSettings.defaultSettings,
IdeaJavaToKotlinServices
) else JavaToKotlinConverterFactory.createJavaToKotlinConverter(
project, project,
module, module,
ConverterSettings.defaultSettings, ConverterSettings.defaultSettings,
@@ -128,7 +131,8 @@ class JavaToKotlinAction : AnAction() {
) )
converterResult = converter.filesToKotlin( converterResult = converter.filesToKotlin(
javaFiles, javaFiles,
JavaToKotlinConverterFactory.createPostProcessor(formatCode = true), if (forceUsingOldJ2k) J2kPostProcessor(formatCode = true)
else JavaToKotlinConverterFactory.createPostProcessor(formatCode = true),
progress = ProgressManager.getInstance().progressIndicator!! progress = ProgressManager.getInstance().progressIndicator!!
) )
} }
@@ -188,7 +188,13 @@ class KotlinCreateTestIntention : SelfTargetingRangeIntention<KtNamedDeclaration
getDocument(generatedFile)?.let { doPostponedOperationsAndUnblockDocument(it) } getDocument(generatedFile)?.let { doPostponedOperationsAndUnblockDocument(it) }
} }
JavaToKotlinAction.convertFiles(listOf(generatedFile), project, srcModule, false).singleOrNull() JavaToKotlinAction.convertFiles(
listOf(generatedFile),
project,
srcModule,
false,
forceUsingOldJ2k = true
).singleOrNull()
} }
} }
} }