From 5c904b6a9414e8c5ff8f19b145c60d690e6da3ef Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Tue, 17 Feb 2015 17:21:21 +0300 Subject: [PATCH] Fixed keeping of folded state for imports on optimize --- .../kotlin/idea/imports/KotlinImportOptimizer.kt | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) 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() } }) }