idea-plugin / arrow.meta.ide.dsl.extensions / ExtensionProviderSyntax
interface ExtensionProviderSyntax
The ExtensionProvider phase sits at the core of the main API in IntelliJ’s Platform for ExtensionPoints.
ExtensionPoints regardless of their nature are means to interact with the ide.
The ExtensionProviderSyntax allows plugin developers to define, compose and manipulate workflow’s in the ide environment explicitly without specifying those changes in the plugin.xml
.
The latter is true for all Jetbrains products, which are based on the IntelliJ Platform API, e.g.: Rider
, MPS
, CLion
, etc.
It’s polymorphic shape facilitates existing and newly created Extensions, for example:
LanguageExtension,
PlatformExtensions,
RefactoringExtensions and many more.
addContainerProvider | registers a ContainerProvider.open fun MetaIde .addContainerProvider(transform: (PsiElement) -> PsiElement?): ExtensionPhase |
addDiagnosticSuppressor | The editor integration for AnalysisSyntax.suppressDiagnostic.open fun MetaIde .addDiagnosticSuppressor(f: (diagnostic: Diagnostic) -> Boolean ): ExtensionPhase |
addDiagnosticSuppressorWithCtx | open fun MetaIde .addDiagnosticSuppressorWithCtx(f: CompilerContext.(diagnostic: Diagnostic) -> Boolean ): ExtensionPhase |
extensionProvider | The extensionProvider function registers a concrete implementation for Extensions with an ExtensionPointName. Or builds higher-level API’s such as IconProviderSyntax.addIcon, which registers a FileIcon to a File and StructureView using IconProvider.EXTENSION_POINT_NAME.open fun <E> MetaIde .extensionProvider(EP_NAME: ExtensionPointName<E>, impl: E, loadingOrder: LoadingOrder = LoadingOrder.ANY): ExtensionPhase The extensionProvider extension registers a concrete implementation for LanguageExtension’s. open fun <E> MetaIde .extensionProvider(LE: LanguageExtension<E>, impl: E, lang: Language = KotlinLanguage.INSTANCE): ExtensionPhase The extensionProvider function registers a concrete implementation for FileTypeExtension’s. open fun <E> MetaIde .extensionProvider(FE: FileTypeExtension<E>, impl: E, fileType: LanguageFileType = KotlinFileType.INSTANCE): ExtensionPhase The extensionProvider extension registers a concrete implementation for ClassExtension’s. open fun <E> MetaIde .extensionProvider(CE: ClassExtension<E>, forClass: Class <*>, impl: E): ExtensionPhase |
registerExtensionPoint | Registers BaseExtensionPointName’sopen fun <E> MetaIde .registerExtensionPoint(EP_NAME: BaseExtensionPointName<E>, aClass: Class <E>, kind: Kind): ExtensionPhase Interestingly enough, ExtensionProvider registers new workflows to the ide. Given an example Provider: open fun <E> MetaIde .registerExtensionPoint(EP_NAME: ExtensionPointName<E>, aClass: Class <E>, kind: Kind): ExtensionPhase |
Do you like Arrow?
✖