Plugin interfaces can be found in folder Naracea.Plugins/Plugin/Interfaces of this repo.
Plugin must implement:
- interface IPlugin
- has constructor which takes parameter of type IPluginHost (this and remaining IPluginHost interfaces allow you to control the application)
- be properly marked with MEF attribute [Export]
I strongly suggest to take a look at interfaces comments and sample LoremIpsum generator plugin and use it as a template for plugin development. Naracea is quite async, so definitively take a look on messages which are passed to IPluginHost.Bus, because these usually provide results of other methods of the IPluginHost interface.
There is one special kind of plugins which implements interface IExportPlugin. Plugins implementing this interface are considered being file exporting plugins. See reference implementations of TXT, HTML or RTF exporters for further details.
Please note, that when developing naracea plugin, you should not use classes which are not used in IPluginHost interface or aren’t provided by factory methods. Safe assemblies to be referenced are
Plugin.dll. Using any types from other application’s assemblies means your plugin is making dependency on implementation details which might change.
(Until there is stronger interest in naracea plugin development, this documentation will stay really basic. If you are interested in developing plugin development, please send me an e-mail to jiri-at-naracea.com)