KT-1051 Java interoperability completion - invalidating java packages strategy
This commit is contained in:
@@ -140,8 +140,8 @@ public class JavaElementFinder extends PsiElementFinder {
|
||||
final List<JetFile> psiFiles = collectProjectJetFiles(project, GlobalSearchScope.allScope(project));
|
||||
|
||||
for (JetFile psiFile : psiFiles) {
|
||||
if (JetPsiUtil.getFQName(psiFile).startsWith(qualifiedName)) {
|
||||
return new JetLightPackage(psiManager, qualifiedName);
|
||||
if (QualifiedNamesUtil.isSubpackageOf(JetPsiUtil.getFQName(psiFile), qualifiedName)) {
|
||||
return new JetLightPackage(psiManager, qualifiedName, psiFile.getNamespaceHeader());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ public class JavaElementFinder extends PsiElementFinder {
|
||||
|
||||
final String subPackageFQN = QualifiedNamesUtil.plusOneSegment(psiPackage.getQualifiedName(), jetRootNamespace);
|
||||
if (subPackageFQN != null) {
|
||||
answer.add(new JetLightPackage(psiManager, subPackageFQN));
|
||||
answer.add(new JetLightPackage(psiManager, subPackageFQN, psiFile.getNamespaceHeader()));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -10,18 +10,21 @@ import com.intellij.psi.impl.file.PsiPackageImpl;
|
||||
* @author Nikolay Krasko
|
||||
*/
|
||||
public class JetLightPackage extends PsiPackageImpl {
|
||||
public JetLightPackage(PsiManager manager, String qualifiedName) {
|
||||
|
||||
private final PsiElement namespaceElement;
|
||||
|
||||
public JetLightPackage(PsiManager manager, String qualifiedName, PsiElement namespaceElement) {
|
||||
super(manager, qualifiedName);
|
||||
this.namespaceElement = namespaceElement;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiElement copy() {
|
||||
return new JetLightPackage(getManager(), getQualifiedName());
|
||||
return new JetLightPackage(getManager(), getQualifiedName(), namespaceElement);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid() {
|
||||
// TODO: invalidate properly
|
||||
return super.isValid();
|
||||
return namespaceElement.isValid();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user