function populateBasicOptions(basicFolder, options, guiState, onChange) {
  setTooltip(
    basicFolder
      .add(options, 'readOnly')
      .onChange((value) => onChange('readOnly', value)),
    'If true, prevent the user from editing. Suppresses the toolbox and' +
      ' trashcan.',
  );
  setTooltip(
    basicFolder
      .add(options, 'hasTrashcan')
      .name('trashCan')
      .onChange((value) => onChange('trashcan', value)),
    'Displays or hides the trashcan.',
  );
  setTooltip(
    basicFolder
      .add(options, 'hasSounds')
      .name('sounds')
      .onChange((value) => onChange('sounds', value)),
    `If false, don't play sounds (e.g. click and delete).`,
  );
  setTooltip(
    basicFolder
      .add(options, 'disable')
      .onChange((value) => onChange('disable', value)),
    'Allows blocks to be disabled. ',
  );
  setTooltip(
    basicFolder
      .add(options, 'collapse')
      .onChange((value) => onChange('collapse', value)),
    'Allows blocks to be collapsed or expanded.',
  );
  setTooltip(
    basicFolder
      .add(options, 'comments')
      .onChange((value) => onChange('comments', value)),
    'Allows blocks to have comments.',
  );

  openFolderIfOptionSelected(basicFolder, guiState, guiState.options, [
    'readOnly',
    'trashcan',
    'sounds',
    'disable',
    'collapse',
    'comments',
  ]);
}
Populate basic options.
@param {dat.GUI} basicFolder The dat.GUI basic folder.
@param {Blockly.Options} options Blockly options.
@param {Object} guiState The GUI state.
@param {function(string, *):void} onChange On Change method.