From a368584adb3259070ff9cb9c948ac958edcdec2f Mon Sep 17 00:00:00 2001 From: Naoto Ono Date: Thu, 24 Nov 2022 21:16:18 +0900 Subject: [PATCH] Revert "Merge pull request #162 from ono-max/patch-3" This reverts commit b6a7d5e869eb8985e04eb7db24dbf405e6b26307, reversing changes made to d20d421c370a5d899a6933179f7cdffbf249b411. @ko1, the author of ruby/debug, advised me to support `::DEBUGGER__::NaiveString` in debugvisualizer.gem instead of the extension because of the following reasons: * If the class name is changed, it's easy to modify it. * Less interaction between the client(the extension) and the backend(debug.gem) is better. --- .../RbVisualizationSupport.ts | 26 ++++--------------- 1 file changed, 5 insertions(+), 21 deletions(-) diff --git a/extension/src/VisualizationBackend/RbVisualizationSupport.ts b/extension/src/VisualizationBackend/RbVisualizationSupport.ts index 6aac377..434cede 100644 --- a/extension/src/VisualizationBackend/RbVisualizationSupport.ts +++ b/extension/src/VisualizationBackend/RbVisualizationSupport.ts @@ -1,4 +1,4 @@ -import { DataExtractionResult, DataExtractorId, DataResult } from "@hediet/debug-visualizer-data-extraction"; +import { DataExtractionResult, DataResult } from "@hediet/debug-visualizer-data-extraction"; import { hotClass, registerUpdateReconciler } from "@hediet/node-reload"; import { Config } from "../Config"; import { DebuggerViewProxy } from "../proxies/DebuggerViewProxy"; @@ -96,9 +96,10 @@ class RbVisualizationBackend extends VisualizationBackendBase { } }; } - - const wrappedExpr = await this._getExpression(preferredExtractorId || '', expression, frameId); - + const preferredId = preferredExtractorId || ''; + const wrappedExpr = ` + DebugVisualizer.to_debug_visualizer_protocol_json("${preferredId}", ${expression}) + `; const reply = await this.debugSession.evaluate({ expression: wrappedExpr, frameId, @@ -138,21 +139,4 @@ class RbVisualizationBackend extends VisualizationBackendBase { }; } } - - private async _getExpression(preferredId: string | DataExtractorId, expression: string, frameId: number | undefined) { - // From version 1.7, `::DEBUGGER__::NaiveString` class is introduced to get whole body of String. - // https://github.com/ruby/debug/commit/2f510f0ed685da2f78b370fb8898ffbd2a4f1cf7 - const reply = await this.debugSession.evaluate({ - expression: "defined? ::DEBUGGER__::NaiveString", - frameId, - context: this.defaultContext - }); - const wrappedExpr = `DebugVisualizer.to_debug_visualizer_protocol_json("${preferredId}", ${expression})`; - // Because reply.result is '"constant"', we use includes method here. - if (reply.result.includes('constant')) { - return `::DEBUGGER__::NaiveString.new(${wrappedExpr})`; - } else { - return wrappedExpr; - } - } }