-
Notifications
You must be signed in to change notification settings - Fork 4
Plugins
These are more like 'modules' of the application. They are projects referenced by the main project and are loaded before dynamic plugins.
These are plugins that are completely dynamically loaded. This system is still WIP, but they can do everything a core plugin can do.
Assembly loading doesn't use an AssemblyLoadContext, so there's versioning issues to deal with
So far, plugins are able to do some simply things, such as:
- Custom configuration pages and files (using built in persistent storage system)
- Custom data parameters and property editor slots (aka rows)
- Custom commands
- Custom console types
- Custom dialogs and windows
- Adding context menu entries to UIs
... And a few others. There's still lots that cannot be done yet. A few of the main things are:
- Custom panels in the UI
This is the order of API methods that are called into a plugin:
-
OnCreated: Invoked just after the constructor is invoked and the properties (Descriptor, PluginLoader and folder) are set. -
RegisterCommands: Register your commands here. -
RegisterServices: Register your services here -
RegisterConfigurations: Register your persistent configs -
GetXamlResources: Add the path of your .axaml files (relative to your plugin project) that should be loaded and added to the application'sMergedDictionarieslist -
OnApplicationLoaded: Invoked once all application states are ready. No editor window will be open at this point. -
OnApplicationExiting: Invoked once the application is about to exit. This is called before persistent configs are saved, so here is where you can synchronize them with the application if you're not already doing it dynamically
Remarks on OnApplicationLoaded: This is where you can register application event handlers, your UI controls, custom clips, custom resources, exporters, context menu entries, property editor slot controls, and lots more.
This method is async so there is no rush to do things quickly here.
-
Home
- Connect to a console
- Scanning Options
- Scan results & Saved Address Table
- Remote Commands
- Memory Dump
- Tools
- Preferences/App Settings
-
API
- Making a custom connection
- Busy Tokens
- Models, ViewStates, MVP & Binding
- Plugins
- Config Pages
- Brushes and Icons
- Data Manager, Context Data and Data Keys
- Commands and Shortcuts
- Context Menus
- Windows and Dialogs