Intermediate API for plugins & hiding implementation detail behind a stable facade
- Dominant language
- Java
- Stars
- 7.4k
- Forks
- 538
- PR merge metrics
- No merged PRs in 30d
Description
Create an intermediary plugin API to allow "quickstarting" plugins. Currently the `plugin` module is just a plugin system, with no direct relations to Recaf's logic. If a user wanted to be able to do something like _"Insert X into context menu for `Classes`"_ there should be an API of sorts to allow such things to handled internally. The user would create their `MenuItem` instance and pass it off to the API and the rest gets handled by us.
This will also drastically reduce the amount of developer error when making plugins our of incorrect assumptions about the internal work. Plus we can create the API as the _"preferred"_ means of interacting with Recaf and then be free to make wild breaking changes to `core` so long as the API stays in-tact.
This may require a LOT of internal restructuring to implement properly, probably involving Dependency injection (JSR-330) or a more in-depth CDI setup.
Contributor guide
Assessment
This issue has not been assessed yet.