extract getFileTypeFromName() and show original file type icon

This commit is contained in:
Gregory.Shrago
2016-06-06 10:30:51 +03:00
parent f0e5bb5cc8
commit e06c3a950f
2 changed files with 12 additions and 6 deletions
@@ -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;
}
@@ -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);
}
}