Imports on copy/paste: Check whether import is needed before showing the user
Minor: rename ImportInsertHelper.doNeedImport -> needImport
This commit is contained in:
@@ -225,8 +225,11 @@ public class KotlinCopyPasteReferenceProcessor() : CopyPastePostProcessor<Refere
|
|||||||
return Collections.emptyList()
|
return Collections.emptyList()
|
||||||
}
|
}
|
||||||
return referenceData.map {
|
return referenceData.map {
|
||||||
val referenceExpression = findReference(it, file, bounds)
|
if (ImportInsertHelper.needImport(it.fqName, file)) {
|
||||||
if (referenceExpression != null) createReferenceToRestoreData(referenceExpression, it.fqName) else null
|
val referenceExpression = findReference(it, file, bounds)
|
||||||
|
if (referenceExpression != null) createReferenceToRestoreData(referenceExpression, it.fqName) else null
|
||||||
|
}
|
||||||
|
else null
|
||||||
}.filterNotNull()
|
}.filterNotNull()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -67,7 +67,7 @@ public class JetDeclarationRemotenessWeigher extends LookupElementWeigher {
|
|||||||
// Invalid name can be met for class object descriptor: Test.MyTest.A.<no name provided>.testOther
|
// Invalid name can be met for class object descriptor: Test.MyTest.A.<no name provided>.testOther
|
||||||
if (QualifiedNamesUtil.isValidJavaFqName(fqName.toString())) {
|
if (QualifiedNamesUtil.isValidJavaFqName(fqName.toString())) {
|
||||||
ImportPath importPath = new ImportPath(fqName.toString());
|
ImportPath importPath = new ImportPath(fqName.toString());
|
||||||
if (ImportInsertHelper.doNeedImport(importPath, file)) {
|
if (ImportInsertHelper.needImport(importPath, file)) {
|
||||||
return MyResult.notImported;
|
return MyResult.notImported;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ import org.jetbrains.jet.util.QualifiedNamesUtil;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
import static org.jetbrains.jet.plugin.quickfix.ImportInsertHelper.doNeedImport;
|
import static org.jetbrains.jet.plugin.quickfix.ImportInsertHelper.needImport;
|
||||||
|
|
||||||
public class JetImportOptimizer implements ImportOptimizer {
|
public class JetImportOptimizer implements ImportOptimizer {
|
||||||
@Override
|
@Override
|
||||||
@@ -75,8 +75,8 @@ public class JetImportOptimizer implements ImportOptimizer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (isUseful(importPath, usedQualifiedNames) &&
|
if (isUseful(importPath, usedQualifiedNames) &&
|
||||||
doNeedImport(importPath, jetFile, directivesBeforeCurrent) &&
|
needImport(importPath, jetFile, directivesBeforeCurrent) &&
|
||||||
doNeedImport(importPath, jetFile, directivesAfterCurrent)) {
|
needImport(importPath, jetFile, directivesAfterCurrent)) {
|
||||||
directivesBeforeCurrent.add(anImport);
|
directivesBeforeCurrent.add(anImport);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
@@ -107,7 +107,7 @@ public class AutoImportFix extends JetHintAction<JetSimpleNameExpression> implem
|
|||||||
@Override
|
@Override
|
||||||
public boolean apply(@Nullable FqName fqName) {
|
public boolean apply(@Nullable FqName fqName) {
|
||||||
assert fqName != null;
|
assert fqName != null;
|
||||||
return ImportInsertHelper.doNeedImport(new ImportPath(fqName, false), (JetFile) file);
|
return ImportInsertHelper.needImport(new ImportPath(fqName, false), (JetFile) file);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ public class ImportInsertHelper {
|
|||||||
new OptimizeImportsProcessor(file.getProject(), file).runWithoutProgress();
|
new OptimizeImportsProcessor(file.getProject(), file).runWithoutProgress();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!doNeedImport(importPath, file)) {
|
if (!needImport(importPath, file)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,11 +142,15 @@ public class ImportInsertHelper {
|
|||||||
return QualifiedNamesUtil.isImported(defaultImports, importPath);
|
return QualifiedNamesUtil.isImported(defaultImports, importPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean doNeedImport(@NotNull ImportPath importPath, @NotNull JetFile file) {
|
public static boolean needImport(@NotNull FqName fqName, @NotNull JetFile file) {
|
||||||
return doNeedImport(importPath, file, file.getImportDirectives());
|
return needImport(new ImportPath(fqName, false), file);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean doNeedImport(@NotNull ImportPath importPath, @NotNull JetFile file, List<JetImportDirective> importDirectives) {
|
public static boolean needImport(@NotNull ImportPath importPath, @NotNull JetFile file) {
|
||||||
|
return needImport(importPath, file, file.getImportDirectives());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean needImport(@NotNull ImportPath importPath, @NotNull JetFile file, List<JetImportDirective> importDirectives) {
|
||||||
if (importPath.fqnPart().firstSegmentIs(JavaDescriptorResolver.JAVA_ROOT)) {
|
if (importPath.fqnPart().firstSegmentIs(JavaDescriptorResolver.JAVA_ROOT)) {
|
||||||
FqName withoutJavaRoot = QualifiedNamesUtil.withoutFirstSegment(importPath.fqnPart());
|
FqName withoutJavaRoot = QualifiedNamesUtil.withoutFirstSegment(importPath.fqnPart());
|
||||||
importPath = new ImportPath(withoutJavaRoot, importPath.isAllUnder(), importPath.getAlias());
|
importPath = new ImportPath(withoutJavaRoot, importPath.isAllUnder(), importPath.getAlias());
|
||||||
|
|||||||
Reference in New Issue
Block a user