diff --git a/demos/java/.project b/demos/java/.project index f1e2727..2e6ed36 100644 --- a/demos/java/.project +++ b/demos/java/.project @@ -1,17 +1,28 @@ - + - java - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - \ No newline at end of file + java + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + + + 1599063072264 + + 30 + + org.eclipse.core.resources.regexFilterMatcher + node_modules|.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__ + + + + diff --git a/extension/src/EvaluationWatchService/EvaluationEngine/GenericEvaluationEngine.ts b/extension/src/EvaluationWatchService/EvaluationEngine/GenericEvaluationEngine.ts index 26f63d4..5415991 100644 --- a/extension/src/EvaluationWatchService/EvaluationEngine/GenericEvaluationEngine.ts +++ b/extension/src/EvaluationWatchService/EvaluationEngine/GenericEvaluationEngine.ts @@ -1,4 +1,6 @@ import { + createGraph, + CreateGraphEdge, DataExtractionResult, DataExtractorId, } from "@hediet/debug-visualizer-data-extraction"; @@ -49,6 +51,8 @@ export class GenericEvaluator implements Evaluator { // Use structural information about variables // from the evaluation response if present. if (reply.variablesReference) { + let obj = await this.constructObjectFromVariablesReference(reply.variablesReference); + return { kind: "data", result: { @@ -58,7 +62,30 @@ export class GenericEvaluator implements Evaluator { name: "Generic", priority: 1, }, - data: await this.constructObjectFromVariablesReference(reply.variablesReference), + data: createGraph( + [obj], + (item: any) => { + function isObject(val: any): boolean { + return val && typeof val === "object"; + } + + const edges = new Array>(); + for (const [key, val] of Object.entries(item)) { + if (isObject(val)) { + edges.push({ label: key, to: val }); + } + } + + const label = `${item}`; + + return { + shape: "box", + edges, + color: item === obj ? "lightblue" : undefined, + label, + }; + } + ), }, } } else {