refactor: examples to split modules#290
Open
northword wants to merge 5 commits into
Open
Conversation
Owner
|
The zotero7 branch is achieved and before the zotero 8 official release i think we'll have some time for the refactor. Generally looks good to me |
bf5c9eb to
81ab357
Compare
clean hooks tweaks fix addon not defined
sort import fix tsc error clean locale code clean locale code fix ftl path error
81ab357 to
e58a74e
Compare
Collaborator
Author
|
API for registering the menu has been replaced with the official one. I feel that clearing all the examples in this template and keeping the template blank, with all sample code stored in the form of documentation or skills, would be better, but it's a bit hard to change now (laziness hhh) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Background
The current template provides
example.ts, which mainly uses a class + static methods structure to organize example logic.While this approach looks straightforward in the demo stage, it reveals several issues during real development or user customization.
User habits
Redundant code is hard to clean up
classare all statically attached. Even if unused, they are difficult for tree-shaking to remove.Poor modular maintainability
Classes provide no real benefit here
static, so no state can be stored via instantiation. In essence, they behave the same as exported functions.Plan
example.tsinto a functions + module-scope variables model.register/unregistermethods inhooks.ts.unregisteronly for the few modules that need state (e.g., notifier, stylesheet). Other modules will expose onlyregister.Expected outcomes:
@exampledecorator can no longer be used).Others
I'm not sure if this modification is reasonable; it needs to be discussed.