idea-plugin / arrow.meta.ide.dsl.extensions / ExtensionProviderSyntax

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.

Functions

addContainerProvider registers a ContainerProvider.open fun IdeMetaPlugin.addContainerProvider(transform: (PsiElement) -> PsiElement?): ExtensionPhase
addDiagnosticSuppressor The editor integration for AnalysisSyntax.suppressDiagnostic.open fun IdeMetaPlugin.addDiagnosticSuppressor(f: (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> IdeMetaPlugin.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> IdeMetaPlugin.extensionProvider(LE: LanguageExtension<E>, impl: E, lang: Language = KotlinLanguage.INSTANCE): ExtensionPhase
The extensionProvider function registers a concrete implementation for FileTypeExtension’s.open fun <E> IdeMetaPlugin.extensionProvider(FE: FileTypeExtension<E>, impl: E, fileType: LanguageFileType = KotlinFileType.INSTANCE): ExtensionPhase
The extensionProvider extension registers a concrete implementation for ClassExtension’s.open fun <E> IdeMetaPlugin.extensionProvider(CE: ClassExtension<E>, forClass: Class<*>, impl: E): ExtensionPhase
registerExtensionPoint Registers BaseExtensionPointName’sopen fun <E> IdeMetaPlugin.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> IdeMetaPlugin.registerExtensionPoint(EP_NAME: ExtensionPointName<E>, aClass: Class<E>, kind: Kind): ExtensionPhase

Inheritors

IdeSyntax interface IdeSyntax : IconProviderSyntax, SyntaxHighlighterSyntax, InspectionSyntax, AnActionSyntax, ColorSettingsSyntax, HintingSyntax, LanguageSyntax, LineMarkerSyntax, LiveTemplateSyntax, NavigationSyntax, SearchSyntax, StructureViewSyntax, UsageSyntax, ExtensionProviderSyntax, DocumentationSyntax, KotlinExtensionSyntax, DialogSyntax, PopupSyntax, NotificationSyntax, ToolWindowSyntax, GotoRelatedSyntax, AnnotatorSyntax, ParserSyntax, ApplicationSyntax

Do you like Arrow?

Arrow Org
<