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