diff --git a/platform/lang-api/src/com/intellij/psi/impl/ElementBase.java b/platform/lang-api/src/com/intellij/psi/impl/ElementBase.java index d3676670a0ca..0a6439579472 100644 --- a/platform/lang-api/src/com/intellij/psi/impl/ElementBase.java +++ b/platform/lang-api/src/com/intellij/psi/impl/ElementBase.java @@ -19,7 +19,7 @@ package com.intellij.psi.impl; import com.intellij.navigation.ItemPresentation; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileTypes.FileType; -import com.intellij.openapi.fileTypes.NativeFileType; +import com.intellij.openapi.fileTypes.INativeFileType; import com.intellij.openapi.fileTypes.UnknownFileType; import com.intellij.openapi.progress.ProcessCanceledException; import com.intellij.openapi.project.IndexNotReadyException; @@ -136,7 +136,7 @@ public abstract class ElementBase extends UserDataHolderBase implements Iconable } public static boolean isNativeFileType(FileType fileType) { - return fileType instanceof NativeFileType || fileType instanceof UnknownFileType; + return fileType instanceof INativeFileType || fileType instanceof UnknownFileType; } protected Icon getAdjustedBaseIcon(Icon icon, int flags) { diff --git a/platform/lang-impl/src/com/intellij/codeInsight/navigation/NavigationUtil.java b/platform/lang-impl/src/com/intellij/codeInsight/navigation/NavigationUtil.java index 4cf18f7cfb13..fff8e27635a3 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/navigation/NavigationUtil.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/navigation/NavigationUtil.java @@ -23,7 +23,6 @@ import com.intellij.navigation.NavigationItem; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.fileEditor.FileEditor; import com.intellij.openapi.fileEditor.FileEditorManager; -import com.intellij.openapi.fileEditor.OpenFileHelper; import com.intellij.openapi.fileEditor.TextEditor; import com.intellij.openapi.fileEditor.impl.EditorHistoryManager; import com.intellij.openapi.ui.popup.JBPopup; @@ -33,6 +32,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.pom.Navigatable; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; +import com.intellij.psi.impl.ElementBase; import com.intellij.psi.search.PsiElementProcessor; import com.intellij.ui.components.JBList; import org.jetbrains.annotations.NotNull; @@ -93,7 +93,9 @@ public final class NavigationUtil { boolean openAsNative = false; if (elt instanceof PsiFile) { VirtualFile virtualFile = ((PsiFile)elt).getVirtualFile(); - openAsNative = OpenFileHelper.openAsNative(virtualFile); + if (virtualFile != null) { + openAsNative = ElementBase.isNativeFileType(virtualFile.getFileType()); + } } if (openAsNative || !activatePsiElementIfOpen(elt)) { ((NavigationItem)elt).navigate(true); diff --git a/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java b/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java index 4772cf5cfccf..bd0627b22552 100644 --- a/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java +++ b/platform/lang-impl/src/com/intellij/openapi/fileTypes/impl/NativeFileIconProvider.java @@ -17,9 +17,6 @@ package com.intellij.openapi.fileTypes.impl; import com.intellij.ide.FileIconProvider; -import com.intellij.openapi.fileEditor.OpenFileHelper; -import com.intellij.openapi.fileTypes.NativeFileType; -import com.intellij.openapi.fileTypes.UnknownFileType; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.vfs.VirtualFile; @@ -93,7 +90,7 @@ public class NativeFileIconProvider implements FileIconProvider { } protected boolean isNativeFileType(VirtualFile file) { - return OpenFileHelper.openAsNative(file) || ElementBase.isNativeFileType(file.getFileType()); + return ElementBase.isNativeFileType(file.getFileType()); } private static class Ext extends ComparableObject.Impl { diff --git a/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java b/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java index cd183e8b078d..24c8ad2fb104 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java +++ b/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileDescriptor.java @@ -22,6 +22,7 @@ import com.intellij.openapi.actionSystem.DataKey; import com.intellij.openapi.editor.*; import com.intellij.openapi.fileTypes.FileType; import com.intellij.openapi.fileTypes.FileTypeManager; +import com.intellij.openapi.fileTypes.INativeFileType; import com.intellij.openapi.fileTypes.NativeFileType; import com.intellij.openapi.project.Project; import com.intellij.openapi.vfs.VirtualFile; @@ -119,12 +120,7 @@ public class OpenFileDescriptor implements Navigatable { FileType type = FileTypeManager.getInstance().getKnownFileTypeOrAssociate(myFile); if (type == null || !myFile.isValid()) return false; - boolean openAsNative = OpenFileHelper.openAsNative(myFile); - - if (!openAsNative) { - openAsNative = type instanceof NativeFileType; - } - if (openAsNative) { + if (type instanceof INativeFileType) { return NativeFileType.openAssociatedApplication(myFile); } diff --git a/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileHelper.java b/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileHelper.java deleted file mode 100644 index af673d55da24..000000000000 --- a/platform/platform-api/src/com/intellij/openapi/fileEditor/OpenFileHelper.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.intellij.openapi.fileEditor; - -import com.intellij.openapi.extensions.ExtensionPointName; -import com.intellij.openapi.extensions.Extensions; -import com.intellij.openapi.vfs.VirtualFile; - -public abstract class OpenFileHelper { - - public static boolean openAsNative(VirtualFile virtualFile) { - boolean openAsNative = false; - for (OpenFileHelper h : Extensions.getExtensions(EP_NAME)) { - if (h.canHelp(virtualFile)) { - openAsNative = h.doOpenAsNative(virtualFile); - break; - } - } - return openAsNative; - } - - public static ExtensionPointName EP_NAME = ExtensionPointName.create("com.intellij.openFileDescriptorHelper"); - - public abstract boolean canHelp(VirtualFile file); - - public abstract boolean doOpenAsNative(VirtualFile file); -} diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/INativeFileType.java b/platform/platform-api/src/com/intellij/openapi/fileTypes/INativeFileType.java new file mode 100644 index 000000000000..842b009da270 --- /dev/null +++ b/platform/platform-api/src/com/intellij/openapi/fileTypes/INativeFileType.java @@ -0,0 +1,4 @@ +package com.intellij.openapi.fileTypes; + +public interface INativeFileType extends FileType { +} diff --git a/platform/platform-api/src/com/intellij/openapi/fileTypes/NativeFileType.java b/platform/platform-api/src/com/intellij/openapi/fileTypes/NativeFileType.java index 63054d33e92a..57a2c754d9f9 100644 --- a/platform/platform-api/src/com/intellij/openapi/fileTypes/NativeFileType.java +++ b/platform/platform-api/src/com/intellij/openapi/fileTypes/NativeFileType.java @@ -29,7 +29,7 @@ import java.util.List; /** * @author yole */ -public class NativeFileType implements FileType { +public class NativeFileType implements INativeFileType { private static final Icon ICON = IconLoader.getIcon("/fileTypes/custom.png"); private NativeFileType() { } diff --git a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml index df18eb604e2d..84a0e91e4ab8 100644 --- a/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml +++ b/platform/platform-resources/src/META-INF/PlatformExtensionPoints.xml @@ -113,5 +113,4 @@ -