- The information on is the file a script is stored in the file stub
- Correct information about type of kotlin file stub type
This commit is contained in:
@@ -94,6 +94,11 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer {
|
||||
}
|
||||
|
||||
public boolean isScript() {
|
||||
PsiJetFileStub stub = (PsiJetFileStub)getStub();
|
||||
if (stub != null) {
|
||||
return stub.isScript();
|
||||
}
|
||||
|
||||
return getScript() != null;
|
||||
}
|
||||
|
||||
|
||||
@@ -16,16 +16,13 @@
|
||||
|
||||
package org.jetbrains.jet.lang.psi.stubs;
|
||||
|
||||
import com.intellij.psi.impl.java.stubs.StubPsiFactory;
|
||||
import com.intellij.psi.stubs.PsiClassHolderFileStub;
|
||||
import com.intellij.psi.stubs.PsiFileStub;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
|
||||
/**
|
||||
* @author Nikolay Krasko
|
||||
*/
|
||||
public interface PsiJetFileStub extends PsiClassHolderFileStub<JetFile> {
|
||||
public interface PsiJetFileStub extends PsiFileStub<JetFile> {
|
||||
String getPackageName();
|
||||
|
||||
StubPsiFactory getPsiFactory();
|
||||
void setPsiFactory(StubPsiFactory factory);
|
||||
boolean isScript();
|
||||
}
|
||||
|
||||
+4
-2
@@ -38,7 +38,7 @@ import java.io.IOException;
|
||||
* @author Nikolay Krasko
|
||||
*/
|
||||
public class JetFileElementType extends IStubFileElementType<PsiJetFileStub> {
|
||||
public static final int STUB_VERSION = 12;
|
||||
public static final int STUB_VERSION = 13;
|
||||
|
||||
public JetFileElementType() {
|
||||
super("jet.FILE", JetLanguage.INSTANCE);
|
||||
@@ -63,12 +63,14 @@ public class JetFileElementType extends IStubFileElementType<PsiJetFileStub> {
|
||||
public void serialize(final PsiJetFileStub stub, final StubOutputStream dataStream)
|
||||
throws IOException {
|
||||
dataStream.writeName(stub.getPackageName());
|
||||
dataStream.writeBoolean(stub.isScript());
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiJetFileStub deserialize(final StubInputStream dataStream, final StubElement parentStub) throws IOException {
|
||||
StringRef packName = dataStream.readName();
|
||||
return new PsiJetFileStubImpl(null, packName);
|
||||
boolean isScript = dataStream.readBoolean();
|
||||
return new PsiJetFileStubImpl(null, packName, isScript);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
-1
@@ -34,6 +34,6 @@ public class JetFileStubBuilder extends DefaultStubBuilder {
|
||||
}
|
||||
|
||||
JetFile jetFile = (JetFile) file;
|
||||
return new PsiJetFileStubImpl(jetFile, jetFile.getPackageName());
|
||||
return new PsiJetFileStubImpl(jetFile, jetFile.getPackageName(), jetFile.isScript());
|
||||
}
|
||||
}
|
||||
|
||||
+13
-15
@@ -16,12 +16,12 @@
|
||||
|
||||
package org.jetbrains.jet.lang.psi.stubs.impl;
|
||||
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.impl.java.stubs.StubPsiFactory;
|
||||
import com.intellij.psi.stubs.PsiFileStubImpl;
|
||||
import com.intellij.psi.tree.IStubFileElementType;
|
||||
import com.intellij.util.io.StringRef;
|
||||
import org.jetbrains.jet.lang.psi.JetFile;
|
||||
import org.jetbrains.jet.lang.psi.stubs.PsiJetFileStub;
|
||||
import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
|
||||
|
||||
/**
|
||||
* @author Nikolay Krasko
|
||||
@@ -29,15 +29,16 @@ import org.jetbrains.jet.lang.psi.stubs.PsiJetFileStub;
|
||||
public class PsiJetFileStubImpl extends PsiFileStubImpl<JetFile> implements PsiJetFileStub {
|
||||
|
||||
private final StringRef packageName;
|
||||
private StubPsiFactory psiFactory;
|
||||
private final boolean isScript;
|
||||
|
||||
public PsiJetFileStubImpl(JetFile jetFile, StringRef packageName) {
|
||||
public PsiJetFileStubImpl(JetFile jetFile, StringRef packageName, boolean isScript) {
|
||||
super(jetFile);
|
||||
this.packageName = packageName;
|
||||
this.isScript = isScript;
|
||||
}
|
||||
|
||||
public PsiJetFileStubImpl(JetFile jetFile, String packageName) {
|
||||
this(jetFile, StringRef.fromString(packageName));
|
||||
public PsiJetFileStubImpl(JetFile jetFile, String packageName, boolean isScript) {
|
||||
this(jetFile, StringRef.fromString(packageName), isScript);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -46,18 +47,13 @@ public class PsiJetFileStubImpl extends PsiFileStubImpl<JetFile> implements PsiJ
|
||||
}
|
||||
|
||||
@Override
|
||||
public StubPsiFactory getPsiFactory() {
|
||||
return psiFactory;
|
||||
public boolean isScript() {
|
||||
return isScript;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setPsiFactory(StubPsiFactory factory) {
|
||||
psiFactory = factory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PsiClass[] getClasses() {
|
||||
return new PsiClass[0];
|
||||
public IStubFileElementType getType() {
|
||||
return JetStubElementTypes.FILE;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -65,6 +61,8 @@ public class PsiJetFileStubImpl extends PsiFileStubImpl<JetFile> implements PsiJ
|
||||
StringBuilder builder = new StringBuilder();
|
||||
|
||||
builder.append("PsiJetFileStubImpl[");
|
||||
|
||||
|
||||
builder.append("package=").append(getPackageName());
|
||||
builder.append("]");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user