Add isCompiled property to JetFile

This commit is contained in:
Pavel V. Talanov
2013-07-26 18:26:03 +04:00
parent 0f8d50b44f
commit dd0408d488
4 changed files with 32 additions and 6 deletions
@@ -106,7 +106,7 @@ public class JetParserDefinition implements ParserDefinition {
@Override
public PsiFile createFile(FileViewProvider fileViewProvider) {
return new JetFile(fileViewProvider);
return new JetFile(fileViewProvider, false);
}
@Override
@@ -31,7 +31,7 @@ public class JetCodeFragmentImpl extends JetFile implements PsiCodeFragment {
public JetCodeFragmentImpl(Project project, String name, CharSequence text, IElementType elementType, PsiElement context) {
super(((PsiManagerEx) PsiManager.getInstance(project)).getFileManager().createFileViewProvider(
new LightVirtualFile(name, JetFileType.INSTANCE, text), true));
new LightVirtualFile(name, JetFileType.INSTANCE, text), true), false);
((SingleRootFileViewProvider)getViewProvider()).forceCachedPsi(this);
init(TokenType.CODE_FRAGMENT, elementType);
this.context = context;
@@ -18,9 +18,22 @@ package org.jetbrains.jet.lang.psi;
import com.intellij.extapi.psi.PsiFileBase;
import com.intellij.lang.ASTNode;
import com.intellij.lang.FileASTNode;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.VirtualFileWithId;
import com.intellij.psi.FileViewProvider;
import com.intellij.psi.PsiElementVisitor;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiLock;
import com.intellij.psi.stubs.ObjectStubTree;
import com.intellij.psi.stubs.StubBase;
import com.intellij.psi.stubs.StubTree;
import com.intellij.psi.stubs.StubTreeLoader;
import com.intellij.psi.tree.IElementType;
import com.intellij.psi.tree.IStubFileElementType;
import com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -32,8 +45,21 @@ import org.jetbrains.jet.plugin.JetLanguage;
import java.util.List;
public class JetFile extends PsiFileBase implements JetDeclarationContainer, JetElement {
public JetFile(FileViewProvider viewProvider) {
private final boolean isCompiled;
public JetFile(FileViewProvider viewProvider, boolean compiled) {
super(viewProvider, JetLanguage.INSTANCE);
this.isCompiled = compiled;
}
@Override
public FileASTNode getNode() {
return super.getNode();
}
public boolean isCompiled() {
return isCompiled;
}
@Override
@@ -76,7 +102,7 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
@Nullable
public String getPackageName() {
PsiJetFileStub stub = (PsiJetFileStub)getStub();
PsiJetFileStub stub = (PsiJetFileStub) getStub();
if (stub != null) {
return stub.getPackageName();
}
@@ -91,7 +117,7 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
}
public boolean isScript() {
PsiJetFileStub stub = (PsiJetFileStub)getStub();
PsiJetFileStub stub = (PsiJetFileStub) getStub();
if (stub != null) {
return stub.isScript();
}
@@ -43,7 +43,7 @@ class JetDummyClassFileViewProvider extends UserDataHolderBase implements FileVi
virtualFile = file;
this.text = text;
jetFile = new JetFile(this) {
jetFile = new JetFile(this, true) {
@Override
public VirtualFile getVirtualFile() {
return virtualFile; // overridden to return not-null; original method returns null when isEventSystemEnabled() = false