Charset (@Nullable Project project, @Nullable VirtualFile virtualFile, @Nullable FileType fileType, @NotNull CharSequence text) { if (fileType instanceof LanguageFileType && // otherwise the default implementations will always convert CharSequence to String unnecessarily, producing garbage ourSupportsCharsetDetection.computeIfAbsent(fileType.getName(), __ -> overridesExtractCharsetFromContent((LanguageFileType)fileType))) { return ((LanguageFileType)fileType).extractCharsetFromFileContent(project, virtualFile, text); } return null; }