diff --git a/platform/lang-impl/src/com/intellij/ide/scratch/RootType.java b/platform/lang-impl/src/com/intellij/ide/scratch/RootType.java index 522103390735..12b4d65e26c4 100644 --- a/platform/lang-impl/src/com/intellij/ide/scratch/RootType.java +++ b/platform/lang-impl/src/com/intellij/ide/scratch/RootType.java @@ -17,10 +17,11 @@ package com.intellij.ide.scratch; import com.intellij.ide.util.treeView.AbstractTreeBuilder; import com.intellij.lang.Language; +import com.intellij.lang.LanguageUtil; import com.intellij.openapi.extensions.ExtensionPointName; import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.fileEditor.FileEditorManager; -import com.intellij.openapi.fileTypes.LanguageFileType; +import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; @@ -93,7 +94,8 @@ public abstract class RootType { @Nullable public Icon substituteIcon(@NotNull Project project, @NotNull VirtualFile file) { Language language = substituteLanguage(project, file); - LanguageFileType fileType = language != null ? language.getAssociatedFileType() : null; + FileType fileType = LanguageUtil.getLanguageFileType(language); + if (fileType == null) fileType = ScratchUtil.getFileTypeFromName(file); return fileType != null ? fileType.getIcon() : null; } diff --git a/platform/lang-impl/src/com/intellij/ide/scratch/ScratchUtil.java b/platform/lang-impl/src/com/intellij/ide/scratch/ScratchUtil.java index 5e60577fb799..2850a92fbd13 100644 --- a/platform/lang-impl/src/com/intellij/ide/scratch/ScratchUtil.java +++ b/platform/lang-impl/src/com/intellij/ide/scratch/ScratchUtil.java @@ -54,8 +54,7 @@ public class ScratchUtil { if (file == null) return; Language language = LanguageUtil.getLanguageForPsi(project, file); - String extension = file.getExtension(); - FileType expected = extension == null ? null : FileTypeManager.getInstance().getFileTypeByExtension(extension); + FileType expected = getFileTypeFromName(file); FileType actual = language == null ? null : language.getAssociatedFileType(); if (expected == actual || actual == null) return; String ext = actual.getDefaultExtension(); @@ -68,10 +67,15 @@ public class ScratchUtil { } public static boolean hasMatchingExtension(@NotNull Project project, @NotNull VirtualFile file) { - String extension = file.getExtension(); + FileType expected = getFileTypeFromName(file); Language language = LanguageUtil.getLanguageForPsi(project, file); - FileType expected = extension == null ? null : FileTypeManager.getInstance().getFileTypeByExtension(extension); FileType actual = language == null ? null : language.getAssociatedFileType(); return expected == actual && actual != null; } + + @Nullable + public static FileType getFileTypeFromName(@NotNull VirtualFile file) { + String extension = file.getExtension(); + return extension == null ? null : FileTypeManager.getInstance().getFileTypeByExtension(extension); + } }