From 7793e6046f2e4bfc5cda4a721b99b7583f97ad32 Mon Sep 17 00:00:00 2001 From: Dmitry Avdeev Date: Thu, 14 Oct 2010 17:50:59 +0400 Subject: [PATCH] directed traversing of includes (optimization for IDEA-57055) --- .../src/com/intellij/ide/JavaFileIconPatcher.java | 3 ++- .../src/com/intellij/openapi/module/ModuleUtil.java | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/java/java-impl/src/com/intellij/ide/JavaFileIconPatcher.java b/java/java-impl/src/com/intellij/ide/JavaFileIconPatcher.java index 4552c0cd67c2..3ab62fe7691e 100644 --- a/java/java-impl/src/com/intellij/ide/JavaFileIconPatcher.java +++ b/java/java-impl/src/com/intellij/ide/JavaFileIconPatcher.java @@ -15,6 +15,7 @@ */ package com.intellij.ide; +import com.intellij.lang.StdLanguages; import com.intellij.openapi.compiler.CompilerManager; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.FileTypeManager; @@ -57,7 +58,7 @@ public class JavaFileIconPatcher implements FileIconPatcher { } PsiFile psiFile = PsiManager.getInstance(project).findFile(file); - if (psiFile instanceof PsiClassOwner) { + if (psiFile instanceof PsiClassOwner && psiFile.getViewProvider().getBaseLanguage() == StdLanguages.JAVA) { PsiClass[] classes = ((PsiClassOwner)psiFile).getClasses(); if (classes.length > 0) { // prefer icon of the class named after file diff --git a/platform/lang-api/src/com/intellij/openapi/module/ModuleUtil.java b/platform/lang-api/src/com/intellij/openapi/module/ModuleUtil.java index 2e54e42fd703..49dddfa17224 100644 --- a/platform/lang-api/src/com/intellij/openapi/module/ModuleUtil.java +++ b/platform/lang-api/src/com/intellij/openapi/module/ModuleUtil.java @@ -111,8 +111,14 @@ public class ModuleUtil { final ProjectFileIndex fileIndex = ProjectRootManager.getInstance(project).getFileIndex(); if (element instanceof PsiFileSystemItem) { - final VirtualFile vFile = ((PsiFileSystemItem)element).getVirtualFile(); - if (vFile == null) return element.getUserData(KEY_MODULE); + VirtualFile vFile = ((PsiFileSystemItem)element).getVirtualFile(); + if (vFile == null) { + PsiFile containingFile = element.getContainingFile(); + vFile = containingFile == null ? null : containingFile.getOriginalFile().getVirtualFile(); + if (vFile == null) { + return element.getUserData(KEY_MODULE); + } + } if (fileIndex.isInLibrarySource(vFile) || fileIndex.isInLibraryClasses(vFile)) { final List orderEntries = fileIndex.getOrderEntriesForFile(vFile); if (orderEntries.isEmpty()) {