Col-E / Col-E/Recaf

Intermediate API for plugins & hiding implementation detail behind a stable facade

Open
#675 2 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.