From ead776d4686df868fa4ce710c0b0aa01d8ec77b2 Mon Sep 17 00:00:00 2001 From: Evgeny Pasynkov Date: Thu, 6 Feb 2014 14:09:35 +0100 Subject: [PATCH] move FileTypeFactory to core-* --- .../core/JavaCoreApplicationEnvironment.java | 7 ++++- .../fileTypes/impl/JavaFileTypeFactory.java | 0 jps/model-api/jps-model-api.iml | 1 + jps/model-impl/jps-model-impl.iml | 1 + .../openapi/fileTypes/FileNameMatcher.java | 0 .../openapi/fileTypes/FileTypeConsumer.java | 0 .../openapi/fileTypes/FileTypeFactory.java | 0 .../core/CoreApplicationEnvironment.java | 5 +++ .../fileTypes/impl/CoreFileTypeFactory.java | 31 +++++++++++++++++++ .../impl/PlatformFileTypeFactory.java | 3 -- resources/src/META-INF/IdeaPlugin.xml | 1 + 11 files changed, 45 insertions(+), 4 deletions(-) rename java/{java-impl => java-psi-impl}/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java (100%) rename {jps/model-api => platform/core-api}/src/com/intellij/openapi/fileTypes/FileNameMatcher.java (100%) rename platform/{platform-api => core-api}/src/com/intellij/openapi/fileTypes/FileTypeConsumer.java (100%) rename platform/{platform-api => core-api}/src/com/intellij/openapi/fileTypes/FileTypeFactory.java (100%) create mode 100644 platform/core-impl/src/com/intellij/openapi/fileTypes/impl/CoreFileTypeFactory.java diff --git a/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java b/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java index 51ae457b4fc0..229872918fdb 100644 --- a/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java +++ b/java/java-psi-impl/src/com/intellij/core/JavaCoreApplicationEnvironment.java @@ -26,6 +26,10 @@ import com.intellij.lang.java.JavaParserDefinition; import com.intellij.navigation.ItemPresentationProviders; import com.intellij.openapi.Disposable; import com.intellij.openapi.extensions.Extensions; +import com.intellij.openapi.fileTypes.FileTypeFactory; +import com.intellij.openapi.fileTypes.PlainTextFileType; +import com.intellij.openapi.fileTypes.impl.CoreFileTypeFactory; +import com.intellij.openapi.fileTypes.impl.JavaFileTypeFactory; import com.intellij.openapi.projectRoots.JavaVersionService; import com.intellij.openapi.util.ClassExtension; import com.intellij.openapi.util.Disposer; @@ -49,9 +53,10 @@ public class JavaCoreApplicationEnvironment extends CoreApplicationEnvironment { public JavaCoreApplicationEnvironment(Disposable parentDisposable) { super(parentDisposable); + addExtension(FileTypeFactory.FILE_TYPE_FACTORY_EP, new JavaFileTypeFactory()); + registerFileType(JavaClassFileType.INSTANCE, "class"); registerFileType(JavaFileType.INSTANCE, "java"); - registerFileType(ArchiveFileType.INSTANCE, "jar;zip"); addExplicitExtension(FileTypeFileViewProviders.INSTANCE, JavaClassFileType.INSTANCE, new ClassFileViewProviderFactory()); addExplicitExtension(BinaryFileStubBuilders.INSTANCE, JavaClassFileType.INSTANCE, new ClassFileStubBuilder()); diff --git a/java/java-impl/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java b/java/java-psi-impl/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java similarity index 100% rename from java/java-impl/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java rename to java/java-psi-impl/src/com/intellij/openapi/fileTypes/impl/JavaFileTypeFactory.java diff --git a/jps/model-api/jps-model-api.iml b/jps/model-api/jps-model-api.iml index 7e88b0067116..16a8d53b7c5c 100644 --- a/jps/model-api/jps-model-api.iml +++ b/jps/model-api/jps-model-api.iml @@ -9,6 +9,7 @@ + diff --git a/jps/model-impl/jps-model-impl.iml b/jps/model-impl/jps-model-impl.iml index 4a17b3a41db1..906f29f997f1 100644 --- a/jps/model-impl/jps-model-impl.iml +++ b/jps/model-impl/jps-model-impl.iml @@ -11,6 +11,7 @@ + diff --git a/jps/model-api/src/com/intellij/openapi/fileTypes/FileNameMatcher.java b/platform/core-api/src/com/intellij/openapi/fileTypes/FileNameMatcher.java similarity index 100% rename from jps/model-api/src/com/intellij/openapi/fileTypes/FileNameMatcher.java rename to platform/core-api/src/com/intellij/openapi/fileTypes/FileNameMatcher.java diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeConsumer.java b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeConsumer.java similarity index 100% rename from platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeConsumer.java rename to platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeConsumer.java diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java b/platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java similarity index 100% rename from platform/platform-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java rename to platform/core-api/src/com/intellij/openapi/fileTypes/FileTypeFactory.java diff --git a/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java b/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java index 60560a349f95..8e9b8129dbfa 100644 --- a/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java +++ b/platform/core-impl/src/com/intellij/core/CoreApplicationEnvironment.java @@ -16,6 +16,7 @@ package com.intellij.core; import com.intellij.concurrency.*; +import com.intellij.ide.highlighter.ArchiveFileType; import com.intellij.lang.*; import com.intellij.lang.impl.PsiBuilderFactoryImpl; import com.intellij.mock.MockApplication; @@ -33,6 +34,7 @@ import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.extensions.ExtensionsArea; import com.intellij.openapi.fileEditor.FileDocumentManager; import com.intellij.openapi.fileTypes.*; +import com.intellij.openapi.fileTypes.impl.CoreFileTypeFactory; import com.intellij.openapi.progress.*; import com.intellij.openapi.util.Disposer; import com.intellij.openapi.util.StaticGetter; @@ -120,6 +122,9 @@ public class CoreApplicationEnvironment { registerExtensionPoint(Extensions.getRootArea(), BinaryFileStubBuilders.EP_NAME, FileTypeExtensionPoint.class); registerExtensionPoint(Extensions.getRootArea(), FileContextProvider.EP_NAME, FileContextProvider.class); + registerExtensionPoint(Extensions.getRootArea(), FileTypeFactory.FILE_TYPE_FACTORY_EP, FileTypeFactory.class); + addExtension(FileTypeFactory.FILE_TYPE_FACTORY_EP, new CoreFileTypeFactory()); + registerApplicationExtensionPoint(MetaDataContributor.EP_NAME, MetaDataContributor.class); ProgressIndicatorProvider.ourInstance = createProgressIndicatorProvider(); diff --git a/platform/core-impl/src/com/intellij/openapi/fileTypes/impl/CoreFileTypeFactory.java b/platform/core-impl/src/com/intellij/openapi/fileTypes/impl/CoreFileTypeFactory.java new file mode 100644 index 000000000000..5ef79ad9f385 --- /dev/null +++ b/platform/core-impl/src/com/intellij/openapi/fileTypes/impl/CoreFileTypeFactory.java @@ -0,0 +1,31 @@ +/* + * Copyright 2000-2014 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.intellij.openapi.fileTypes.impl; + +import com.intellij.ide.highlighter.ArchiveFileType; +import com.intellij.openapi.fileTypes.FileTypeConsumer; +import com.intellij.openapi.fileTypes.FileTypeFactory; +import com.intellij.openapi.fileTypes.PlainTextFileType; +import com.intellij.openapi.fileTypes.UnknownFileType; +import org.jetbrains.annotations.NotNull; + +public class CoreFileTypeFactory extends FileTypeFactory { + public void createFileTypes(@NotNull final FileTypeConsumer consumer) { + consumer.consume(ArchiveFileType.INSTANCE, "zip;jar;war;ear;swc;ane;egg;apk"); + consumer.consume(PlainTextFileType.INSTANCE, "txt;sh;bat;cmd;policy;log;cgi;MF;jad;jam;htaccess;rb"); + consumer.consume(UnknownFileType.INSTANCE); + } +} diff --git a/platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/PlatformFileTypeFactory.java b/platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/PlatformFileTypeFactory.java index 7f550f989e07..ab7bc54b0979 100644 --- a/platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/PlatformFileTypeFactory.java +++ b/platform/platform-impl/src/com/intellij/openapi/fileTypes/impl/PlatformFileTypeFactory.java @@ -24,9 +24,6 @@ import org.jetbrains.annotations.NotNull; */ public class PlatformFileTypeFactory extends FileTypeFactory { public void createFileTypes(@NotNull final FileTypeConsumer consumer) { - consumer.consume(ArchiveFileType.INSTANCE, "zip;jar;war;ear;swc;ane;egg;apk"); - consumer.consume(PlainTextFileType.INSTANCE, "txt;sh;bat;cmd;policy;log;cgi;MF;jad;jam;htaccess;rb"); consumer.consume(NativeFileType.INSTANCE, "doc;docx;xls;xlsx;ppt;pptx;mdb;vsd;pdf;hlp;chm;odt"); - consumer.consume(UnknownFileType.INSTANCE); } } diff --git a/resources/src/META-INF/IdeaPlugin.xml b/resources/src/META-INF/IdeaPlugin.xml index 5649dc0639ea..de18ee7d7a2e 100644 --- a/resources/src/META-INF/IdeaPlugin.xml +++ b/resources/src/META-INF/IdeaPlugin.xml @@ -294,6 +294,7 @@ +