HashBangConflict (@NotNull String hashbang) { for (Map.Entry<String, FileTypeManagerImpl.FileTypeWithDescriptor> entry : myTempPatternsTable.getInternalRawHashBangPatterns().entrySet()) { String existingHashBang = entry.getKey(); if (hashbang.contains(existingHashBang) || existingHashBang.contains(hashbang)) { FileTypeManagerImpl.FileTypeWithDescriptor ftd = entry.getValue(); boolean exact = existingHashBang.equals(hashbang); boolean writeable = !ftd.fileType.isReadOnly() && !isStandardFileType(ftd.fileType); return new HashBangConflict(ftd, exact, writeable, existingHashBang); } } for (FileTypeRegistry.FileTypeDetector detector : FileTypeRegistry.FileTypeDetector.EP_NAME.getIterable()) { if (detector instanceof HashBangFileTypeDetector) { String existingHashBang = ((HashBangFileTypeDetector)detector).getMarker(); if (hashbang.contains(existingHashBang) || existingHashBang.contains(hashbang)) { FileType fileType = ((HashBangFileTypeDetector)detector).getFileType(); boolean exact = existingHashBang.equals(hashbang); boolean writeable = false; FileTypeManagerImpl.FileTypeWithDescriptor ftd = FileTypeManagerImpl.detectPluginDescriptor(fileType); return new HashBangConflict(ftd, exact, writeable, existingHashBang); } } } return null; }