mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Ensure that every language has just one primary file type (IDEA-CR-50521)
GitOrigin-RevId: 9ada39d401d2c0f617be240be2d37787d93e2038
This commit is contained in:
committed by
intellij-monorepo-bot
parent
fb0bfeda5a
commit
1a33912e0c
@@ -34,7 +34,7 @@ public class ScratchFileType extends LanguageFileType implements FileTypeIdentif
|
||||
public static final LanguageFileType INSTANCE = new ScratchFileType();
|
||||
|
||||
ScratchFileType() {
|
||||
super(PlainTextLanguage.INSTANCE);
|
||||
super(PlainTextLanguage.INSTANCE, true);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -362,7 +362,7 @@
|
||||
<projectViewPane implementation="com.intellij.ide.scratch.ScratchProjectViewPane"/>
|
||||
<treeStructureProvider implementation="com.intellij.ide.scratch.ScratchProjectViewPane$MyStructureProvider" order="last"/>
|
||||
|
||||
<fileType name="Scratch" language="TEXT" implementationClass="com.intellij.ide.scratch.ScratchFileType" fieldName="INSTANCE"/>
|
||||
<fileType name="Scratch" implementationClass="com.intellij.ide.scratch.ScratchFileType" fieldName="INSTANCE"/>
|
||||
<navbar implementation="com.intellij.ide.scratch.ScratchFileServiceImpl$NavBarExtension"/>
|
||||
<lang.substitutor language="TEXT" implementationClass="com.intellij.ide.scratch.ScratchFileServiceImpl$Substitutor" order="first"/>
|
||||
<nonProjectFileWritingAccessExtension implementation="com.intellij.ide.scratch.ScratchFileServiceImpl$AccessExtension"/>
|
||||
|
||||
+16
@@ -835,6 +835,22 @@ public class FileTypesTest extends HeavyPlatformTestCase {
|
||||
assertEquals(1, detectorCalls.get());
|
||||
}
|
||||
|
||||
public void testUniqueLanguage() {
|
||||
Map<String, LanguageFileType> map = new HashMap<>();
|
||||
for (FileType type : FileTypeManager.getInstance().getRegisteredFileTypes()) {
|
||||
if (!(type instanceof LanguageFileType)) continue;
|
||||
LanguageFileType languageFileType = (LanguageFileType)type;
|
||||
if (!languageFileType.isSecondary()) {
|
||||
String id = languageFileType.getLanguage().getID();
|
||||
LanguageFileType oldFileType = map.get(id);
|
||||
if (oldFileType != null) {
|
||||
fail("Multiple primary file types for language " + id + ": "+ oldFileType.getName() + ", " + languageFileType.getName());
|
||||
}
|
||||
map.put(id, languageFileType);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private static FileType createTestFileType() {
|
||||
return new FileType() {
|
||||
|
||||
@@ -15,7 +15,7 @@ import javax.swing.*;
|
||||
public class DGMFileType extends LanguageFileType implements FileTypeIdentifiableByVirtualFile {
|
||||
public static final DGMFileType INSTANCE = new DGMFileType();
|
||||
private DGMFileType() {
|
||||
super(PropertiesLanguage.INSTANCE);
|
||||
super(PropertiesLanguage.INSTANCE, true);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user