diff --git a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt index 1cc5956dd08..9ed05cd7ddb 100644 --- a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt @@ -149,14 +149,17 @@ public class KotlinImportOptimizer() : ImportOptimizer { //TODO: do not touch file if everything is already correct? ApplicationManager.getApplication()!!.runWriteAction(Runnable { - for (import in file.getImportDirectives()) { - import.delete() - } + // remove old imports after adding new ones to keep imports folding state + val oldImports = file.getImportDirectives() val importList = file.getImportList()!! val psiFactory = JetPsiFactory(file.getProject()) for (importPath in sortedImportsToGenerate) { - importList.add(psiFactory.createImportDirective(importPath)) + importList.addBefore(psiFactory.createImportDirective(importPath), oldImports.lastOrNull()) // insert into the middle to keep collapsed state + } + + for (import in oldImports) { + import.delete() } }) }