mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[kotlin] J2K copy-paste cleanup: rename DataForConversion
KTIJ-28714 IJ-CR-150614 (cherry picked from commit 13cfdd96db96306f742e3d102053a13a988f492b) GitOrigin-RevId: 2ae30885302c38ab5066914353235fbd5be2d292
This commit is contained in:
committed by
intellij-monorepo-bot
parent
2596b067cf
commit
d553c9555c
+5
-5
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.j2k.copyPaste.K1J2KCopyPasteConverter
|
||||
import org.jetbrains.kotlin.j2k.*
|
||||
import org.jetbrains.kotlin.j2k.J2kConverterExtension.Kind.K1_NEW
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.TargetData
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.DataForConversion
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.ConversionData
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.J2KCopyPasteConverter
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.K1PlainTextPasteImportResolver
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.PlainTextPasteImportResolver
|
||||
@@ -43,18 +43,18 @@ class NewJ2kConverterExtension : J2kConverterExtension() {
|
||||
getNewJ2KConversions(context)
|
||||
|
||||
override fun createPlainTextPasteImportResolver(
|
||||
dataForConversion: DataForConversion,
|
||||
conversionData: ConversionData,
|
||||
targetKotlinFile: KtFile
|
||||
): PlainTextPasteImportResolver {
|
||||
return K1PlainTextPasteImportResolver(dataForConversion, targetKotlinFile)
|
||||
return K1PlainTextPasteImportResolver(conversionData, targetKotlinFile)
|
||||
}
|
||||
|
||||
override fun createCopyPasteConverter(
|
||||
project: Project,
|
||||
editor: Editor,
|
||||
dataForConversion: DataForConversion,
|
||||
conversionData: ConversionData,
|
||||
targetData: TargetData,
|
||||
): J2KCopyPasteConverter {
|
||||
return K1J2KCopyPasteConverter(project, editor, dataForConversion, targetData, kind)
|
||||
return K1J2KCopyPasteConverter(project, editor, conversionData, targetData, kind)
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||
class K1J2KCopyPasteConverter(
|
||||
private val project: Project,
|
||||
private val editor: Editor,
|
||||
private val dataForConversion: DataForConversion,
|
||||
private val conversionData: ConversionData,
|
||||
private val targetData: TargetData,
|
||||
private val j2kKind: J2kConverterExtension.Kind,
|
||||
) : J2KCopyPasteConverter {
|
||||
@@ -66,9 +66,9 @@ class K1J2KCopyPasteConverter(
|
||||
ThreadingAssertions.assertEventDispatchThread()
|
||||
|
||||
fun runConversion() {
|
||||
val conversionResult = dataForConversion.elementsAndTexts.convertCodeToKotlin(project, targetData.file, j2kKind)
|
||||
val conversionResult = conversionData.elementsAndTexts.convertCodeToKotlin(project, targetData.file, j2kKind)
|
||||
val (text, parseContext, importsToAdd, isTextChanged, converterContext) = conversionResult
|
||||
val referenceData = buildReferenceData(text, parseContext, dataForConversion.importsAndPackage, targetData.file)
|
||||
val referenceData = buildReferenceData(text, parseContext, conversionData.importsAndPackage, targetData.file)
|
||||
val changedText = if (isTextChanged) text else null
|
||||
result = Result(changedText, referenceData, importsToAdd, converterContext)
|
||||
}
|
||||
|
||||
+3
-3
@@ -32,9 +32,9 @@ import org.jetbrains.kotlin.psi.psiUtil.referenceExpression
|
||||
/**
|
||||
* Tests: [org.jetbrains.kotlin.nj2k.K1JavaToKotlinCopyPasteConversionTestGenerated].
|
||||
*/
|
||||
class K1PlainTextPasteImportResolver(private val dataForConversion: DataForConversion, private val targetKotlinFile: KtFile) :
|
||||
class K1PlainTextPasteImportResolver(private val conversionData: ConversionData, private val targetKotlinFile: KtFile) :
|
||||
PlainTextPasteImportResolver {
|
||||
private val sourceJavaFile: PsiJavaFile = dataForConversion.sourceJavaFile
|
||||
private val sourceJavaFile: PsiJavaFile = conversionData.sourceJavaFile
|
||||
private val javaFileImportList: PsiImportList = sourceJavaFile.importList!!
|
||||
private val project = targetKotlinFile.project
|
||||
private val scope: GlobalSearchScope = targetKotlinFile.resolveScope
|
||||
@@ -56,7 +56,7 @@ class K1PlainTextPasteImportResolver(private val dataForConversion: DataForConve
|
||||
// TODO removing this function doesn't affect existing tests
|
||||
// investigate is this needed or not
|
||||
private fun addImportsToJavaFileFromKotlinFile() {
|
||||
if (javaFileImportList in dataForConversion.elementsAndTexts.toList()) return
|
||||
if (javaFileImportList in conversionData.elementsAndTexts.toList()) return
|
||||
|
||||
ProgressManager.getInstance().runProcessWithProgressSynchronously(
|
||||
addImportsTask, KotlinNJ2KBundle.message("copy.text.adding.imports"), /* canBeCanceled = */ true, project
|
||||
|
||||
@@ -36,18 +36,18 @@ class OldJ2kConverterExtension : J2kConverterExtension() {
|
||||
true
|
||||
|
||||
override fun createPlainTextPasteImportResolver(
|
||||
dataForConversion: DataForConversion,
|
||||
conversionData: ConversionData,
|
||||
targetKotlinFile: KtFile
|
||||
): PlainTextPasteImportResolver {
|
||||
return K1PlainTextPasteImportResolver(dataForConversion, targetKotlinFile)
|
||||
return K1PlainTextPasteImportResolver(conversionData, targetKotlinFile)
|
||||
}
|
||||
|
||||
override fun createCopyPasteConverter(
|
||||
project: Project,
|
||||
editor: Editor,
|
||||
dataForConversion: DataForConversion,
|
||||
conversionData: ConversionData,
|
||||
targetData: TargetData
|
||||
): J2KCopyPasteConverter {
|
||||
return K1J2KCopyPasteConverter(project, editor, dataForConversion, targetData, kind)
|
||||
return K1J2KCopyPasteConverter(project, editor, conversionData, targetData, kind)
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,7 @@ import com.intellij.psi.PsiJavaFile
|
||||
import org.jetbrains.kotlin.j2k.*
|
||||
import org.jetbrains.kotlin.j2k.J2kConverterExtension.Kind.K2
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.TargetData
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.DataForConversion
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.ConversionData
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.J2KCopyPasteConverter
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.PlainTextPasteImportResolver
|
||||
import org.jetbrains.kotlin.j2k.k2.copyPaste.K2J2KCopyPasteConverter
|
||||
@@ -49,18 +49,18 @@ class K2J2KConverterExtension : J2kConverterExtension() {
|
||||
getK2J2KConversions(context)
|
||||
|
||||
override fun createPlainTextPasteImportResolver(
|
||||
dataForConversion: DataForConversion,
|
||||
conversionData: ConversionData,
|
||||
targetKotlinFile: KtFile
|
||||
): PlainTextPasteImportResolver {
|
||||
return K2PlainTextPasteImportResolver(dataForConversion, targetKotlinFile)
|
||||
return K2PlainTextPasteImportResolver(conversionData, targetKotlinFile)
|
||||
}
|
||||
|
||||
override fun createCopyPasteConverter(
|
||||
project: Project,
|
||||
editor: Editor,
|
||||
dataForConversion: DataForConversion,
|
||||
conversionData: ConversionData,
|
||||
targetData: TargetData
|
||||
): J2KCopyPasteConverter {
|
||||
return K2J2KCopyPasteConverter(project, editor, dataForConversion.elementsAndTexts, targetData)
|
||||
return K2J2KCopyPasteConverter(project, editor, conversionData.elementsAndTexts, targetData)
|
||||
}
|
||||
}
|
||||
+4
-4
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.idea.base.psi.kotlinFqName
|
||||
import org.jetbrains.kotlin.idea.base.util.module
|
||||
import org.jetbrains.kotlin.idea.base.util.runReadActionInSmartMode
|
||||
import org.jetbrains.kotlin.idea.references.mainReference
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.DataForConversion
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.ConversionData
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.PlainTextPasteImportResolver
|
||||
import org.jetbrains.kotlin.nj2k.KotlinNJ2KBundle
|
||||
import org.jetbrains.kotlin.psi.KtDotQualifiedExpression
|
||||
@@ -33,9 +33,9 @@ import org.jetbrains.kotlin.psi.psiUtil.referenceExpression
|
||||
/**
|
||||
* Tests: [org.jetbrains.kotlin.j2k.k2.K2TextJavaToKotlinCopyPasteConversionTestGenerated].
|
||||
*/
|
||||
internal class K2PlainTextPasteImportResolver(private val dataForConversion: DataForConversion, private val targetKotlinFile: KtFile) :
|
||||
internal class K2PlainTextPasteImportResolver(private val conversionData: ConversionData, private val targetKotlinFile: KtFile) :
|
||||
PlainTextPasteImportResolver {
|
||||
private val sourceJavaFile: PsiJavaFile = dataForConversion.sourceJavaFile
|
||||
private val sourceJavaFile: PsiJavaFile = conversionData.sourceJavaFile
|
||||
private val javaFileImportList: PsiImportList = sourceJavaFile.importList!!
|
||||
private val project = targetKotlinFile.project
|
||||
private val scope: GlobalSearchScope = targetKotlinFile.resolveScope
|
||||
@@ -55,7 +55,7 @@ internal class K2PlainTextPasteImportResolver(private val dataForConversion: Dat
|
||||
// TODO removing this function doesn't affect existing tests
|
||||
// investigate is this needed or not
|
||||
private fun addImportsToJavaFileFromKotlinFile() {
|
||||
if (javaFileImportList in dataForConversion.elementsAndTexts.toList()) return
|
||||
if (javaFileImportList in conversionData.elementsAndTexts.toList()) return
|
||||
|
||||
ProgressManager.getInstance().runProcessWithProgressSynchronously(
|
||||
addImportsTask, KotlinNJ2KBundle.message("copy.text.adding.imports"), /* canBeCanceled = */ true, project
|
||||
|
||||
@@ -8,7 +8,7 @@ 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.copyPaste.DataForConversion
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.ConversionData
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.J2KCopyPasteConverter
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.PlainTextPasteImportResolver
|
||||
import org.jetbrains.kotlin.j2k.copyPaste.TargetData
|
||||
@@ -50,14 +50,14 @@ abstract class J2kConverterExtension {
|
||||
emptyList()
|
||||
|
||||
abstract fun createPlainTextPasteImportResolver(
|
||||
dataForConversion: DataForConversion,
|
||||
conversionData: ConversionData,
|
||||
targetKotlinFile: KtFile
|
||||
): PlainTextPasteImportResolver
|
||||
|
||||
abstract fun createCopyPasteConverter(
|
||||
project: Project,
|
||||
editor: Editor,
|
||||
dataForConversion: DataForConversion,
|
||||
conversionData: ConversionData,
|
||||
targetData: TargetData,
|
||||
): J2KCopyPasteConverter
|
||||
|
||||
|
||||
+3
-3
@@ -18,13 +18,13 @@ import org.jetbrains.kotlin.psi.psiUtil.elementsInRange
|
||||
* @property importsAndPackage Kotlin code of the package declaration and significant non-static import statements of the original Java file
|
||||
* @property sourceJavaFile a copy of the whole file containing the to-be-converted Java code fragment
|
||||
*/
|
||||
class DataForConversion private constructor(
|
||||
class ConversionData private constructor(
|
||||
val elementsAndTexts: ElementAndTextList,
|
||||
val importsAndPackage: String,
|
||||
val sourceJavaFile: PsiJavaFile
|
||||
) {
|
||||
companion object {
|
||||
fun prepare(copiedCode: CopiedJavaCode, project: Project): DataForConversion {
|
||||
fun prepare(copiedCode: CopiedJavaCode, project: Project): ConversionData {
|
||||
val startOffsets = copiedCode.startOffsets.clone()
|
||||
val endOffsets = copiedCode.endOffsets.clone()
|
||||
assert(startOffsets.size == endOffsets.size) { "Must have the same size" }
|
||||
@@ -45,7 +45,7 @@ class DataForConversion private constructor(
|
||||
elementsAndTexts.collectElementsToConvert(file, fileText, TextRange(startOffsets[i], endOffsets[i]))
|
||||
}
|
||||
|
||||
return DataForConversion(elementsAndTexts, importsAndPackage, file)
|
||||
return ConversionData(elementsAndTexts, importsAndPackage, file)
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -69,11 +69,11 @@ class ConvertJavaCopyPasteProcessor : CopyPastePostProcessor<TextBlockTransferab
|
||||
if (!isConversionSupportedAtPosition(targetData.file, targetData.bounds.startOffset)) return
|
||||
|
||||
val copiedJavaCode = values.single() as CopiedJavaCode
|
||||
val dataForConversion = DataForConversion.prepare(copiedJavaCode, project)
|
||||
val conversionData = ConversionData.prepare(copiedJavaCode, project)
|
||||
val j2kKind = getJ2kKind(targetData.file)
|
||||
|
||||
val converter = J2kConverterExtension.extension(j2kKind)
|
||||
.createCopyPasteConverter(project, editor, dataForConversion, targetData)
|
||||
.createCopyPasteConverter(project, editor, conversionData, targetData)
|
||||
|
||||
val textLength = copiedJavaCode.startOffsets.indices.sumOf { copiedJavaCode.endOffsets[it] - copiedJavaCode.startOffsets[it] }
|
||||
if (textLength < MAX_TEXT_LENGTH_TO_CONVERT_WITHOUT_ASKING_USER && converter.convertAndRestoreReferencesIfTextIsUnchanged()) {
|
||||
@@ -89,7 +89,7 @@ class ConvertJavaCopyPasteProcessor : CopyPastePostProcessor<TextBlockTransferab
|
||||
type = ConversionType.PSI_EXPRESSION,
|
||||
isNewJ2k = j2kKind == K1_NEW,
|
||||
conversionTime,
|
||||
linesCount = dataForConversion.elementsAndTexts.lineCount(),
|
||||
linesCount = conversionData.elementsAndTexts.lineCount(),
|
||||
filesCount = 1
|
||||
)
|
||||
|
||||
|
||||
+3
-3
@@ -121,16 +121,16 @@ class ConvertTextJavaCopyPasteProcessor : CopyPastePostProcessor<TextBlockTransf
|
||||
if (!confirmConvertJavaOnPaste(project, isPlainText = true)) return
|
||||
|
||||
val copiedJavaCode = prepareCopiedJavaCodeByContext(text, javaConversionContext, pasteTarget)
|
||||
val dataForConversion = DataForConversion.prepare(copiedJavaCode, project)
|
||||
val conversionData = ConversionData.prepare(copiedJavaCode, project)
|
||||
val j2kKind = getJ2kKind(targetData.file)
|
||||
|
||||
val converter = J2KTextCopyPasteConverter(project, editor, dataForConversion, targetData, j2kKind)
|
||||
val converter = J2KTextCopyPasteConverter(project, editor, conversionData, targetData, j2kKind)
|
||||
val conversionTime = measureTimeMillis { converter.convert() }
|
||||
J2KFusCollector.log(
|
||||
type = ConversionType.TEXT_EXPRESSION,
|
||||
isNewJ2k = j2kKind == K1_NEW,
|
||||
conversionTime,
|
||||
linesCount = dataForConversion.elementsAndTexts.lineCount(),
|
||||
linesCount = conversionData.elementsAndTexts.lineCount(),
|
||||
filesCount = 1
|
||||
)
|
||||
|
||||
|
||||
+5
-5
@@ -19,12 +19,12 @@ import org.jetbrains.kotlin.psi.psiUtil.endOffset
|
||||
internal class J2KTextCopyPasteConverter(
|
||||
private val project: Project,
|
||||
private val editor: Editor,
|
||||
private val dataForConversion: DataForConversion,
|
||||
private val conversionData: ConversionData,
|
||||
private val targetData: TargetData,
|
||||
private val j2kKind: J2kConverterExtension.Kind,
|
||||
) {
|
||||
fun convert() {
|
||||
val additionalImports = tryToResolveImports(dataForConversion, targetData.file)
|
||||
val additionalImports = tryToResolveImports(conversionData, targetData.file)
|
||||
ProgressManager.checkCanceled()
|
||||
|
||||
val importsInsertOffset = targetData.file.importList?.endOffset ?: 0
|
||||
@@ -33,7 +33,7 @@ internal class J2KTextCopyPasteConverter(
|
||||
convertedImportsText = "\n" + convertedImportsText
|
||||
}
|
||||
|
||||
val conversionResult = dataForConversion.elementsAndTexts.convertCodeToKotlin(project, targetData.file, j2kKind)
|
||||
val conversionResult = conversionData.elementsAndTexts.convertCodeToKotlin(project, targetData.file, j2kKind)
|
||||
val convertedText = conversionResult.text
|
||||
ProgressManager.checkCanceled()
|
||||
|
||||
@@ -62,8 +62,8 @@ internal class J2KTextCopyPasteConverter(
|
||||
runPostProcessing(project, targetData.file, boundsAfterReplace.asTextRange, conversionResult.converterContext, j2kKind)
|
||||
}
|
||||
|
||||
private fun tryToResolveImports(dataForConversion: DataForConversion, targetFile: KtFile): ElementAndTextList {
|
||||
val resolver = J2kConverterExtension.extension(j2kKind).createPlainTextPasteImportResolver(dataForConversion, targetFile)
|
||||
private fun tryToResolveImports(conversionData: ConversionData, targetFile: KtFile): ElementAndTextList {
|
||||
val resolver = J2kConverterExtension.extension(j2kKind).createPlainTextPasteImportResolver(conversionData, targetFile)
|
||||
val imports = resolver.generateRequiredImports()
|
||||
val newlineSeparatedImports = imports.flatMap { importStatement ->
|
||||
listOf("\n", importStatement)
|
||||
|
||||
Reference in New Issue
Block a user