Blocos internos são os blocos anexados às entradas de valor e de instrução. Os geradores de código de bloco individuais precisam processar a concatenação dos blocos internos para que o código seja adicionado no lugar 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ções
O código de blocos internos anexados às entradas da instrução pode ser gerado usando
statementToCode
. Isso chama o
gerador de código de bloco do bloco de instruções e processa
o código de recuo.
const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
Você só precisa chamar statementToCode
para o bloco interno diretamente conectado
a uma entrada de instrução.
Entradas de valor
O código de blocos internos anexados a entradas de valor pode ser gerado usando
valueTocode
. Isso chama o
gerador de código de bloco de valor e processa
a adição de parênteses ao código dos blocos internos quando necessário.
Consulte a documentação sobre parênteses para mais informações sobre como controlar parênteses.
const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
Concatenar código
Depois de extrair a string de código do bloco interno, você pode concatená-la no lugar correto com a 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 de diferentes maneiras. Portanto, confira as páginas individuais para mais informações: