@blockly/plugin-cross-tab-copy-paste
Version:
Allows copying blocks between multiple tabs with Blockly editors.
81 lines (55 loc) • 2.06 kB
Markdown
A [Blockly](https://www.npmjs.com/package/blockly) plugin that adds context menu items and keyboard shortcuts to allow users to copy and paste a block between tabs.
```
yarn add @blockly/plugin-cross-tab-copy-paste
```
```
npm install @blockly/plugin-cross-tab-copy-paste --save
```
```js
import * as Blockly from 'blockly';
import {CrossTabCopyPaste} from '@blockly/plugin-cross-tab-copy-paste';
// Inject Blockly.
const workspace = Blockly.inject('blocklyDiv', {
toolbox: toolboxCategories,
});
const options = {
contextMenu: true,
shortcut: true,
};
// Initialize plugin.
const plugin = new CrossTabCopyPaste();
plugin.init(options, () => {
console.log('Use this error callback to handle TypeError while pasting');
});
// optional: Remove the duplication command from Blockly's context menu.
Blockly.ContextMenuRegistry.registry.unregister('blockDuplicate');
// optional: You can change the position of the menu added to the context menu.
Blockly.ContextMenuRegistry.registry.getItem('blockCopyToStorage').weight = 2;
Blockly.ContextMenuRegistry.registry.getItem(
'blockPasteFromStorage',
).weight = 3;
```
- `contextMenu` `{boolean}`: Register copy, cut, and paste commands in the Blockly context menu.
- `shortcut` `{boolean}`: Register cut (ctr + x), copy (ctr + c) and paste (ctr + v) in the keybord shortcut.
## Error Callback
- `typeErrorCallback` `{Function}`: is an extra parameter to the init method, one can pass a callback to the cross-tab-copy-paste plugin that is called when the plugin triggers a TypeError error when pasting.
You can change the displayed words.
```js
Blockly.Msg['CROSS_TAB_COPY'] = 'Copy';
Blockly.Msg['CROSS_TAB_PASTE'] = 'Paste';
```
```js
Blockly.Msg['CROSS_TAB_COPY'] = 'コピー';
Blockly.Msg['CROSS_TAB_PASTE'] = '貼り付け';
```
Apache 2.0