diff --git a/karate-core/src/main/java/com/intuit/karate/debug/DapServerHandler.java b/karate-core/src/main/java/com/intuit/karate/debug/DapServerHandler.java index 72f9b70e2..87828803d 100644 --- a/karate-core/src/main/java/com/intuit/karate/debug/DapServerHandler.java +++ b/karate-core/src/main/java/com/intuit/karate/debug/DapServerHandler.java @@ -160,6 +160,14 @@ private List> variables(Number frameId) { map.put("value", "(unknown)"); } map.put("type", v.type.name()); + switch (v.type) { + case LIST: + case MAP: + map.put("presentationHint", "data"); + break; + default: + // do nothing + } map.put("evaluateName", k); // if > 0 , this can be used by client to request more info map.put("variablesReference", 0); @@ -196,6 +204,7 @@ private void handleRequest(DapMessage req, ChannelHandlerContext ctx) { .body("supportsRestartRequest", true) .body("supportsStepBack", true) .body("supportsVariableType", true) + .body("supportsValueFormattingOptions", true) .body("supportsClipboardContext", true)); ctx.write(event("initialized")); ctx.write(event("output").body("output", "debug server listening on port: " + server.getPort() + "\n")); @@ -281,7 +290,7 @@ private void handleRequest(DapMessage req, ChannelHandlerContext ctx) { String reqContext = req.getArgument("context", String.class); ScenarioRuntime evalContext = FRAMES.get(evalFrameId.longValue()); String result; - if ("clipboard".equals(reqContext)) { + if ("clipboard".equals(reqContext) || "hover".equals(reqContext)) { try { Variable v = evalContext.engine.vars.get(expression); result = v.getAsPrettyString(); diff --git a/karate-junit4/src/test/java/com/intuit/karate/debug/DapServerRunner.java b/karate-core/src/test/java/com/intuit/karate/debug/DapServerRunner.java similarity index 83% rename from karate-junit4/src/test/java/com/intuit/karate/debug/DapServerRunner.java rename to karate-core/src/test/java/com/intuit/karate/debug/DapServerRunner.java index b67513866..ad2e373f9 100644 --- a/karate-junit4/src/test/java/com/intuit/karate/debug/DapServerRunner.java +++ b/karate-core/src/test/java/com/intuit/karate/debug/DapServerRunner.java @@ -1,12 +1,12 @@ package com.intuit.karate.debug; -import org.junit.Test; +import org.junit.jupiter.api.Test; /** * mvn exec:java -Dexec.mainClass="com.intuit.karate.cli.Main" -Dexec.args="-d 4711" -Dexec.classpathScope=test * @author pthomas3 */ -public class DapServerRunner { +class DapServerRunner { @Test public void testDap() {