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
Extensions (aka plugins, addons, packages) #1403
Comments
Extensions are one of my favorite features for Paint.net. In particular, I've used extensions to add entire new tools such as radial text tools that are accessible via an effects menu bar. However, would allowing extensions to modify stock tools be a possibility? One example use case for this is an extension that modifies how selecting a region of pixels and resizing it is handled. This extension may do something like prevent the outermost/surrounding pixels in the region from duplicating when stretched wide, while interior pixels resize and stretch like normally. |
@hawkins Initially extensions should be basic stuff (themes, fonts, shortcuts, languages, import/export plugins). More complex stuff could be added in the future after some iterations but I don't promise it. Generally extensions = more maintenance = code complexity = more bugs (and third party bugs). So we have to go step by step. |
At the moment only themes are supported and some functionality is not available yet (disabling an extension, uninstalling it, etc.)
- Added libarchive to uncompress .zip extensions - Moved ListItem painting code to styles because we needed a selected+disabled state.
I use Aseprite mostly for measuring things (eg. getting coordinates/sizes from a spritesheet), and have some ideas in mind for extensions for my specific use. Is some kind of scriptable API available yet, or is one planned? |
@codecat there is no API to get information from the sprite yet, but something in the future will be available (you can follow this project: https://github.com/aseprite/api ) |
Good to hear, thank you! |
It would be nice to have a way to keep up easier development and debugging of extensions. Maybe, by keeping them unzipped in some accessible directory or (which is more convenient) having a CLI keys to manage them separately (and put some lines into Makefile, why not?). |
It still need some work to associate the command to menus easily. Related issues: #1403 #1949 aseprite/api#20 https://community.aseprite.org/t/lua-script-extension-and-menu-api/5085
It still need some work to associate the command to menus easily. Related issues: aseprite#1403 aseprite#1949 aseprite/api#20 https://community.aseprite.org/t/lua-script-extension-and-menu-api/5085
Added a new Events object with :on() and :off() methods to start or stop listening to a specific event respectively. This also allows to add several callbacks for the same event. Replaced the temporal Site.onChange & Sprite.onChange implementations. Related to several issues (enable more possibilities for): #138, #1403, #1949, #2965, #2980
We should be able to create "extensions." An extension should be a zip-like file with some metadata giving details about what it includes, author, URLs, etc. Extensions should be easy to be added/removed. Possible things that an extension could include:
We are using libarchive to uncompress .zip extensions and json11 to parse
package.json
file.The text was updated successfully, but these errors were encountered: