mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
extract getFileTypeFromName() and show original file type icon
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user