From 9d0ac53a1fab070aa1b0567df09aa02514236be7 Mon Sep 17 00:00:00 2001 From: peter Date: Wed, 15 Sep 2010 23:30:16 +0100 Subject: [PATCH] if invoked explicitly, groovy optimize imports should work outside source folders (IDEA-57333) --- .../codeInspection/local/GroovyUnusedImportPass.java | 7 ++++++- .../groovy/lang/editor/GroovyImportOptimizer.java | 11 ----------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/local/GroovyUnusedImportPass.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/local/GroovyUnusedImportPass.java index 80c1ba61f226..27470e8b4e55 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/local/GroovyUnusedImportPass.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/local/GroovyUnusedImportPass.java @@ -31,7 +31,9 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.progress.ProgressIndicator; import com.intellij.openapi.project.Project; +import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.util.TextRange; +import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiDocumentManager; import com.intellij.psi.PsiFile; import com.intellij.util.Processor; @@ -65,7 +67,10 @@ public class GroovyUnusedImportPass extends TextEditorHighlightingPass { GroovyImportsTracker importsTracker = GroovyImportsTracker.getInstance(myFile.getProject()); myUnusedImports = importsTracker.getUnusedImportStatements(myFile); if (!myUnusedImports.isEmpty() && CodeInsightSettings.getInstance().OPTIMIZE_IMPORTS_ON_THE_FLY) { - myOptimizeRunnable = new GroovyImportOptimizer().processFile(myFile); + final VirtualFile vfile = myFile.getVirtualFile(); + if (vfile != null && ProjectRootManager.getInstance(myFile.getProject()).getFileIndex().isInSource(vfile)) { + myOptimizeRunnable = new GroovyImportOptimizer().processFile(myFile); + } } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/GroovyImportOptimizer.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/GroovyImportOptimizer.java index 195da0719630..d8fc3a9121a7 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/GroovyImportOptimizer.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/editor/GroovyImportOptimizer.java @@ -16,9 +16,7 @@ package org.jetbrains.plugins.groovy.lang.editor; import com.intellij.lang.ImportOptimizer; -import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; -import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.util.text.StringUtil; import com.intellij.psi.*; import com.intellij.psi.codeStyle.CodeStyleSettings; @@ -42,7 +40,6 @@ import java.util.*; * @author ven */ public class GroovyImportOptimizer implements ImportOptimizer { - private static final Logger LOG = Logger.getInstance("org.jetbrains.plugins.groovy.lang.editor.GroovyImportOptimizer"); private static final Comparator IMPORT_STATEMENT_COMPARATOR = new Comparator() { public int compare(GrImportStatement statement1, GrImportStatement statement2) { final GrCodeReferenceElement ref1 = statement1.getImportReference(); @@ -60,10 +57,6 @@ public class GroovyImportOptimizer implements ImportOptimizer { return new MyProcessor((GroovyFile)file, false); } - public void removeUnusedImports(GroovyFile file) { - new MyProcessor(file, true).run(); - } - public List findUnusedImports(GroovyFile file, Set usedImports) { return new MyProcessor(file, true).findUnusedImports(new HashSet(), new HashSet(),usedImports, new HashSet()); } @@ -82,10 +75,6 @@ public class GroovyImportOptimizer implements ImportOptimizer { } public void run() { - if (!ProjectRootManager.getInstance(myFile.getProject()).getFileIndex().isInSource(myFile.getVirtualFile())) { - return; - } - final Set importedClasses = new LinkedHashSet(); final Set staticallyImportedMembers = new LinkedHashSet(); final Set usedImports = new HashSet();