mirror of
https://github.com/damp11113-software/ccIDE.git
synced 2025-04-27 22:48:13 +00:00
add new Settings block for env settings and merge IDE block to system for default
96 lines
2.9 KiB
JavaScript
96 lines
2.9 KiB
JavaScript
const { luaGenerator } = require('blockly/lua');
|
|
|
|
// Check if luaGenerator.forBlock is defined and initialize if necessary
|
|
if (!luaGenerator.forBlock) {
|
|
luaGenerator.forBlock = {};
|
|
}
|
|
|
|
function exportWithEquals(obj) {
|
|
let result = [];
|
|
for (let key in obj) {
|
|
if (obj.hasOwnProperty(key)) {
|
|
result.push(`${key}=${obj[key]}`);
|
|
}
|
|
}
|
|
return `{${result.join(',')}}`;
|
|
}
|
|
|
|
luaGenerator.forBlock['settings_define'] = function(block, generator) {
|
|
var name = generator.valueToCode(block, 'NAME', generator.ORDER_NONE);
|
|
var desc = generator.valueToCode(block, 'DESC', generator.ORDER_NONE);
|
|
var def = generator.valueToCode(block, 'DEF', generator.ORDER_NONE);
|
|
var type = generator.valueToCode(block, 'TYPE', generator.ORDER_NONE);
|
|
|
|
var option = {}
|
|
|
|
if (desc != "") {
|
|
option.description = desc
|
|
}
|
|
if (def != "") {
|
|
option.default = def
|
|
}
|
|
if (type != "") {
|
|
option.type = type
|
|
}
|
|
var exportedoption = exportWithEquals(option);
|
|
|
|
if (exportedoption == "{}") {
|
|
var code = `settings.define(${name})`
|
|
} else {
|
|
var code = `settings.define(${name}, ${exportedoption})`
|
|
}
|
|
|
|
return code + "\n";
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_undefine'] = function(block, generator) {
|
|
var name = generator.valueToCode(block, 'NAME', generator.ORDER_NONE);
|
|
|
|
return `settings.undefine(${name})`;
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_set'] = function(block, generator) {
|
|
var name = generator.valueToCode(block, 'NAME', generator.ORDER_NONE);
|
|
var value = generator.valueToCode(block, 'VALUE', generator.ORDER_NONE);
|
|
|
|
return `settings.set(${name}, ${value})`;
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_get'] = function(block, generator) {
|
|
var name = generator.valueToCode(block, 'NAME', generator.ORDER_NONE);
|
|
|
|
return [`settings.get(${name})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_getdetails'] = function(block, generator) {
|
|
var name = generator.valueToCode(block, 'NAME', generator.ORDER_NONE);
|
|
|
|
return [`settings.getDetails(${name})`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_unset'] = function(block, generator) {
|
|
var name = generator.valueToCode(block, 'NAME', generator.ORDER_NONE);
|
|
|
|
return `settings.unset(${name})`;
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_clear'] = function(block, generator) {
|
|
return `settings.clear()`;
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_getnames'] = function(block, generator) {
|
|
return [`settings.getNames()`, luaGenerator.ORDER_NONE];
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_load'] = function(block, generator) {
|
|
var file = generator.valueToCode(block, 'FILE', generator.ORDER_NONE);
|
|
|
|
return `settings.load(${file})`;
|
|
};
|
|
|
|
luaGenerator.forBlock['settings_save'] = function(block, generator) {
|
|
var file = generator.valueToCode(block, 'FILE', generator.ORDER_NONE);
|
|
|
|
return `settings.save(${file})`;
|
|
};
|