From 0d6f819c213f8854c587ca9031845b5d5613dfd7 Mon Sep 17 00:00:00 2001 From: Riccardo Ferretti Date: Wed, 9 Dec 2020 16:04:22 +0100 Subject: [PATCH 1/6] create commonjs modules This is to fix a problem at startup regarding instantiation of objects. See: - https://github.com/foambubble/foam/pull/394#issuecomment-740065368 - https://discord.com/channels/729975036148056075/737970741324152882/784180656560275507 --- packages/foam-core/tsconfig.json | 2 +- tsconfig.base.json | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/foam-core/tsconfig.json b/packages/foam-core/tsconfig.json index 5fa558a13..d8edea466 100644 --- a/packages/foam-core/tsconfig.json +++ b/packages/foam-core/tsconfig.json @@ -6,7 +6,7 @@ "esModuleInterop": true, "importHelpers": true, "downlevelIteration": true, - "target": "es2019", + // "target": "es2019", // commonjs module format is used so that the incremental // tsc build-mode ran during development can replace individual // files (as opposed to generate the .cjs.development.js bundle. diff --git a/tsconfig.base.json b/tsconfig.base.json index 3137ef72c..78248b116 100644 --- a/tsconfig.base.json +++ b/tsconfig.base.json @@ -4,6 +4,8 @@ "declaration": true, "declarationMap": true, "baseUrl": ".", + "module": "commonjs", + "target": "ES2019", "paths": { "foam-core": ["./packages/foam-core/src"], "foam-cli": ["./packages/foam-cli/src"], From d7443ff829409ebf6c5414bb7d036719a8323fec Mon Sep 17 00:00:00 2001 From: Riccardo Ferretti Date: Wed, 9 Dec 2020 16:11:45 +0100 Subject: [PATCH 2/6] minor style tweaks --- packages/foam-vscode/static/graphs/default/graph.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/foam-vscode/static/graphs/default/graph.js b/packages/foam-vscode/static/graphs/default/graph.js index cc25a7be1..900a33307 100644 --- a/packages/foam-vscode/static/graphs/default/graph.js +++ b/packages/foam-vscode/static/graphs/default/graph.js @@ -9,7 +9,7 @@ function getStyle(name, fallback) { const style = { background: getStyle(`--vscode-panel-background`, "#202020"), - fontSize: parseInt(getStyle(`--vscode-font-size`, 12)), + fontSize: parseInt(getStyle(`--vscode-font-size`, 12)) - 2, highlightedForeground: getStyle( "--vscode-list-highlightForeground", "#f9c74f" @@ -27,7 +27,7 @@ const style = { const sizeScale = d3 .scaleLinear() .domain([0, 30]) - .range([1, 3]) + .range([0.5, 2]) .clamp(true); const labelAlpha = d3 @@ -142,7 +142,7 @@ function initDataviz(channel) { const label = info.title; Draw(ctx) - .circle(node.x, node.y, size + 0.5, border) + .circle(node.x, node.y, size + 0.2, border) .circle(node.x, node.y, size, fill) .text(label, node.x, node.y + size + 1, fontSize, textColor); }) From 7f191d0241187d5bb9a433da131220568bac9596 Mon Sep 17 00:00:00 2001 From: Riccardo Ferretti Date: Wed, 9 Dec 2020 16:29:42 +0100 Subject: [PATCH 3/6] fix(dataviz): selected nodes must exist after updating graph data (#397) --- packages/foam-vscode/static/graphs/default/graph.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/foam-vscode/static/graphs/default/graph.js b/packages/foam-vscode/static/graphs/default/graph.js index 900a33307..371099355 100644 --- a/packages/foam-vscode/static/graphs/default/graph.js +++ b/packages/foam-vscode/static/graphs/default/graph.js @@ -97,6 +97,12 @@ const Actions = { }); m.data.links = links; // links can be swapped out without problem + // check that selected/hovered nodes are still valid (see #397) + m.hoverNode = remaining.has(m.hoverNode) ? m.hoverNode : null; + m.selectedNodes = new Set( + Array.from(m.selectedNodes).filter(nId => remaining.has(nId)) + ); + // annoying we need to call this function, but I haven't found a good workaround graph.graphData(m.data); }), From 2a1d676d3eece4bbea8d55efc0ec8cf39b32722b Mon Sep 17 00:00:00 2001 From: Riccardo Ferretti Date: Wed, 9 Dec 2020 17:08:11 +0100 Subject: [PATCH 4/6] add graph view errors to foam log --- packages/foam-vscode/src/features/dataviz.ts | 6 +++++- packages/foam-vscode/static/graphs/default/graph.js | 13 +++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/packages/foam-vscode/src/features/dataviz.ts b/packages/foam-vscode/src/features/dataviz.ts index 0070cc95c..d004d9e62 100644 --- a/packages/foam-vscode/src/features/dataviz.ts +++ b/packages/foam-vscode/src/features/dataviz.ts @@ -1,7 +1,7 @@ import * as vscode from "vscode"; import * as path from "path"; import { FoamFeature } from "../types"; -import { Foam } from "foam-core"; +import { Foam, Logger } from "foam-core"; import { TextDecoder } from "util"; import { getTitleMaxLength } from "../settings"; import { isSome } from "../utils"; @@ -120,6 +120,10 @@ async function createGraphPanel(foam: Foam, context: vscode.ExtensionContext) { vscode.window.showTextDocument(doc, vscode.ViewColumn.One); }); break; + + case "error": + Logger.error("An error occurred in the graph view", message.payload); + break; } }, undefined, diff --git a/packages/foam-vscode/static/graphs/default/graph.js b/packages/foam-vscode/static/graphs/default/graph.js index 371099355..a343b51d1 100644 --- a/packages/foam-vscode/static/graphs/default/graph.js +++ b/packages/foam-vscode/static/graphs/default/graph.js @@ -266,6 +266,19 @@ try { type: "webviewDidLoad" }); }; + window.addEventListener("error", error => { + vscode.postMessage({ + type: "error", + payload: { + message: error.message, + filename: error.filename, + lineno: error.lineno, + colno: error.colno, + error: error.error + } + }); + }); + window.addEventListener("message", event => { const message = event.data; From c85e035f57309f9cdfedec0f0da5f0fac6832a4f Mon Sep 17 00:00:00 2001 From: Riccardo Ferretti Date: Wed, 9 Dec 2020 18:00:01 +0100 Subject: [PATCH 5/6] thinner edges for better readability --- packages/foam-vscode/static/graphs/default/graph.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/foam-vscode/static/graphs/default/graph.js b/packages/foam-vscode/static/graphs/default/graph.js index a343b51d1..56d305615 100644 --- a/packages/foam-vscode/static/graphs/default/graph.js +++ b/packages/foam-vscode/static/graphs/default/graph.js @@ -130,7 +130,7 @@ function initDataviz(channel) { .d3Force("x", d3.forceX()) .d3Force("y", d3.forceY()) .d3Force("collide", d3.forceCollide(graph.nodeRelSize())) - .linkWidth(0.5) + .linkWidth(0.2) .linkDirectionalParticles(1) .linkDirectionalParticleWidth(link => getLinkState(link, model) === "highlighted" ? 1 : 0 From 1365985906cd7c9808dbe6f71152179cc4a78f66 Mon Sep 17 00:00:00 2001 From: Riccardo Ferretti Date: Wed, 9 Dec 2020 19:04:32 +0100 Subject: [PATCH 6/6] removed commented line --- packages/foam-core/tsconfig.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/foam-core/tsconfig.json b/packages/foam-core/tsconfig.json index d8edea466..4367d1bc2 100644 --- a/packages/foam-core/tsconfig.json +++ b/packages/foam-core/tsconfig.json @@ -6,7 +6,6 @@ "esModuleInterop": true, "importHelpers": true, "downlevelIteration": true, - // "target": "es2019", // commonjs module format is used so that the incremental // tsc build-mode ran during development can replace individual // files (as opposed to generate the .cjs.development.js bundle.