Load extension preferences directly in __init__ #1047
Merged
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.
In v5, the way extension developers handle preferences being loaded initially was to subscribe to the
PreferencesEvent
. This PR adds a much better way (so we can remove this event in the future).It's now done in the
Extension.__init__
method. This makes things less confusing for users, without multiple extension init events/methods, and this way the extension will be able to access the preferences as soon as it's created, without delays/waiting.It is sending the whole preferences object as stringified json in an environment variable, then loads it again. It might be inefficient, but the object is small and should be fast to format and parse.
Checklist
./ul test
is passing (the CI server will check this if you don't)