[Gambas-user] I added "External Tools" to my gambas :)
g4mba5 at gmail.com
Thu Jan 27 22:57:16 CET 2022
Le 27/01/2022 à 06:34, Bruce Steers a écrit :
> Right,, now i think it is more worthy your examination.
> i still have to give it a thorough debugging but the structure is now
> What i could do with knowing (probably changing) is how i have
> integrated it to the IDE. I should imagine your understanding of it all
> has a much better way to properly integrate it.
> But i'm border-line offering it for a merge request soon :)
> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
I'm not against the principle, but the implementation.
I have already thought about that in the past, and I would prefer having
IDE plugins written in Gambas, not in bash.
The plugins could be external Gambas executables / scripts, or Gambas
libraries that would run in-process.
The former would work through an API, i.e. a class exported by the IDE.
It is more "dangerous" for the IDE, but it would work faster, and would
give plugins more power, that power being limited by the exported API.
Now there are different kind of plugins :
- Project-wide plugins: they modify the entire project, or some files of
the project. For example, optimizing all the PNG files of a project,
cleaning the project...
- Plugins that work with a specific file (source code file, form file,
text file, image file...). Plugin that run on a text file or a source
code file may act only on the current selection ; plugin that run on an
image may act only on the current selection...
- Plugins that run something else, using the project as a read-only
souce. For example, counting the number of lines of code.
A plugin library may have a specific form that would be used for
configuring the plugin. That form may be embedded in a global IDE dialog
with the configuration forms of all other plugins.
Project-wide plugins will be associated with an action, a icon, and a
menu entry that will be inserted in the global toolbar and inside a
specific global menu.
Editor-wide plugins will be associated with an action and a icon that
would be inserted in the editor toolbar, and a menu entry that will be
inserted in the editor specific popup-menu.
Some text file inside the plugin archive will describe the plugin
contents for the IDE.
Note that at the moment Gambas does not know how to unload a library. So
disabling a plugin would release the memory only on next launch.
These plugins libraries will be installed in specific directories like
'/usr/share/gambas3/ide-plugins' or '~/.local/share/gambas3/ide-plugins'.
What do you think?
More information about the User