Blocos internos

Blocos internos são os blocos anexados às entradas de valor e de instrução. Geradores de código de bloco individuais precisam lidar com a concatenação para que o código seja adicionado no local correto.

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;
}

Entradas de instrução

O código dos blocos internos anexados às entradas de instrução pode ser gerado statementToCode: Isso chama gerador de código de bloco do bloco de instruções e processa código de recuo.

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

Você só precisa chamar statementToCode para o bloco interno conectado diretamente a uma entrada de instrução.

Entradas de valores

O código dos blocos internos anexados às entradas de valor pode ser gerado valueTocode: Isso chama gerador de código de código de bloco do bloco de valor e processa adicionando parênteses em torno dos blocos internos códigos quando necessário.

Consulte a documentação sobre parênteses para mais informações sobre como para controlar os parênteses.

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

Concatenar código

Depois de obter a string de código do seu bloco interno, você pode concatená-la no local correto com sua string de código.

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

Código de retorno

Diferentes tipos de blocos exigem que a string de código seja retornada em diferentes maneiras, portanto, verifique suas páginas individuais para mais informações: