-
Notifications
You must be signed in to change notification settings - Fork 7
Add Marketplace browsing and installation feature #106
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
WalkthroughAdds a new Marketplace feature: a window action, UI scene and package item component, package fetching/install logic, UI styles, menu entry and shortcut, documentation updates, a reload icon import, minor core scene layout tweak, and some networking/util utilities changes. Changes
Sequence Diagram(s)sequenceDiagram
autonumber
actor User
participant Editor
participant Marketplace as Marketplace Window
participant Net as NetSuite
participant Host as Marketplace Host
User->>Editor: Open Marketplace (menu / shortcut)
Editor->>Marketplace: Instantiate window scene
Marketplace->>Net: GET /packages?version=...
Net-->>Marketplace: packages list / error
alt packages received
Marketplace->>Marketplace: render list
User->>Marketplace: select package
Marketplace->>Net: GET /package/:id
Net-->>Marketplace: package details + images
Marketplace->>Marketplace: populate details, enable Install
User->>Marketplace: Click Install
Marketplace->>Host: download package asset
Host-->>Marketplace: file data
Marketplace->>Editor: write files / apply (theme/extension/mode)
Editor-->>User: notify installed / error
else error
Marketplace-->>User: notify error
end
sequenceDiagram
autonumber
participant MW as Marketplace Window
participant FS as File System
participant Editor as Editor
MW->>MW: determine package category
alt Theme
MW->>FS: write theme files -> themes path
MW->>Editor: reload themes
else Extension
MW->>FS: write extension files -> extensions path
MW->>Editor: refresh extensions
else Mode
MW->>FS: write mode files -> modes path
MW->>Editor: register/refresh modes
end
Editor-->>MW: success / failure
MW-->>User: show notification
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60–90 minutes Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing touches🧪 Generate unit tests
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Type of Change
Description
Closes #104
Adds a marketplace section that allows users to browse modes, extensions, and themes, and download and install them. It uses the text-forge/mp repository as a server. Each package is defined in a central
packages.jsonfile and has a separate folder in thepackages/folder on the server, which contains additional package information, images, and the installation file.Workflow:
heads/mainto other valuesPackage Versioning
This system uses a string to process compatibility, similar to this:
>=1.3.0 <1.6.1 || ?2.0.0It consists of three parts:
1- Minimum version: The lowest supported version, prefixed with <. If it includes =, that version is also compatible; if the editor version is lower, it is incompatible.
2- Maximum version: Optional and can be omitted, the highest supported version, prefixed with >. If it includes =, that version is also compatible; if the editor version is higher, it is incompatible.
3- Unverified version: The first version that is unverified, prefixed with ?. If the editor version is equal to or higher, it is marked as unverified.
Note that the unverified version is checked first. That is, a package labeled
>=1.0.0 <2.0.0 || ?3.0.0is unverified for an editor with version3.0.0or5.2.1and incompatible for an editor with version2.0.0or2.9.0.Testing
Tested with themes and modes, there is currently no extension to test.
Impact
No major changes in performance, adds a new action script and a
Staticclass that do not have a significant impact on performance.Additional Information
A similar system is planned to work on
text-forge.github.io/marketplaceso that users can browse packages outside the editor as well.Checklist
Summary by CodeRabbit
New Features
Improvements
Style
Documentation