Bloki wewnętrzne

Bloki wewnętrzne to bloki dołączone do danych wejściowych wartości i instrukcji. Poszczególne generatory kodów blokowych muszą obsługiwać konkatenację ich wewnętrznych bloków, aby kod został dodany we właściwym miejscu.

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

Dane wejściowe instrukcji

Kod bloków wewnętrznych dołączonych do danych wejściowych instrukcji można wygenerować za pomocą statementToCode. Wywołuje to generator kodu blokowego bloku instrukcji i obsługuje kod wcięcia.

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

Musisz tylko wywołać blok statementToCode w przypadku bloku wewnętrznego połączonego bezpośrednio z danymi wejściowymi instrukcji.

Dane wejściowe wartości

Kod bloków wewnętrznych dołączonych do danych wejściowych z wartościami można wygenerować za pomocą funkcji valueTocode. Wywołuje to generator kodu bloku kodu bloku wartości i w razie potrzeby obsługuje dodawanie nawiasów wokół kodu bloków wewnętrznych.

Więcej informacji o kontrolowaniu nawiasów znajdziesz w dokumentacji nawiasów.

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

Połącz kod

Po otrzymaniu ciągu kodu wewnętrznego bloku możesz go połączyć we właściwym miejscu z ciągiem kodu.

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

Kod zwrotu

Różne rodzaje bloków wymagają zwracania ciągu kodu w różny sposób. Więcej informacji znajdziesz na poszczególnych stronach: