בלוקים פנימיים

בלוקים פנימיים הם הבלוקים שמצורפים לערך ולקלט של ההצהרה. מחוללי קוד בלוקים נפרדים צריכים לטפל בשרשור של הבלוקים הפנימיים שלהם כדי שהקוד יתווסף במקום הנכון.

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

קוד החזרה

סוגים שונים של בלוקים מחייבים החזרה של מחרוזת הקוד בדרכים שונות, ולכן מומלץ לעיין בדפים הנפרדים של הבלוקים כדי לקבל מידע נוסף: