From 862d391da67d29ed0b5f578decf279eeffee3534 Mon Sep 17 00:00:00 2001 From: Valentin Kipyatkov Date: Thu, 19 Feb 2015 19:40:11 +0300 Subject: [PATCH] KT-6834 Optimize Imports: do not modify file if import list had not change #KT-6834 Fixed --- .../jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt | 3 ++- .../editor/optimizeImports/DoNotTouchIfNoChanges.kt | 5 +++++ .../editor/optimizeImports/DoNotTouchIfNoChanges.kt.after | 5 +++++ .../kotlin/idea/imports/OptimizeImportsTestGenerated.java | 6 ++++++ 4 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt create mode 100644 idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt index 1d80ee33be1..1b06c1f2fe8 100644 --- a/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt +++ b/idea/src/org/jetbrains/kotlin/idea/imports/KotlinImportOptimizer.kt @@ -151,7 +151,8 @@ public class KotlinImportOptimizer() : ImportOptimizer { val sortedImportsToGenerate = importsToGenerate.sortBy(importInsertHelper.importSortComparator) - //TODO: do not touch file if everything is already correct? + // check if no changes to imports required + if (oldImports.size() == sortedImportsToGenerate.size() && oldImports.map { it.getImportPath() } == sortedImportsToGenerate) return ApplicationManager.getApplication()!!.runWriteAction(Runnable { val importList = file.getImportList()!! diff --git a/idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt b/idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt new file mode 100644 index 00000000000..3e616668460 --- /dev/null +++ b/idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt @@ -0,0 +1,5 @@ +import java.util.ArrayList +// some comment +import java.util.HashSet + +val v: HashSet> \ No newline at end of file diff --git a/idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt.after b/idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt.after new file mode 100644 index 00000000000..3e616668460 --- /dev/null +++ b/idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt.after @@ -0,0 +1,5 @@ +import java.util.ArrayList +// some comment +import java.util.HashSet + +val v: HashSet> \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/imports/OptimizeImportsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/imports/OptimizeImportsTestGenerated.java index 0477fb4ef5b..d95a798d519 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/imports/OptimizeImportsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/imports/OptimizeImportsTestGenerated.java @@ -81,6 +81,12 @@ public class OptimizeImportsTestGenerated extends AbstractOptimizeImportsTest { doTest(fileName); } + @TestMetadata("DoNotTouchIfNoChanges.kt") + public void testDoNotTouchIfNoChanges() throws Exception { + String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/DoNotTouchIfNoChanges.kt"); + doTest(fileName); + } + @TestMetadata("DuplicatedImports.kt") public void testDuplicatedImports() throws Exception { String fileName = JetTestUtils.navigationMetadata("idea/testData/editor/optimizeImports/DuplicatedImports.kt");