KT-1051 Java interoperability completion - fix java subpackages
This commit is contained in:
@@ -9,7 +9,6 @@ import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiElementFinder;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.PsiPackage;
|
||||
import com.intellij.psi.impl.file.PsiPackageImpl;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.util.SmartList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -142,7 +141,7 @@ public class JavaElementFinder extends PsiElementFinder {
|
||||
|
||||
for (JetFile psiFile : psiFiles) {
|
||||
if (JetPsiUtil.getFQName(psiFile).startsWith(qualifiedName)) {
|
||||
return new PsiPackageImpl(psiFile.getManager(), qualifiedName);
|
||||
return new JetLightPackage(psiManager, qualifiedName);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -159,10 +158,9 @@ public class JavaElementFinder extends PsiElementFinder {
|
||||
for (JetFile psiFile : psiFiles) {
|
||||
String jetRootNamespace = JetPsiUtil.getFQName(psiFile);
|
||||
|
||||
if (QualifiedNamesUtil.isSubpackageOf(jetRootNamespace, psiPackage.getQualifiedName())) {
|
||||
|
||||
// TODO: wrong package here
|
||||
answer.add(new JetLightPackage(psiFile.getManager(), jetRootNamespace));
|
||||
final String subPackageFQN = QualifiedNamesUtil.plusOneSegment(psiPackage.getQualifiedName(), jetRootNamespace);
|
||||
if (subPackageFQN != null) {
|
||||
answer.add(new JetLightPackage(psiManager, subPackageFQN));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||
import org.jetbrains.jet.lang.resolve.java.AnalyzerFacade;
|
||||
import org.jetbrains.jet.lang.resolve.java.JetJavaMirrorMarker;
|
||||
import org.jetbrains.jet.plugin.JetLanguage;
|
||||
import org.jetbrains.jet.util.QualifiedNamesUtil;
|
||||
|
||||
import javax.swing.*;
|
||||
import java.util.Collections;
|
||||
@@ -55,8 +56,7 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
int idx = qualifiedName.lastIndexOf('.');
|
||||
return idx > 0 ? qualifiedName.substring(idx + 1) : qualifiedName;
|
||||
return QualifiedNamesUtil.fqnToShortName(qualifiedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -72,6 +72,7 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa
|
||||
@Override
|
||||
public PsiClass getDelegate() {
|
||||
if (delegate == null) {
|
||||
// TODO: What is the reason for this?
|
||||
delegate = findClass(qualifiedName, getStub());
|
||||
if (delegate == null) {
|
||||
delegate = findClass(qualifiedName, getStub());
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package org.jetbrains.jet.asJava;
|
||||
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiManager;
|
||||
import com.intellij.psi.impl.file.PsiPackageImpl;
|
||||
|
||||
/**
|
||||
* TODO: make more accurate wrapper
|
||||
*
|
||||
* @author Nikolay Krasko
|
||||
*/
|
||||
public class JetLightPackage extends PsiPackageImpl {
|
||||
@@ -11,8 +14,14 @@ public class JetLightPackage extends PsiPackageImpl {
|
||||
super(manager, qualifiedName);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiElement copy() {
|
||||
return new JetLightPackage(getManager(), getQualifiedName());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValid() {
|
||||
return true;
|
||||
// TODO: invalidate properly
|
||||
return super.isValid();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user