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 @Override
public PsiFile createFile(FileViewProvider fileViewProvider) { public PsiFile createFile(FileViewProvider fileViewProvider) {
return new JetFile(fileViewProvider); return new JetFile(fileViewProvider, false);
} }
@Override @Override
@@ -31,7 +31,7 @@ public class JetCodeFragmentImpl extends JetFile implements PsiCodeFragment {
public JetCodeFragmentImpl(Project project, String name, CharSequence text, IElementType elementType, PsiElement context) { public JetCodeFragmentImpl(Project project, String name, CharSequence text, IElementType elementType, PsiElement context) {
super(((PsiManagerEx) PsiManager.getInstance(project)).getFileManager().createFileViewProvider( 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); ((SingleRootFileViewProvider)getViewProvider()).forceCachedPsi(this);
init(TokenType.CODE_FRAGMENT, elementType); init(TokenType.CODE_FRAGMENT, elementType);
this.context = context; this.context = context;
@@ -18,9 +18,22 @@ package org.jetbrains.jet.lang.psi;
import com.intellij.extapi.psi.PsiFileBase; import com.intellij.extapi.psi.PsiFileBase;
import com.intellij.lang.ASTNode; 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.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.FileViewProvider;
import com.intellij.psi.PsiElementVisitor; 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 com.intellij.psi.util.PsiTreeUtil;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
@@ -32,8 +45,21 @@ import org.jetbrains.jet.plugin.JetLanguage;
import java.util.List; import java.util.List;
public class JetFile extends PsiFileBase implements JetDeclarationContainer, JetElement { 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); super(viewProvider, JetLanguage.INSTANCE);
this.isCompiled = compiled;
}
@Override
public FileASTNode getNode() {
return super.getNode();
}
public boolean isCompiled() {
return isCompiled;
} }
@Override @Override
@@ -76,7 +102,7 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
@Nullable @Nullable
public String getPackageName() { public String getPackageName() {
PsiJetFileStub stub = (PsiJetFileStub)getStub(); PsiJetFileStub stub = (PsiJetFileStub) getStub();
if (stub != null) { if (stub != null) {
return stub.getPackageName(); return stub.getPackageName();
} }
@@ -91,7 +117,7 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
} }
public boolean isScript() { public boolean isScript() {
PsiJetFileStub stub = (PsiJetFileStub)getStub(); PsiJetFileStub stub = (PsiJetFileStub) getStub();
if (stub != null) { if (stub != null) {
return stub.isScript(); return stub.isScript();
} }
@@ -43,7 +43,7 @@ class JetDummyClassFileViewProvider extends UserDataHolderBase implements FileVi
virtualFile = file; virtualFile = file;
this.text = text; this.text = text;
jetFile = new JetFile(this) { jetFile = new JetFile(this, true) {
@Override @Override
public VirtualFile getVirtualFile() { public VirtualFile getVirtualFile() {
return virtualFile; // overridden to return not-null; original method returns null when isEventSystemEnabled() = false return virtualFile; // overridden to return not-null; original method returns null when isEventSystemEnabled() = false