store imported FQ name in import directive stub
This commit is contained in:
@@ -97,10 +97,20 @@ public class JetImportDirective extends JetElementImplStub<KotlinImportDirective
|
|||||||
return getNode().findChildByType(JetTokens.MUL) != null;
|
return getNode().findChildByType(JetTokens.MUL) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@IfNotParsed
|
||||||
|
public FqName getImportedFqName() {
|
||||||
|
KotlinImportDirectiveStub stub = getStub();
|
||||||
|
if (stub != null) {
|
||||||
|
return stub.getImportedFqName();
|
||||||
|
}
|
||||||
|
return fqNameFromExpression(getImportedReference());
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
@IfNotParsed
|
@IfNotParsed
|
||||||
public ImportPath getImportPath() {
|
public ImportPath getImportPath() {
|
||||||
FqName importFqn = fqNameFromExpression(getImportedReference());
|
FqName importFqn = getImportedFqName();
|
||||||
if (importFqn == null) {
|
if (importFqn == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public interface KotlinFunctionStub : KotlinCallableStubBase<JetNamedFunction> {
|
|||||||
public interface KotlinImportDirectiveStub : StubElement<JetImportDirective> {
|
public interface KotlinImportDirectiveStub : StubElement<JetImportDirective> {
|
||||||
public fun isAbsoluteInRootPackage(): Boolean
|
public fun isAbsoluteInRootPackage(): Boolean
|
||||||
public fun isAllUnder(): Boolean
|
public fun isAllUnder(): Boolean
|
||||||
|
public fun getImportedFqName(): FqName
|
||||||
public fun getAliasName(): String?
|
public fun getAliasName(): String?
|
||||||
public fun isValid(): Boolean
|
public fun isValid(): Boolean
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.psi.stubs.impl.KotlinFileStubImpl;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
public class JetFileElementType extends IStubFileElementType<KotlinFileStub> {
|
public class JetFileElementType extends IStubFileElementType<KotlinFileStub> {
|
||||||
public static final int STUB_VERSION = 50;
|
public static final int STUB_VERSION = 51;
|
||||||
|
|
||||||
private static final String NAME = "kotlin.FILE";
|
private static final String NAME = "kotlin.FILE";
|
||||||
|
|
||||||
|
|||||||
+5
-2
@@ -35,15 +35,17 @@ public class JetImportDirectiveElementType extends JetStubElementType<KotlinImpo
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public KotlinImportDirectiveStub createStub(@NotNull JetImportDirective psi, StubElement parentStub) {
|
public KotlinImportDirectiveStub createStub(@NotNull JetImportDirective psi, StubElement parentStub) {
|
||||||
|
StringRef fqName = StringRef.fromString(psi.getImportedFqName().asString());
|
||||||
StringRef aliasName = StringRef.fromString(psi.getAliasName());
|
StringRef aliasName = StringRef.fromString(psi.getAliasName());
|
||||||
return new KotlinImportDirectiveStubImpl(parentStub, psi.isAbsoluteInRootPackage(), psi.isAllUnder(),
|
return new KotlinImportDirectiveStubImpl(parentStub, psi.isAbsoluteInRootPackage(), psi.isAllUnder(),
|
||||||
aliasName, psi.isValidImport());
|
fqName, aliasName, psi.isValidImport());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void serialize(@NotNull KotlinImportDirectiveStub stub, @NotNull StubOutputStream dataStream) throws IOException {
|
public void serialize(@NotNull KotlinImportDirectiveStub stub, @NotNull StubOutputStream dataStream) throws IOException {
|
||||||
dataStream.writeBoolean(stub.isAbsoluteInRootPackage());
|
dataStream.writeBoolean(stub.isAbsoluteInRootPackage());
|
||||||
dataStream.writeBoolean(stub.isAllUnder());
|
dataStream.writeBoolean(stub.isAllUnder());
|
||||||
|
dataStream.writeName(stub.getImportedFqName().asString());
|
||||||
dataStream.writeName(stub.getAliasName());
|
dataStream.writeName(stub.getAliasName());
|
||||||
dataStream.writeBoolean(stub.isValid());
|
dataStream.writeBoolean(stub.isValid());
|
||||||
}
|
}
|
||||||
@@ -53,8 +55,9 @@ public class JetImportDirectiveElementType extends JetStubElementType<KotlinImpo
|
|||||||
public KotlinImportDirectiveStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
|
public KotlinImportDirectiveStub deserialize(@NotNull StubInputStream dataStream, StubElement parentStub) throws IOException {
|
||||||
boolean isAbsoluteInRootPackage = dataStream.readBoolean();
|
boolean isAbsoluteInRootPackage = dataStream.readBoolean();
|
||||||
boolean isAllUnder = dataStream.readBoolean();
|
boolean isAllUnder = dataStream.readBoolean();
|
||||||
|
StringRef importedName = dataStream.readName();
|
||||||
StringRef aliasName = dataStream.readName();
|
StringRef aliasName = dataStream.readName();
|
||||||
boolean isValid = dataStream.readBoolean();
|
boolean isValid = dataStream.readBoolean();
|
||||||
return new KotlinImportDirectiveStubImpl(parentStub, isAbsoluteInRootPackage, isAllUnder, aliasName, isValid);
|
return new KotlinImportDirectiveStubImpl(parentStub, isAbsoluteInRootPackage, isAllUnder, importedName, aliasName, isValid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
@@ -19,6 +19,7 @@ package org.jetbrains.kotlin.psi.stubs.impl
|
|||||||
import com.intellij.psi.PsiElement
|
import com.intellij.psi.PsiElement
|
||||||
import com.intellij.psi.stubs.StubElement
|
import com.intellij.psi.stubs.StubElement
|
||||||
import com.intellij.util.io.StringRef
|
import com.intellij.util.io.StringRef
|
||||||
|
import org.jetbrains.kotlin.name.FqName
|
||||||
import org.jetbrains.kotlin.psi.JetImportDirective
|
import org.jetbrains.kotlin.psi.JetImportDirective
|
||||||
import org.jetbrains.kotlin.psi.stubs.KotlinImportDirectiveStub
|
import org.jetbrains.kotlin.psi.stubs.KotlinImportDirectiveStub
|
||||||
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
|
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
|
||||||
@@ -27,11 +28,13 @@ public class KotlinImportDirectiveStubImpl(
|
|||||||
parent: StubElement<PsiElement>,
|
parent: StubElement<PsiElement>,
|
||||||
private val isAbsoluteInRootPackage: Boolean,
|
private val isAbsoluteInRootPackage: Boolean,
|
||||||
private val isAllUnder: Boolean,
|
private val isAllUnder: Boolean,
|
||||||
|
private val importedFqName: StringRef,
|
||||||
private val aliasName: StringRef?,
|
private val aliasName: StringRef?,
|
||||||
private val isValid: Boolean) : KotlinStubBaseImpl<JetImportDirective>(parent, JetStubElementTypes.IMPORT_DIRECTIVE), KotlinImportDirectiveStub {
|
private val isValid: Boolean) : KotlinStubBaseImpl<JetImportDirective>(parent, JetStubElementTypes.IMPORT_DIRECTIVE), KotlinImportDirectiveStub {
|
||||||
|
|
||||||
override fun isAbsoluteInRootPackage(): Boolean = isAbsoluteInRootPackage
|
override fun isAbsoluteInRootPackage(): Boolean = isAbsoluteInRootPackage
|
||||||
override fun isAllUnder(): Boolean = isAllUnder
|
override fun isAllUnder(): Boolean = isAllUnder
|
||||||
|
override fun getImportedFqName(): FqName = FqName(StringRef.toString(importedFqName)!!)
|
||||||
override fun getAliasName(): String? = StringRef.toString(aliasName)
|
override fun getAliasName(): String? = StringRef.toString(aliasName)
|
||||||
override fun isValid(): Boolean = isValid
|
override fun isValid(): Boolean = isValid
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user