mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
to make programmatic registration easier, use explicit ExtensionPointName instance in extension points that use KeyedExtensionFactory
This commit is contained in:
@@ -20,12 +20,14 @@
|
||||
package com.intellij.openapi.fileTypes;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.KeyedFactoryEPBean;
|
||||
import com.intellij.openapi.util.KeyedExtensionFactory;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class FileTypeExtensionFactory<T> extends KeyedExtensionFactory<T, FileType> {
|
||||
public FileTypeExtensionFactory(@NotNull final Class<T> interfaceClass, @NonNls @NotNull final String epName) {
|
||||
public FileTypeExtensionFactory(@NotNull final Class<T> interfaceClass, @NonNls @NotNull final ExtensionPointName<KeyedFactoryEPBean> epName) {
|
||||
super(interfaceClass, epName, ApplicationManager.getApplication().getPicoContainer());
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ package com.intellij.openapi.fileTypes;
|
||||
|
||||
import com.intellij.lexer.Lexer;
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.KeyedFactoryEPBean;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
@@ -27,13 +29,15 @@ import org.jetbrains.annotations.NotNull;
|
||||
* @see SyntaxHighlighterFactory#getSyntaxHighlighter(com.intellij.lang.Language, com.intellij.openapi.project.Project, com.intellij.openapi.vfs.VirtualFile)
|
||||
*/
|
||||
public interface SyntaxHighlighter {
|
||||
ExtensionPointName<KeyedFactoryEPBean> EP_NAME = ExtensionPointName.create("com.intellij.syntaxHighlighter");
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
* @see SyntaxHighlighterFactory#getSyntaxHighlighter(com.intellij.openapi.project.Project, com.intellij.openapi.vfs.VirtualFile)
|
||||
* @see SyntaxHighlighterFactory#getSyntaxHighlighter(com.intellij.lang.Language, com.intellij.openapi.project.Project, com.intellij.openapi.vfs.VirtualFile)
|
||||
*/
|
||||
SyntaxHighlighterProvider PROVIDER =
|
||||
new FileTypeExtensionFactory<SyntaxHighlighterProvider>(SyntaxHighlighterProvider.class, "com.intellij.syntaxHighlighter").get();
|
||||
new FileTypeExtensionFactory<SyntaxHighlighterProvider>(SyntaxHighlighterProvider.class, EP_NAME).get();
|
||||
|
||||
/**
|
||||
* Returns the lexer used for highlighting the file. The lexer is invoked incrementally when the file is changed, so it must be
|
||||
|
||||
@@ -34,9 +34,10 @@ public abstract class KeyedExtensionFactory<T, KeyT> {
|
||||
private final ExtensionPointName<KeyedFactoryEPBean> myEpName;
|
||||
private final PicoContainer myPicoContainer;
|
||||
|
||||
public KeyedExtensionFactory(@NotNull final Class<T> interfaceClass, @NonNls @NotNull final String epName, @NotNull PicoContainer picoContainer) {
|
||||
public KeyedExtensionFactory(@NotNull final Class<T> interfaceClass, @NonNls @NotNull final ExtensionPointName<KeyedFactoryEPBean> epName,
|
||||
@NotNull PicoContainer picoContainer) {
|
||||
myInterfaceClass = interfaceClass;
|
||||
myEpName = new ExtensionPointName<KeyedFactoryEPBean>(epName);
|
||||
myEpName = epName;
|
||||
myPicoContainer = picoContainer;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@
|
||||
package com.intellij.openapi.roots.ui;
|
||||
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.KeyedFactoryEPBean;
|
||||
import com.intellij.openapi.projectRoots.Sdk;
|
||||
import com.intellij.openapi.projectRoots.ui.SdkPathEditor;
|
||||
import com.intellij.openapi.roots.OrderRootType;
|
||||
@@ -30,7 +32,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
import javax.swing.*;
|
||||
|
||||
public interface OrderRootTypeUIFactory {
|
||||
KeyedExtensionFactory<OrderRootTypeUIFactory, OrderRootType> FACTORY = new KeyedExtensionFactory<OrderRootTypeUIFactory, OrderRootType>(OrderRootTypeUIFactory.class, "com.intellij.OrderRootTypeUI",
|
||||
ExtensionPointName<KeyedFactoryEPBean> EP_NAME = ExtensionPointName.create("com.intellij.OrderRootTypeUI");
|
||||
KeyedExtensionFactory<OrderRootTypeUIFactory, OrderRootType> FACTORY = new KeyedExtensionFactory<OrderRootTypeUIFactory, OrderRootType>(OrderRootTypeUIFactory.class, EP_NAME,
|
||||
ApplicationManager
|
||||
.getApplication().getPicoContainer()) {
|
||||
@Override
|
||||
|
||||
@@ -15,6 +15,8 @@
|
||||
*/
|
||||
package com.intellij.ide.structureView;
|
||||
|
||||
import com.intellij.openapi.extensions.ExtensionPointName;
|
||||
import com.intellij.openapi.extensions.KeyedFactoryEPBean;
|
||||
import com.intellij.openapi.fileEditor.FileEditor;
|
||||
import com.intellij.openapi.fileTypes.FileTypeExtensionFactory;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -32,8 +34,10 @@ import org.jetbrains.annotations.NotNull;
|
||||
*/
|
||||
|
||||
public interface StructureViewBuilder {
|
||||
ExtensionPointName<KeyedFactoryEPBean> EP_NAME = ExtensionPointName.create("com.intellij.structureViewBuilder");
|
||||
|
||||
StructureViewBuilderProvider PROVIDER =
|
||||
new FileTypeExtensionFactory<StructureViewBuilderProvider>(StructureViewBuilderProvider.class, "com.intellij.structureViewBuilder").get();
|
||||
new FileTypeExtensionFactory<StructureViewBuilderProvider>(StructureViewBuilderProvider.class, EP_NAME).get();
|
||||
|
||||
/**
|
||||
* Returns the structure view implementation for the file displayed in the specified
|
||||
|
||||
Reference in New Issue
Block a user