diff --git a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/KotlinFilePasteProvider.kt b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/KotlinFilePasteProvider.kt index 586c924caee..a8c0ab49202 100644 --- a/idea/src/org/jetbrains/kotlin/idea/conversion/copy/KotlinFilePasteProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/conversion/copy/KotlinFilePasteProvider.kt @@ -55,11 +55,14 @@ class KotlinFilePasteProvider : PasteProvider { val ideView = ideView(dataContext) if (project == null || ideView == null || ideView.directories.isEmpty()) return false val text = CopyPasteManager.getInstance().getContents(DataFlavor.stringFlavor) ?: return false - if (text.contains(";\n")) return false //Optimisation for Java. Kotlin doesn't need that... + //todo: KT-25329, to remove these heuristics + if (text.contains(";\n") || + ((text.contains("public interface") || text.contains("public class")) && + !text.contains("fun "))) return false //Optimisation for Java. Kotlin doesn't need that... val file = KtPsiFactory(project).createFile(text) return !PsiTreeUtil.hasErrorElements(file) } private fun project(dataContext: DataContext): Project? = CommonDataKeys.PROJECT.getData(dataContext) private fun ideView(dataContext: DataContext): IdeView? = LangDataKeys.IDE_VIEW.getData(dataContext) -} \ No newline at end of file +}