[plugin.xml] Purpose of Extensions
I've read the official documentation and whatever I could find, but still cannot define what exactly <extensions> does in plugin.xml?
I understood that these rules apply:
- If you want to extend the functionality of other plugins or the IDE you have to declare one or several extensions.
- If you want your plugin to allow other plugins to extend its functionality, then you must declare one or several extension points.
*Based on blog post by Marcos Holgado: https://proandroiddev.com/write-an-android-studio-plugin-part-3-settings-662a535c6962
I'm writing a bachelors thesis on theme "How to develop Android Studio Plugin" so any help would be appreciated!
I've checked some of the open source projects such as "Console Beep" and found they have this in their extensions:
<projectService serviceImplementation="net.ishchenko.consolebeep.BeeperProjectComponent"/>
<consoleFilterProvider implementation="net.ishchenko.consolebeep.BeeperProjectComponent$BeepFilterProvider"/>
<projectConfigurable instance="net.ishchenko.consolebeep.BeepSettingsConfigurable"/>
Could someone explain to me what would [projectService serviceImplementation, consoleFilterProvider implementation and projectConfigurable instance] do for that specific plugin? Why he had to include those in the extensions and what do they allow him to do?
I've tried to research the each specific service implementation but couldn't find much on it, not even in the official documentation.
Link to the open source plugin "Console Beep":
https://github.com/ishchenko/idea-console-beep
Thanks in advance guys, any help is appreciated really.
Please sign in to leave a comment.
Here's official doc showing use of extensions https://jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_extension_points.html#sample
See also https://jetbrains.org/intellij/sdk/docs/basics/plugin_structure/plugin_extension_points.html on how to declare your own extension points.
As I've mentioned, I have already read the official documentation, but thanks for help regardless.