addAction = (name, callback, folderName, tooltip) => {
    actions[name] = () => {
      callback(workspace);
    };
    let folder = actionsFolder;
    if (folderName) {
      if (actionSubFolders[folderName]) {
        folder = actionSubFolders[folderName];
      } else {
        folder = actionsFolder.addFolder(folderName);
        folder.open();
        actionSubFolders[folderName] = folder;
      }
    }
    const controller = folder.add(actions, name);
    tooltip && setTooltip(controller, tooltip);
    name && controller.name(name);
    return controller;
  }
Add a custom action to the list of playground actions.
@param {string} name The action label.
@param {function(!Blockly.Workspace):void} callback The callback to call
    when the action is clicked.
@param {string=} folderName Optional folder to place the action under.
@param {string=} tooltip Optional tooltip to set.
@returns {dat.GUIController} The GUI controller.