Blocs internes

Les blocs internes sont les blocs associés à vos entrées de valeur et d'instruction. Les générateurs de code de bloc individuels doivent gérer la concaténation de leurs blocs internes afin que le code soit ajouté au bon endroit.

import {javascriptGenerator, Order} from 'blockly/javascript';

javascriptGenerator.forBlock['my_custom_block'] = function(block, generator) {
  // Generate innner block code.
  const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
  const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

  // Concatenate the string.
  const code = `some code ${statement} ${value} some more code`;

  // Return the code.
  return code;
}

Entrées d'instruction

Le code des blocs internes associés aux entrées d'instruction peut être généré à l'aide de statementToCode. Cette opération appelle le générateur de code de bloc du bloc d'instruction et gère le retrait du code.

const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');

Il vous suffit d'appeler statementToCode pour le bloc interne directement connecté à une entrée d'instruction.

Entrées de valeurs

Le code des blocs internes associés aux entrées de valeur peut être généré à l'aide de valueTocode. Cette opération appelle le générateur de code de bloc de valeur et gère l'ajout de parenthèses autour du code des blocs internes si nécessaire.

Consultez la documentation sur les parenthèses pour en savoir plus sur le contrôle des parenthèses.

const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

Concaténer le code

Une fois que vous avez obtenu la chaîne de code de votre bloc interne, vous pouvez la concaténer au bon endroit avec votre chaîne de code.

const code = `some code ${statement} ${value} some more code`;

Code renvoyé

Les différents types de blocs nécessitent différentes manières de renvoyer la chaîne de code. Pour en savoir plus, consultez les pages correspondantes: