Plugin system redesign
- Dominant language
- Vala
- Stars
- 521
- Forks
- 118
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 14
Description
Currently Scratch in it's plugin interface exposes a few methods that "hook" it's widgets which can then be processed by the plugin in order to add additional functionality to e.g: HeaderBar, sidebar or the bottom bar.
While this works with current set of plugins, it will get harder and harder to introduce new ones that further improve the experience. An example of this would be the Outline plugin; for Vala it displays the symbol structure in the current opened document. There is the problem though, what if we want to also have Vala autocompletion? We probably need to create another plugin just for this, but we end up with two Vala compilers processing the same exact document that's opened both for completion and symbol visiting.
As a proposal, Scratch should expose those widgets, but in a different manner. Hooking widgets should be optional, and instead Scratch should expose and implement a set of different interfaces for common code functionalities like e.g: autocompletion, file manager and others. Currently those widgets are provided by the plugins themselves and there is no way to communicate between plugins. "Vala" or "C" should be one plugin that provides all the functionality that belongs to this language.
---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/48693024-plugin-system-redesign?utm_campaign=plugin&utm_content=tracker%2F61917289&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F61917289&utm_medium=issues&utm_source=github).
Contributor guide
Assessment
This issue has not been assessed yet.