Valores

Blocos de valor são blocos com conexões de saída. Elas agem como valores (ou expressões) em uma linguagem baseada em texto.

Assim como todos os blocos no Blockly, os blocos de valor podem ser transformados em strings de código definindo um gerador de código de bloco.

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

javascriptGenerator.forBlock['custom_block'] = function(block, generator) {
  // Collect argument strings.
  const fieldValue = block.getFieldValue('MY_FIELD');
  const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

  // Return code.
  return ['my code string', Order.NONE];
}

Coletar strings de argumentos

Todos os geradores de código de bloco exigem a coleta dos valores dos campos e a coleta do código de blocos internos.

// Collect field values.
const fieldValue = block.getFieldValue('MY_FIELD');

// Collect inner block code strings.
const innerCode = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);

Se você referencia o código de um bloco interno várias vezes, adicione armazenamento em cache de argumentos ao bloco.

Código de retorno

O tipo de retorno de um gerador de código de bloco de valor é uma matriz em que o primeiro valor é uma string de código e o segundo valor é uma precedência.

return ['my code string', Order.NONE];

A precedência controla quando parênteses são adicionados em torno de strings de código de bloco. Consulte a documentação sobre parênteses para mais informações sobre como controlar quando os parênteses são adicionados.