improve stub-psi-mismatch diagnostic: add language

This commit is contained in:
Gregory.Shrago
2014-02-27 18:23:17 +04:00
parent 140bfa4640
commit 13c7ba02ee
@@ -19,6 +19,7 @@
*/
package com.intellij.psi.stubs;
import com.intellij.lang.Language;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.application.ModalityState;
import com.intellij.openapi.components.*;
@@ -26,12 +27,15 @@ import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Document;
import com.intellij.openapi.extensions.Extensions;
import com.intellij.openapi.fileEditor.FileDocumentManager;
import com.intellij.openapi.fileTypes.FileType;
import com.intellij.openapi.fileTypes.LanguageFileType;
import com.intellij.openapi.progress.ProgressManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.io.FileUtil;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.vfs.newvfs.ManagingFS;
import com.intellij.openapi.vfs.newvfs.persistent.PersistentFS;
import com.intellij.psi.LanguageSubstitutors;
import com.intellij.psi.PsiDocumentManager;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
@@ -465,8 +469,13 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe
out.printf("\nfile: %s\npsiElement: %s\nrequiredClass: %s\nactualClass: %s",
file, psi, requiredClass, psi.getClass());
out.printf("\nvirtualFile: size:%s; stamp:%s; modCount:%s",
file.getLength(), file.getModificationStamp(), file.getModificationCount());
FileType fileType = file.getFileType();
Language language = fileType instanceof LanguageFileType ?
LanguageSubstitutors.INSTANCE.substituteLanguage(((LanguageFileType)fileType).getLanguage(), file, psi.getProject()) :
Language.ANY;
out.printf("\nvirtualFile: size:%s; stamp:%s; modCount:%s; fileType:%s; language:%s",
file.getLength(), file.getModificationStamp(), file.getModificationCount(),
fileType.getName(), language.getID());
Document document = FileDocumentManager.getInstance().getCachedDocument(file);
if (document != null) {
@@ -478,8 +487,9 @@ public class StubIndexImpl extends StubIndex implements ApplicationComponent, Pe
PsiFile psiFile = psi.getManager().findFile(file);
if (psiFile != null) {
out.printf("\npsiFile: size:%s; stamp:%s; class:%s",
psiFile.getTextLength(), psiFile.getViewProvider().getModificationStamp(), psiFile.getClass().getName());
out.printf("\npsiFile: size:%s; stamp:%s; class:%s; language:%s",
psiFile.getTextLength(), psiFile.getViewProvider().getModificationStamp(), psiFile.getClass().getName(),
psiFile.getLanguage().getID());
}
StubTree stub = psiFile instanceof PsiFileWithStubSupport ? ((PsiFileWithStubSupport)psiFile).getStubTree() : null;