if invoked explicitly, groovy optimize imports should work outside source folders (IDEA-57333)

This commit is contained in:
peter
2010-09-15 23:51:25 +01:00
parent d7fae62e45
commit 9d0ac53a1f
2 changed files with 6 additions and 12 deletions
@@ -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);
}
}
}
@@ -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<GrImportStatement> IMPORT_STATEMENT_COMPARATOR = new Comparator<GrImportStatement>() {
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<GrImportStatement> findUnusedImports(GroovyFile file, Set<GrImportStatement> usedImports) {
return new MyProcessor(file, true).findUnusedImports(new HashSet<String>(), new HashSet<String>(),usedImports, new HashSet<String>());
}
@@ -82,10 +75,6 @@ public class GroovyImportOptimizer implements ImportOptimizer {
}
public void run() {
if (!ProjectRootManager.getInstance(myFile.getProject()).getFileIndex().isInSource(myFile.getVirtualFile())) {
return;
}
final Set<String> importedClasses = new LinkedHashSet<String>();
final Set<String> staticallyImportedMembers = new LinkedHashSet<String>();
final Set<GrImportStatement> usedImports = new HashSet<GrImportStatement>();