gobstones-blockly 0.11.2 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/htmls/gs-element-blockly.html +77 -41
- data/lib/gobstones/blockly/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5df4f3cb3085b99b2ab4961e794ce837134096999868a450215dfd0d074d3144
|
4
|
+
data.tar.gz: d2038c6e78c197d2d440de7d570ad3786995d782c43edfa35939067aca23b078
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7f59e43a5bd79c13e53a4fb6129253f3b1aae0d8d740e249d67d1c82cb30a08d851aa1bbb4f7a0d15f7559d9f24cebe95461ee7104c6809cd6ba3482c9f1d76f
|
7
|
+
data.tar.gz: b6004a73a82b3f898a0905e941c65cd4136c3d5b9a47d9e8f1630d0b757e23ff7eb9a149edf7768d17a1dcc09e0b120a73e6451e7732e640c398460e7d85f652
|
@@ -87,6 +87,8 @@ Example:
|
|
87
87
|
<category name="Programas">
|
88
88
|
<block type="Program"></block>
|
89
89
|
<block type="InteractiveProgram"></block>
|
90
|
+
</category>
|
91
|
+
<category name="Asociaciones">
|
90
92
|
<block type="InteractiveLetterBinding"></block>
|
91
93
|
<block type="InteractiveNumberBinding"></block>
|
92
94
|
<block type="InteractiveKeyBinding"></block>
|
@@ -3310,7 +3312,7 @@ Blockly.Blocks['procedures_ifreturn'] = {
|
|
3310
3312
|
};</script>
|
3311
3313
|
<script>var PLUS = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAQAAAD2e2DtAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfhDAUCCjFLV0NqAAAC60lEQVR42u3dQW7aQABA0Wl7MMjJICeDnIwuqm4qVQrYjMH/Pa/jsfFnTJDwjAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBUP7Y+gClOY4zznX9zHmN8bn3gLHcYtwXbYevDZ5nLost/G7dx2foUeNzyyy+BN7Zs8ncjeHvrvP/NAW9qvff/rueAn1sfwNMcX3hvL2S/3wPcVt7fTl+p/c4AfIsA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4mYHcBinVRdz+v+2tjlHfdrv8lRjHFZcyG3P22VmBPOWQrrsd+WtJ7iOjzkDzQrA5b/XpATmBHAY1ynj7MtxfD1/kDkBrP+RrGHC1ZnxX8Bpwhj7NOGV8z1A3IxbgBvA455+fcwAcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcT9mjLKcevTfFPn5/860AwQ58ehr2wnPw51C3jMccYgcwL48nyAu11nPB3AI2Je1bRHxMz7EPgxjuaBb7mO46zLP3MG+OMwjuM8ecx3cp419f81O4B51v7PY6evlO8B4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQN2fp2G0cV9zXhEVct7HfGeD6wntjisu4rbRdtj4VHnFYLYDD1qfCY9aZA7z/39jyBFz+N7fsRrD7yX+n62H+4zTG3QvWnscYn1sfOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALvzG8Ijm7EmMQYoAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTEyLTA1VDAyOjEwOjQ5LTA1OjAwJa2zowAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0xMi0wNVQwMjoxMDo0OS0wNTowMFTwCx8AAAAASUVORK5CYII=";
|
3312
3314
|
var MINUS = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAQAAAD2e2DtAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfhDAUCCi+xWH4JAAABcUlEQVR42u3c7ZGCMBSG0etuYcTKls7AyrSEVWd4+bjnUECMeSbhD6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBzu4XHm2rUvPekD2yutR57/4itTLXU0/Pvs9SUW5TcDrDUyE3r9Na6ZwZKBWD5PxVKIBPAVGtknGsZibeBTADPyCjXE1idn8A0/gJjXFPgn0sEwIEljgAHwPc2Xx87QHMCaE4AzQmgOQE0J4DmBNCcAJoTQHMCaE4AzQmgOQE0J4DmBNCcAJoTQHMCaE4AzQmgOQE0J4DmBNDcb2SUsfc0T2re/utAO0BzPg49sot8HOoI+M5IDJIJ4OF+gI+F7gpyRcwxxa6Iyb0E3mvYB96y1kgtv2vijubS18QBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAWXq7xrTQhKAi3AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTEyLTA1VDAyOjEwOjQ3LTA1OjAwdZLI/gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0xMi0wNVQwMjoxMDo0Ny0wNTowMATPcEIAAAAASUVORK5CYII=";
|
3313
|
-
var
|
3315
|
+
var HAND = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfiBAUBKBeKSgeBAAABTElEQVQoz22QzyvDcRjHX5/vvrMyStI2uZgftdVCSpJCyW1y00oUF+Xg4OIkx5VyUyJOsgv/gnJw4YCSSFMyB5pGbLJ99/k8LltreB2f9+v50eOigoc5FvGTJF8pugCwaKaNaE98uf9zMBXwjtNpbvmuaH2B0+HXuuyMEbOlQ4U1M5ZVcYbowg02YfZW5cnE9JIROdI7jsiOacoMPLZdEYPR1ouQkxCRG+feESlIXkQOzLR+NhvCpc3UbPcHAoRsADcAQ0Twq0ZosQgEVY0SqvGpkAUCxkIUYRP4bZRRNi9pvaD+TwXyFseHuYzy/Kt8CWfQ5Ems6C/5y7uZyDEH0Nt8vq0dUx0XzaapPyIIoIi23+47+SrlTvrTjLhKy2wmO95OqiacS+QBH9gAFDlOZnYbrimWOixSZCwUlK+vZd7bXiPldyi0yqX1OtkfCBS/9XAtDKAAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDQtMDVUMDQ6NDQ6NDItMDM6MDD+uUN1AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA0LTA1VDA0OjQwOjIzLTAzOjAw5hdZgAAAAABJRU5ErkJggg==";
|
3314
3316
|
|
3315
3317
|
window.initProcedsBlockly = function(customStatementType) {
|
3316
3318
|
Blockly.Msg.PROCEDURES_DEFNORETURN_COMMENT = 'Describe el procedimiento...';
|
@@ -3444,7 +3446,7 @@ window.initProcedsBlockly = function(customStatementType) {
|
|
3444
3446
|
}
|
3445
3447
|
|
3446
3448
|
var createCallButton = new Blockly.FieldImage(
|
3447
|
-
|
3449
|
+
HAND,
|
3448
3450
|
16,
|
3449
3451
|
16,
|
3450
3452
|
Blockly.Msg.VARIABLES_SET_CREATE_GET.replace('%1', name),
|
@@ -3587,24 +3589,27 @@ window.initProcedsBlockly = function(customStatementType) {
|
|
3587
3589
|
// if (!withParametersMutator) this.updateParams_();
|
3588
3590
|
|
3589
3591
|
// [!] adding create call button
|
3590
|
-
|
3591
|
-
|
3592
|
-
|
3593
|
-
|
3594
|
-
|
3595
|
-
|
3596
|
-
|
3597
|
-
|
3598
|
-
|
3599
|
-
|
3600
|
-
|
3601
|
-
|
3602
|
-
|
3603
|
-
|
3604
|
-
|
3605
|
-
|
3606
|
-
|
3607
|
-
|
3592
|
+
var createCallButton = new Blockly.FieldImage(
|
3593
|
+
HAND,
|
3594
|
+
16,
|
3595
|
+
16,
|
3596
|
+
"",
|
3597
|
+
function() {
|
3598
|
+
var name = self.getFieldValue('NAME');
|
3599
|
+
var xmlMutation = goog.dom.createDom('mutation');
|
3600
|
+
xmlMutation.setAttribute('name', name);
|
3601
|
+
for (var i = 0; i < self.arguments_.length; i++) {
|
3602
|
+
var xmlArg = goog.dom.createDom('arg');
|
3603
|
+
xmlArg.setAttribute('name', self.arguments_[i]);
|
3604
|
+
xmlMutation.appendChild(xmlArg);
|
3605
|
+
}
|
3606
|
+
var xmlBlock = goog.dom.createDom('block', null, xmlMutation);
|
3607
|
+
xmlBlock.setAttribute('type', self.callType_);
|
3608
|
+
|
3609
|
+
Blockly.ContextMenu.callbackFactory(self, xmlBlock)();
|
3610
|
+
}
|
3611
|
+
);
|
3612
|
+
input.appendField(createCallButton);
|
3608
3613
|
};
|
3609
3614
|
};
|
3610
3615
|
|
@@ -4030,8 +4035,10 @@ window.initProcedsBlockly = function(customStatementType) {
|
|
4030
4035
|
}
|
4031
4036
|
</script>
|
4032
4037
|
<script>initProcedsBlockly("Statement");</script>
|
4033
|
-
<script>var
|
4038
|
+
<script>var PLUS = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAQAAAD2e2DtAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfhDAUCCjFLV0NqAAAC60lEQVR42u3dQW7aQABA0Wl7MMjJICeDnIwuqm4qVQrYjMH/Pa/jsfFnTJDwjAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMBUP7Y+gClOY4zznX9zHmN8bn3gLHcYtwXbYevDZ5nLost/G7dx2foUeNzyyy+BN7Zs8ncjeHvrvP/NAW9qvff/rueAn1sfwNMcX3hvL2S/3wPcVt7fTl+p/c4AfIsA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4mYHcBinVRdz+v+2tjlHfdrv8lRjHFZcyG3P22VmBPOWQrrsd+WtJ7iOjzkDzQrA5b/XpATmBHAY1ynj7MtxfD1/kDkBrP+RrGHC1ZnxX8Bpwhj7NOGV8z1A3IxbgBvA455+fcwAcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcT9mjLKcevTfFPn5/860AwQ58ehr2wnPw51C3jMccYgcwL48nyAu11nPB3AI2Je1bRHxMz7EPgxjuaBb7mO46zLP3MG+OMwjuM8ecx3cp419f81O4B51v7PY6evlO8B4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQJ4A4AcQJIE4AcQKIE0CcAOIEECeAOAHECSBOAHECiBNAnADiBBAngDgBxAkgTgBxAogTQJwA4gQQN2fp2G0cV9zXhEVct7HfGeD6wntjisu4rbRdtj4VHnFYLYDD1qfCY9aZA7z/39jyBFz+N7fsRrD7yX+n62H+4zTG3QvWnscYn1sfOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALvzG8Ijm7EmMQYoAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTEyLTA1VDAyOjEwOjQ5LTA1OjAwJa2zowAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0xMi0wNVQwMjoxMDo0OS0wNTowMFTwCx8AAAAASUVORK5CYII=";
|
4039
|
+
var MINUS = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAQAAAD2e2DtAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfhDAUCCi+xWH4JAAABcUlEQVR42u3c7ZGCMBSG0etuYcTKls7AyrSEVWd4+bjnUECMeSbhD6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBzu4XHm2rUvPekD2yutR57/4itTLXU0/Pvs9SUW5TcDrDUyE3r9Na6ZwZKBWD5PxVKIBPAVGtknGsZibeBTADPyCjXE1idn8A0/gJjXFPgn0sEwIEljgAHwPc2Xx87QHMCaE4AzQmgOQE0J4DmBNCcAJoTQHMCaE4AzQmgOQE0J4DmBNCcAJoTQHMCaE4AzQmgOQE0J4DmBNDcb2SUsfc0T2re/utAO0BzPg49sot8HOoI+M5IDJIJ4OF+gI+F7gpyRcwxxa6Iyb0E3mvYB96y1kgtv2vijubS18QBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAWXq7xrTQhKAi3AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTEyLTA1VDAyOjEwOjQ3LTA1OjAwdZLI/gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0xMi0wNVQwMjoxMDo0Ny0wNTowMATPcEIAAAAASUVORK5CYII=";
|
4034
4040
|
var HAND = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfiBAUBKBeKSgeBAAABTElEQVQoz22QzyvDcRjHX5/vvrMyStI2uZgftdVCSpJCyW1y00oUF+Xg4OIkx5VyUyJOsgv/gnJw4YCSSFMyB5pGbLJ99/k8LltreB2f9+v50eOigoc5FvGTJF8pugCwaKaNaE98uf9zMBXwjtNpbvmuaH2B0+HXuuyMEbOlQ4U1M5ZVcYbowg02YfZW5cnE9JIROdI7jsiOacoMPLZdEYPR1ouQkxCRG+feESlIXkQOzLR+NhvCpc3UbPcHAoRsADcAQ0Twq0ZosQgEVY0SqvGpkAUCxkIUYRP4bZRRNi9pvaD+TwXyFseHuYzy/Kt8CWfQ5Ems6C/5y7uZyDEH0Nt8vq0dUx0XzaapPyIIoIi23+47+SrlTvrTjLhKy2wmO95OqiacS+QBH9gAFDlOZnYbrimWOixSZCwUlK+vZd7bXiPldyi0yqX1OtkfCBS/9XAtDKAAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDQtMDVUMDQ6NDQ6NDItMDM6MDD+uUN1AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA0LTA1VDA0OjQwOjIzLTAzOjAw5hdZgAAAAABJRU5ErkJggg==";
|
4041
|
+
var CLEAN = "data:image/png;base64,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";
|
4035
4042
|
|
4036
4043
|
/* global Blockly */
|
4037
4044
|
|
@@ -4233,7 +4240,7 @@ const modifiers = [
|
|
4233
4240
|
[ 'ALT', 'ALT' ]
|
4234
4241
|
];
|
4235
4242
|
|
4236
|
-
const getModifiersInput = (block) => block.inputList[
|
4243
|
+
const getModifiersInput = (block) => block.inputList[1];
|
4237
4244
|
const getModifierFields = (block) => getModifiersInput(block).fieldRow.slice(2);
|
4238
4245
|
const getModifierDropdownFields = (block) => getModifierFields(block).filter(it => it.constructor === Blockly.FieldDropdown);
|
4239
4246
|
const getModifierValues = (block) => getModifierDropdownFields(block).map(it => it.getValue());
|
@@ -4261,7 +4268,7 @@ createInteractiveBinding = (name, keys) => {
|
|
4261
4268
|
return {
|
4262
4269
|
init: function () {
|
4263
4270
|
this.jsonInit({
|
4264
|
-
message0: "%1 %2",
|
4271
|
+
message0: "%1 %2 %3 %4",
|
4265
4272
|
type: "InteractiveBinding",
|
4266
4273
|
previousStatement: "InteractiveBinding",
|
4267
4274
|
nextStatement: "InteractiveBinding",
|
@@ -4270,6 +4277,11 @@ createInteractiveBinding = (name, keys) => {
|
|
4270
4277
|
"type": "field_label",
|
4271
4278
|
"text": "Al apretar " + name
|
4272
4279
|
},
|
4280
|
+
{ "type": "input_dummy" },
|
4281
|
+
{
|
4282
|
+
"type": "field_label",
|
4283
|
+
"text": "➣"
|
4284
|
+
},
|
4273
4285
|
{
|
4274
4286
|
type: "field_dropdown",
|
4275
4287
|
name: "InteractiveBindingDropdownKey",
|
@@ -4280,7 +4292,31 @@ createInteractiveBinding = (name, keys) => {
|
|
4280
4292
|
tooltip: "Escoger una entrada",
|
4281
4293
|
});
|
4282
4294
|
|
4283
|
-
|
4295
|
+
this.appendStatementInput('block').setCheck(["Statement"]);
|
4296
|
+
|
4297
|
+
const self = this;
|
4298
|
+
const input = this.inputList[0];
|
4299
|
+
input.appendField(new Blockly.FieldImage(
|
4300
|
+
PLUS,
|
4301
|
+
16,
|
4302
|
+
16,
|
4303
|
+
"Agregar modificador",
|
4304
|
+
function() {
|
4305
|
+
const modifiersCount = getModifierFields(self).length / 2;
|
4306
|
+
if (modifiersCount >= modifiers.length) return;
|
4307
|
+
|
4308
|
+
self._addModifier();
|
4309
|
+
}
|
4310
|
+
));
|
4311
|
+
input.appendField(new Blockly.FieldImage(
|
4312
|
+
CLEAN,
|
4313
|
+
16,
|
4314
|
+
16,
|
4315
|
+
"Limpiar modificadores",
|
4316
|
+
function() {
|
4317
|
+
self._cleanModifiers();
|
4318
|
+
}
|
4319
|
+
));
|
4284
4320
|
},
|
4285
4321
|
|
4286
4322
|
customContextMenu: function(options) {
|
@@ -5278,12 +5314,12 @@ Blockly.GobstonesLanguage.init = function () {
|
|
5278
5314
|
} else {
|
5279
5315
|
Blockly.GobstonesLanguage.variableDB_ =
|
5280
5316
|
new Blockly.Names(Blockly.GobstonesLanguage.RESERVED_WORDS_);
|
5281
|
-
|
5317
|
+
|
5282
5318
|
// Gobstones lets ñáéíóú, so Blockly's safeName should be rewritten.
|
5283
5319
|
// In the process, makes everything CamelCase which is Gobstones' default.
|
5284
5320
|
Blockly.GobstonesLanguage.variableDB_.safeName_ = function(name) {
|
5285
5321
|
if (!name) return 'unnamed';
|
5286
|
-
|
5322
|
+
|
5287
5323
|
//Get rid of unwanted chars
|
5288
5324
|
var safe = name.replace(/[^\wáéíóúÁÉÍÓÚñÑ ]/g, '')
|
5289
5325
|
|
@@ -5295,7 +5331,7 @@ Blockly.GobstonesLanguage.init = function () {
|
|
5295
5331
|
safe = safe.split(' ').map((word, i) =>
|
5296
5332
|
!word | i == 0 ? word : word[0].toUpperCase() + word.slice(1)
|
5297
5333
|
).join('');
|
5298
|
-
|
5334
|
+
|
5299
5335
|
return safe;
|
5300
5336
|
};
|
5301
5337
|
}
|
@@ -5390,7 +5426,7 @@ Blockly.GobstonesLanguage.Program = function (block) {
|
|
5390
5426
|
|
5391
5427
|
Blockly.GobstonesLanguage.InteractiveProgram = function (block) {
|
5392
5428
|
let program = Blockly.GobstonesLanguage.statementToCode(block, 'interactiveprogram');
|
5393
|
-
|
5429
|
+
|
5394
5430
|
let init = '';
|
5395
5431
|
if (block.$init)
|
5396
5432
|
init = ` INIT -> {\n${Blockly.GobstonesLanguage.statementToCode(block, 'init')} }\n`;
|
@@ -5407,7 +5443,7 @@ Blockly.GobstonesLanguage.InteractiveLetterBinding = function (block) {
|
|
5407
5443
|
let key = block.getFieldValue('InteractiveBindingDropdownKey');
|
5408
5444
|
|
5409
5445
|
const order = ["CTRL", "ALT", "SHIFT"];
|
5410
|
-
const modifier = block.inputList[
|
5446
|
+
const modifier = block.inputList[1]
|
5411
5447
|
.fieldRow
|
5412
5448
|
.slice(2)
|
5413
5449
|
.filter(it => it.constructor === Blockly.FieldDropdown)
|
@@ -5490,7 +5526,7 @@ var formatCallName = function (name, capitalizeFirst, type = Blockly.PROCEDURE_C
|
|
5490
5526
|
var makeParameterList = function (block) {
|
5491
5527
|
return block.arguments_
|
5492
5528
|
.map(arg => formatCallName(arg, false, Blockly.VARIABLE_CATEGORY_NAME))
|
5493
|
-
.join(', ');
|
5529
|
+
.join(', ');
|
5494
5530
|
};
|
5495
5531
|
|
5496
5532
|
Blockly.GobstonesLanguage.procedures_defnoreturn = function (block) {
|
@@ -5553,7 +5589,7 @@ Blockly.GobstonesLanguage.variables_get = function (block) {
|
|
5553
5589
|
|
5554
5590
|
Blockly.GobstonesLanguage.Asignacion = function(block) {
|
5555
5591
|
var varValue = Blockly.GobstonesLanguage.valueToCode(block, 'varValue', Blockly.GobstonesLanguage.ORDER_ASSIGNMENT);
|
5556
|
-
var code = formatCallName(block.getFieldValue('varName'),false,Blockly.VARIABLE_CATEGORY_NAME) +
|
5592
|
+
var code = formatCallName(block.getFieldValue('varName'),false,Blockly.VARIABLE_CATEGORY_NAME) +
|
5557
5593
|
' := ' + varValue + '\n';
|
5558
5594
|
return code;
|
5559
5595
|
};
|
@@ -5736,7 +5772,7 @@ Blockly.ErrorInforming.CssContent = [
|
|
5736
5772
|
'stroke-width: 3px;',
|
5737
5773
|
'}',
|
5738
5774
|
];</script>
|
5739
|
-
|
5775
|
+
|
5740
5776
|
<script>
|
5741
5777
|
const BLOCKLY_PRIMITIVE_PROCEDURES = "Procedimientos primitivos";
|
5742
5778
|
const BLOCKLY_PRIMITIVE_FUNCTIONS = "Funciones primitivas";
|
@@ -6112,7 +6148,7 @@ Blockly.ErrorInforming.CssContent = [
|
|
6112
6148
|
init: function () {
|
6113
6149
|
let argsIndex = 1;
|
6114
6150
|
this.setColour(Blockly.CUSTOM_COLORS.primitiveProcedure);
|
6115
|
-
|
6151
|
+
|
6116
6152
|
if (icon) {
|
6117
6153
|
this.appendDummyInput().appendField(new Blockly.FieldImage(
|
6118
6154
|
icon,
|
@@ -6270,7 +6306,7 @@ Blockly.ErrorInforming.CssContent = [
|
|
6270
6306
|
if (program && interactiveProgram) {
|
6271
6307
|
program.setDeletable(true);
|
6272
6308
|
interactiveProgram.setDeletable(true);
|
6273
|
-
|
6309
|
+
|
6274
6310
|
const important = program.$timestamp > interactiveProgram.$timestamp ? program : interactiveProgram;
|
6275
6311
|
const unimportant = program.$timestamp > interactiveProgram.$timestamp ? interactiveProgram : program;
|
6276
6312
|
|
@@ -6296,7 +6332,7 @@ Blockly.ErrorInforming.CssContent = [
|
|
6296
6332
|
if (block.type === "variables_get" && block.$parent) {
|
6297
6333
|
const parentBlock = this.workspace.getBlockById(block.$parent);
|
6298
6334
|
const varField = block.getField("VAR");
|
6299
|
-
|
6335
|
+
|
6300
6336
|
if (
|
6301
6337
|
parentBlock &&
|
6302
6338
|
(
|
@@ -6515,7 +6551,7 @@ Blockly.ErrorInforming.CssContent = [
|
|
6515
6551
|
/**
|
6516
6552
|
* Generate gobstones code from the blocks in the workspace.
|
6517
6553
|
* It removes all highlighting and errors if already present.
|
6518
|
-
*
|
6554
|
+
*
|
6519
6555
|
* There is an additional option which if provided adds pragma BEGIN/END REGION
|
6520
6556
|
* to the output.
|
6521
6557
|
* * `element.generateCode( {withRegions: true, clearErrors: false} );`
|
@@ -6547,12 +6583,12 @@ Blockly.ErrorInforming.CssContent = [
|
|
6547
6583
|
|
6548
6584
|
/**
|
6549
6585
|
* Highlight a given block, telling the user it has an error
|
6550
|
-
*
|
6586
|
+
*
|
6551
6587
|
* `blockId` is the block ID where the error should appear
|
6552
|
-
*
|
6588
|
+
*
|
6553
6589
|
* `errorKind` is either a string with the description or an object with a kind of error.
|
6554
6590
|
* Next are examples with the existent error kinds.
|
6555
|
-
*
|
6591
|
+
*
|
6556
6592
|
* Examples:
|
6557
6593
|
* * `element.showBlockError('a1s2', 'Hey, here is an error')`
|
6558
6594
|
* * `element.showBlockError('a1s2', { kind: 'INCOMPLETE_ERROR'} )`
|
@@ -6565,10 +6601,10 @@ Blockly.ErrorInforming.CssContent = [
|
|
6565
6601
|
|
6566
6602
|
testColors(colors) {
|
6567
6603
|
Blockly.CUSTOM_COLORS = colors;
|
6568
|
-
Blockly.HSV_SATURATION = colors.globalHsvSaturation;
|
6604
|
+
Blockly.HSV_SATURATION = colors.globalHsvSaturation;
|
6569
6605
|
Blockly.HSV_VALUE = colors.globalHsvValue;
|
6570
6606
|
Blockly.Blocks.procedures.HUE = colors.procedure;
|
6571
|
-
|
6607
|
+
|
6572
6608
|
var xmlDom = Blockly.Xml.workspaceToDom(this.workspace);
|
6573
6609
|
const xml = Blockly.Xml.domToText(xmlDom);
|
6574
6610
|
this.resetWorkspace();
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gobstones-blockly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.12.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Alfonso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|