From fdcfb1d1906221a84f931f40538e44ffe1e05119 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Fri, 28 Apr 2023 16:03:25 +0200 Subject: [PATCH] [AA FIR] add missing new line to addImportToFile ^KTIJ-25416 --- .../api/fir/utils/shortenReferencesUtils.kt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/shortenReferencesUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/shortenReferencesUtils.kt index 28b0a9262da..dc64333ee1f 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/shortenReferencesUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/shortenReferencesUtils.kt @@ -6,6 +6,7 @@ package org.jetbrains.kotlin.analysis.api.fir.utils import com.intellij.openapi.project.Project +import com.intellij.psi.PsiWhiteSpace import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -59,11 +60,26 @@ fun addImportToFile( val newDirective = psiFactory.createImportDirective(importPath) val imports = importList.imports if (imports.isEmpty()) { - file.packageDirective?.takeIf { it.packageKeyword != null }?.let { + val packageDirective = file.packageDirective?.takeIf { it.packageKeyword != null } + packageDirective?.let { file.addAfter(psiFactory.createNewLine(2), it) } importList.add(newDirective) + if (packageDirective == null) { + val whiteSpace = importList.nextSibling + if (whiteSpace is PsiWhiteSpace) { + val newLineBreak = if (whiteSpace.textContains('\n')) { + psiFactory.createWhiteSpace("\n" + whiteSpace.text) + } else { + psiFactory.createWhiteSpace("\n\n" + whiteSpace.text) + } + + whiteSpace.replace(newLineBreak) + } else { + file.addAfter(psiFactory.createNewLine(2), importList) + } + } } else { val insertAfter = imports.lastOrNull { val directivePath = it.importPath