Skip to content

Commit 36cd4db

Browse files
committed
Show generated SPARQL on collapsed blocks
Also teach generator to generate code for only one block Also fix ASK code generation
1 parent 8a72ad1 commit 36cd4db

File tree

5 files changed

+35
-7
lines changed

5 files changed

+35
-7
lines changed

package/package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "sparql-blockly",
3-
"version": "0.0.4-16",
3+
"version": "0.0.4-17",
44
"description": "A library for working with SPARQL in Blockly",
55
"main": "dist/index.js",
66
"license": "MIT",

package/src/CodeGenerator.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,18 @@ export default class CodeGenerator extends Blockly.Generator {
5353
.forEach(addToInstance)
5454
}
5555

56+
public scrub_(block: Blockly.Block, code: string, thisOnly?: boolean): string {
57+
if (!thisOnly) {
58+
const next = block.getNextBlock();
59+
60+
if (next) {
61+
code += this.blockToCode(next)
62+
}
63+
}
64+
65+
return code
66+
}
67+
5668
public sparqlQuery(block: Blockly.Block): string {
5769
const prologue = this.statementToCode(block, "prologue")
5870
const value = this.valueToCode(block, "value")
@@ -82,7 +94,7 @@ export default class CodeGenerator extends Blockly.Generator {
8294
public sparqlAskQuery(block: Blockly.Block): CodeTuple {
8395
const value = this.valueToCode(block, "value")
8496

85-
const code = join(" ", "ASK", value)
97+
const code = join("\n", "ASK", value)
8698

8799
return codeTuple(code)
88100
}
@@ -900,7 +912,7 @@ export default class CodeGenerator extends Blockly.Generator {
900912
const next = this.blockToCode(block.getNextBlock())
901913

902914
if (next) {
903-
code += delimiter + next
915+
code += delimiter
904916
}
905917

906918
return code

package/src/initialiseBlockly.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,21 @@
11
import "./defineCustomBlocks"
22
import "./unregisterDefaultMenuItems"
33
import "./registerCustomMenuItems"
4+
import * as Blockly from "blockly"
5+
import CodeGenerator from "./CodeGenerator"
6+
7+
// This is what's displayed when block collapsed
8+
Blockly.Block.prototype.toString = function () {
9+
const code = new CodeGenerator().blockToCode(this, true)
10+
11+
if (code instanceof Array)
12+
return code[0]
13+
else
14+
return code
15+
}
16+
17+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
18+
const blockly = Blockly as any
19+
blockly.COLLAPSE_CHARS = 3000
20+
21+
Blockly.Field.prototype.maxDisplayLength = 3000

package/src/unregisterDefaultMenuItems.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,11 @@
33
ContextMenuRegistry.registry.unregister("undoWorkspace");
44
ContextMenuRegistry.registry.unregister("redoWorkspace");
55
ContextMenuRegistry.registry.unregister("cleanWorkspace");
6-
ContextMenuRegistry.registry.unregister("collapseWorkspace");
76
ContextMenuRegistry.registry.unregister("expandWorkspace");
87
ContextMenuRegistry.registry.unregister("workspaceDelete");
98
ContextMenuRegistry.registry.unregister("blockDuplicate");
109
ContextMenuRegistry.registry.unregister("blockComment");
1110
ContextMenuRegistry.registry.unregister("blockInline");
12-
ContextMenuRegistry.registry.unregister("blockCollapseExpand");
1311
ContextMenuRegistry.registry.unregister("blockDisable");
1412
ContextMenuRegistry.registry.unregister("blockDelete");
1513
ContextMenuRegistry.registry.unregister("blockHelp");

0 commit comments

Comments
 (0)