How I can add custom generator to blockly in angular project?

261 views
Skip to first unread message

Keino TT

unread,
Nov 4, 2019, 4:18:58 AM11/4/19
to Blockly
Hello. How I can add custom generator to blockly in angular project?  Early I can add  just :
In build.py and run. But what about angular project? I don't have build.py and folder generators. 
   if (self.bundles.generators):
      # self.gen_generator("javascript")
      # self.gen_generator("python")
      # self.gen_generator("php")
      # self.gen_generator("lua")
      # self.gen_generator("dart")
      self.gen_generator("Cp")

Keino TT

unread,
Nov 5, 2019, 12:14:18 AM11/5/19
to Blockly
Help, please

Sam El-Husseini

unread,
Nov 5, 2019, 12:50:46 AM11/5/19
to Blockly
Hey Keino, 

If you're using Angular and acquiring Blockly with npm, you can simply create a new generator like so: 
// Create the generator
var Generator = new (Blockly as any).Generator('XYZ');

// Defined generator methods
Generator['block_type'] = function(block) {
 
var code = '...';
 
return code;
};

// Generate code
var generatedCode = Generator.workspaceToCode(workspace);

If instead, you wanted to use one of the built-in generators and just extend them, you can do:

import BlocklyJS from 'blockly/javascript';

// Define more generator methods
(BlocklyJS as any)['block_type'] = function(block) {
 
var code = '...';
 
return code;
};

// Generate code
var generatedCode = BlocklyJS.workspaceToCode(workspace);

Cheers,
Sam

On Monday, November 4, 2019 at 9:14:18 PM UTC-8, Keino TT wrote:
Help, please
Reply all
Reply to author
Forward
0 new messages