Hi,
It is unfortunately expected that some plugins are not compatible with all others. In some cases this may be because two plugins install their own version of a Blockly class. In cases like that you'd have to create your own subclass that implements the pieces you need from both plugins. For the case where the "copy" shortcut is registered in both, that is similar. You would need to implement your own version of the shortcut that has the functionality from both plugins. In cases like these where two plugins implement the same functionality in different ways, there's just not a good way to make that work automatically as plugins don't know what other plugins are installed. But you should be able to resolve that by writing a custom one.
For the first case you mention, where it seems like `backpack` and `shareable-procedures` are incompatible, I don't think that should be possible. The backpack plugin does not deal with block definitions or mutators at all. Is it possible that you also have the `blocks-plus-minus` installed? That plugin is not compatible with the shareable procedures, because they both define their own procedure blocks that don't have the same functionality. One is based on the old style of procedures that are still in core, which do not use backing data models. It adds plus/minus buttons to deal with adding more parameters, instead of the standard mutator UI. Meanwhile the shareable-procedures plugin is a different kind of procedure block that uses backing data models so you can reference procedures whose blocks don't exist on the workspace. There are a couple options for dealing with this conflict:
- Use the plus/minus blocks for list, if, etc. but not for procedures. Unfortunately right now it is not possible to only install certain blocks from the plugin, since it installs them all as soon as you load the plugin. We have an
issue open to fix that if you'd be interested in contributing. Otherwise, you could load this plugin first, then
unregister the conflicting mutator. Then use the shareable-procedures plugin to uninstall the old procedures block definition and just use the standard shareable-procedures blocks.
- Implement shareable-procedures blocks with the plus/minus UI. You would need to create custom procedure blocks in order to do this, and use the ideas in the plus-minus plugin for designing the UI instead of the standard mutator UI. We have a
guide on how to create custom procedure blocks.
I hope that helps!
Maribeth