init(
    {contextMenu = true, shortcut = true} = {
      contextMenu: true,
      shortcut: true,
    },
    typeErrorCallback,
  ) {
    if (contextMenu) {
      // Register the menus
      this.blockCopyToStorageContextMenu();
      this.blockPasteFromStorageContextMenu(typeErrorCallback);
    }

    if (shortcut) {
      // Unregister the default KeyboardShortcuts
      Blockly.ShortcutRegistry.registry.unregister(
        Blockly.ShortcutItems.names.COPY,
      );
      Blockly.ShortcutRegistry.registry.unregister(
        Blockly.ShortcutItems.names.CUT,
      );
      Blockly.ShortcutRegistry.registry.unregister(
        Blockly.ShortcutItems.names.PASTE,
      );
      // Register the KeyboardShortcuts
      this.blockCopyToStorageShortcut();
      this.blockCutToStorageShortcut();
      this.blockPasteFromStorageShortcut(typeErrorCallback);
    }
  }
Initializes the cross tab copy paste plugin. If no options are selected
then both context menu items and keyboard shortcuts are added.
@param {{contextMenu: boolean, shortcut: boolean}} options
`contextMenu` Register copy and paste in the context menu.
`shortcut` Register cut (ctr + x), copy (ctr + c) and paste (ctr + v)
in the shortcut.
@param {Function=} typeErrorCallback
callback function to handle type errors