From 75e5dca7354849299f350a87706fe91efd92bfb1 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Fri, 9 Jun 2017 20:11:53 +0300 Subject: [PATCH] KT-18051: Allow copy-pasting from IDEA java to kotlin conversion #KT-18051 fixed --- .../copy/ConvertTextJavaCopyPasteProcessor.kt | 10 +++--- .../idea/conversion/copy/CopiedKotlinCode.kt | 34 +++++++++++++++++++ ...TextJavaToKotlinCopyPasteConversionTest.kt | 8 +---- 3 files changed, 40 insertions(+), 12 deletions(-) create mode 100644 idea/src/org/jetbrains/kotlin/idea/conversion/copy/CopiedKotlinCode.kt 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 e7e1c8280dd..3a0c912eab6 100644 --- a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt +++ b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/ConvertTextJavaCopyPasteProcessor.kt @@ -65,16 +65,17 @@ class ConvertTextJavaCopyPasteProcessor : CopyPastePostProcessor { + if (file is KtFile) return listOf(CopiedKotlinCode(file.text, startOffsets, endOffsets)) return emptyList() } override fun extractTransferableData(content: Transferable): List { try { if (content.isDataFlavorSupported(DataFlavor.stringFlavor)) { - // check if it's copied from within IDEA - if (!Companion.convertOnCopyInsideIDE && content.transferDataFlavors.any { TextBlockTransferableData::class.java.isAssignableFrom(it.representationClass) }) { - return emptyList() - } + + if (content.isDataFlavorSupported(CopiedKotlinCode.DATA_FLAVOR) || + /* Handled by ConvertJavaCopyPasteProcessor */ + content.isDataFlavorSupported(CopiedJavaCode.DATA_FLAVOR)) return emptyList() val text = content.getTransferData(DataFlavor.stringFlavor) as String return listOf(MyTransferableData(text)) @@ -284,6 +285,5 @@ class ConvertTextJavaCopyPasteProcessor : CopyPastePostProcessor