mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
improve stub-psi-mismatch diagnostic: add language
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user