内部ブロックは、値とステートメントの入力に接続されるブロックです。個々のブロックコード生成ツールは、コードが正しい場所に追加されるように、内部ブロックの連結を処理する必要があります。
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;
}
ステートメントの入力
ステートメント入力に接続されている内部ブロックのコードは、statementToCode
を使用して生成できます。これは、ステートメント ブロックのブロックコード ジェネレータを呼び出し、コードのインデントを処理します。
const statement = generator.statementToCode(block, 'MY_STATEMENT_INPUT');
ステートメント入力に直接接続されている内部ブロックに対してのみ、statementToCode
を呼び出す必要があります。
値の入力
値入力に接続されている内部ブロックのコードは、valueTocode
を使用して生成できます。このメソッドは値ブロックのブロックコード コード ジェネレータを呼び出し、必要に応じて内部ブロックのコードの前後にかっこを追加します。
かっこを制御する方法について詳しくは、かっこに関するドキュメントをご覧ください。
const value = generator.valueToCode(block, 'MY_VALUE_INPUT', Order.ATOMIC);
コードを連結する
内部ブロックのコード文字列を取得したら、それをコード文字列と正しい場所に連結できます。
const code = `some code ${statement} ${value} some more code`;
戻りコード
ブロックの種類に応じて、コード文字列を返す方法も異なります。詳しくは、それぞれのページをご覧ください。