CONTENT_FOR_DOM_STUBS moved to DomStubBuilder

This commit is contained in:
Maxim.Mossienko
2013-06-06 12:08:51 +02:00
parent ecade0071b
commit e5311bf52e
3 changed files with 10 additions and 6 deletions
@@ -44,6 +44,7 @@ import com.intellij.util.text.CharSequenceReader;
import com.intellij.util.xml.*;
import com.intellij.util.xml.structure.DomStructureViewBuilder;
import com.intellij.util.xml.stubs.FileStub;
import com.intellij.util.xml.stubs.builder.DomStubBuilder;
import com.intellij.xml.util.XmlUtil;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -90,7 +91,7 @@ public class DomServiceImpl extends DomService {
if (!file.isValid()) return XmlFileHeader.EMPTY;
if (XmlUtil.isStubBuilding(file) && file.getFileType() == XmlFileType.INSTANCE) {
FileContent fileContent = file.getUserData(XmlUtil.CONTENT_FOR_DOM_STUBS);
FileContent fileContent = file.getUserData(DomStubBuilder.CONTENT_FOR_DOM_STUBS);
if (fileContent != null) {
//noinspection IOResourceOpenedButNotSafelyClosed
return NanoXmlUtil.parseHeader(new CharSequenceReader(fileContent.getContentAsText()));
@@ -18,14 +18,16 @@ package com.intellij.util.xml.stubs.builder;
import com.intellij.ide.highlighter.XmlFileType;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.project.ProjectCoreUtil;
import com.intellij.openapi.util.Key;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiFile;
import com.intellij.psi.PsiManager;
import com.intellij.psi.stubs.BinaryFileStubBuilder;
import com.intellij.psi.stubs.Stub;
import com.intellij.psi.xml.XmlFile;
import com.intellij.util.indexing.FileBasedIndexImpl;
import com.intellij.util.indexing.FileContent;
import com.intellij.util.xml.*;
import com.intellij.util.xml.stubs.FileStub;
@@ -37,11 +39,13 @@ import com.intellij.xml.util.XmlUtil;
*/
public class DomStubBuilder implements BinaryFileStubBuilder {
public final static Key<FileContent> CONTENT_FOR_DOM_STUBS = Key.create("dom stubs content");
private final static Logger LOG = Logger.getInstance(DomStubBuilder.class);
@Override
public boolean acceptsFile(VirtualFile file) {
return file.getFileType() == XmlFileType.INSTANCE && !ProjectCoreUtil.isProjectOrWorkspaceFile(file);
FileType fileType = file.getFileType();
return fileType == XmlFileType.INSTANCE && !FileBasedIndexImpl.isProjectOrWorkspaceFile(file, fileType);
}
@Override
@@ -50,7 +54,7 @@ public class DomStubBuilder implements BinaryFileStubBuilder {
Project project = fileContent.getProject();
PsiFile psiFile = PsiManager.getInstance(project).findFile(file);
if (!(psiFile instanceof XmlFile)) return null;
psiFile.putUserData(XmlUtil.CONTENT_FOR_DOM_STUBS, fileContent);
psiFile.putUserData(CONTENT_FOR_DOM_STUBS, fileContent);
XmlFile xmlFile = (XmlFile)psiFile;
DomManager manager = DomManager.getDomManager(project);
@@ -70,7 +74,7 @@ public class DomStubBuilder implements BinaryFileStubBuilder {
}
finally {
xmlFile.putUserData(XmlUtil.BUILDING_DOM_STUBS, null);
psiFile.putUserData(XmlUtil.CONTENT_FOR_DOM_STUBS, null);
psiFile.putUserData(CONTENT_FOR_DOM_STUBS, null);
}
}
@@ -169,7 +169,6 @@ public class XmlUtil {
public static final String XHTML4_SCHEMA_LOCATION;
public final static Key<Boolean> BUILDING_DOM_STUBS = Key.create("building dom stubs...");
public final static Key<FileContent> CONTENT_FOR_DOM_STUBS = Key.create("dom stubs content");
private XmlUtil() {
}