インナーブロック

内部ブロックは、値とステートメント入力に付加されるブロックです。 個々のブロックコード ジェネレータは、内部トークンの連結を処理する必要があります。 コードが正しい場所に追加されます。

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。これにより、 value ブロックのブロックコード コード ジェネレータを使用して、 ブロックの内側にかっこを追加する」できます。

詳しくは、かっこのドキュメントをご覧ください。 使用できます。

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

コードを連結する

内側ブロックのコード文字列を取得したら、 正しい場所にコードを文字列で入れます。

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

戻りコード

ブロックの種類が異なれば、コード文字列を異なる形式で返す必要があります。 詳しくは、以下の各ページをご覧ください。