From 12b91ae49ce5cac17c2ab2ce1c6834bf021c134f Mon Sep 17 00:00:00 2001 From: Christopher Allen Date: Wed, 14 Jun 2023 22:17:38 +0100 Subject: [PATCH] chore(generators): Fix nits (#7166) Addresses various nits that escaped previous PRs: * Add TSDoc for `BlockGenerator` in `core/generator.ts` for PR #7150. * Fix bad formating in `generators/javascript.js` from PR #7153. * Add missing `@enum` tag that should have been included in PR #7160. * Delete obsolete comment from `generators/python.js` for PR #7163. --- core/generator.ts | 9 +++++++++ generators/dart.js | 1 + generators/javascript.js | 9 ++++++--- generators/python.js | 1 - 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/core/generator.ts b/core/generator.ts index 288ca9dae..6c562fa81 100644 --- a/core/generator.ts +++ b/core/generator.ts @@ -19,6 +19,15 @@ import {Names, NameType} from './names.js'; import type {Workspace} from './workspace.js'; import {warn} from './utils/deprecation.js'; +/** + * Type declaration for per-block-type generator functions. + * + * @see {@link https://developers.google.com/blockly/guides/create-custom-blocks/generating-code} + * @param block The Block instance to generate code for. + * @returns A string containing the generated code (for statement blocks), + * or a [code, precedence] tuple (for value/expression blocks), or + * null if no code should be emitted for block. + */ export type BlockGenerator = (block: Block) => [string, number] | string | null; /** diff --git a/generators/dart.js b/generators/dart.js index db778f0bc..f79687940 100644 --- a/generators/dart.js +++ b/generators/dart.js @@ -24,6 +24,7 @@ import {inputTypes} from '../core/inputs/input_types.js'; /** * Order of operation ENUMs. * https://dart.dev/guides/language/language-tour#operators + * @enum {number} */ export const Order = { ATOMIC: 0, // 0 "" ... diff --git a/generators/javascript.js b/generators/javascript.js index 63afee0e0..f1afb7d30 100644 --- a/generators/javascript.js +++ b/generators/javascript.js @@ -164,7 +164,8 @@ export class JavascriptGenerator extends CodeGenerator { // Add user variables, but only ones that are being used. const variables = Variables.allUsedVarModels(workspace); for (let i = 0; i < variables.length; i++) { - defvars.push(this.nameDB_.getName(variables[i].getId(), NameType.VARIABLE)); + defvars.push( + this.nameDB_.getName(variables[i].getId(), NameType.VARIABLE)); } // Declare all of the variables. @@ -236,7 +237,8 @@ export class JavascriptGenerator extends CodeGenerator { * Calls any statements following this block. * @param {!Block} block The current block. * @param {string} code The JavaScript code created for this block. - * @param {boolean=} opt_thisOnly True to generate code for only this statement. + * @param {boolean=} opt_thisOnly True to generate code for only this + * statement. * @return {string} JavaScript code with comments and subsequent blocks added. * @protected */ @@ -264,7 +266,8 @@ export class JavascriptGenerator extends CodeGenerator { } } } - const nextBlock = block.nextConnection && block.nextConnection.targetBlock(); + const nextBlock = + block.nextConnection && block.nextConnection.targetBlock(); const nextCode = opt_thisOnly ? '' : this.blockToCode(nextBlock); return commentCode + code + nextCode; } diff --git a/generators/python.js b/generators/python.js index e802bdb86..6c1e7d7b1 100644 --- a/generators/python.js +++ b/generators/python.js @@ -231,7 +231,6 @@ export class PythonGenerator extends CodeGenerator { * @protected */ quote_(string) { - // Can't use goog.string.quote since % must also be escaped. string = string.replace(/\\/g, '\\\\').replace(/\n/g, '\\\n'); // Follow the CPython behaviour of repr() for a non-byte string.