Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introducing
EarlyRuntime
to delegate load logic to plugins themselves.Instead of hard-coded or declarative logic for plugin dependencies and de-duplication, each plugin will decide what it wants to do (if different from default) by implementing an
EarlyRuntime
. An early runtime has full control over how the plugin wants to be loaded. It can also add a deferred plugins which will be added to the end of the plugin list. This is useful if some plugins have logic that needs to be done after all other plugins (in its view)Also, renamed a bunch of stuff in plugins. Mostly getting rid of
Plugin
prefix since there are too many structs/types nowCloses #226
Closes #196
Closes #175
Closes #206
TODO