疯狂的技术宅

以前出于工作目的,编写和翻译了大量的技术文章,以前端为主,删掉了过时的、毫无营养的内容,留下的都是精华。


  • 首页

  • 分类

  • 标签

  • 归档

  • 关于本站

  • 回到主站

  • 搜索

Debug Visualizer:用于 VS Code 调试中的可视化数据插件

时间: 2020-02-19 分类: 前端技术   字数: 1096 字 阅读: 3分钟
标签: #Debug Visualizer# #Debug# #Visualizer# #可视化#
  • 本文译自:https://marketplace.visualstudio.com/items?itemName=hediet.debug-visualizer
  • 译者:疯狂的技术宅

用于在调试期间可视化数据结构的 VS Code 扩展。

用法

安装此扩展后,使用命令 Open a new Debug Visualizer View 打开新的可视化器视图。在这个视图中,你可以输入一个表达式,该表达式在逐步分析你的代码时会进行评估和可视化,例如

{ 
    kind: { graph: true }, 
    nodes: [ { id: "1", label: "1" }, { id: "2", label: "2" } ], 
    edges: [{ from: "1", to: "2", label: "edge" }]
}

你可以通过编写自己的函数,从自定义数据结构中提取这些调试数据。请参阅 https://github.com/hediet/vscode-debug-visualizer/raw/master/data-extraction/README.md 以获取 createGraphFromPointers 的文档。

集成式展示台

可视化工具用于显示由数据提取器提取的数据。可视化工具是(大部分)React 组件,位于扩展程序的 Web 视图中。

img

图形可视化

Graphviz 和 vis.js 可视化器渲染与 Graph 接口匹配的数据。

interface Graph {
	kind: { graph: true };
	nodes: NodeGraphData[];
	edges: EdgeGraphData[];
}

interface NodeGraphData {
	id: string;
	label: string;
	color?: string;
}

interface EdgeGraphData {
	from: string;
	to: string;
	label: string;
	id?: string;
	color?: string;
	weight?: number;
}

graphviz 可视化工具使用 SVG 查看器来渲染由 viz.js 创建的 SVG。

img

img

可视化

export interface Plotly {
	kind: { plotly: true };
	data: Partial<Plotly.Data>[];
}
// See plotly docs for Plotly.Data.

img

Tree Visualization

Tree 可视化

树可视化器渲染与 Tree 接口匹配的数据。

interface Tree<TData = unknown> {
	kind: { tree: true };
	root: TreeNode<TData>;
}
interface TreeNode<TExtraData> {
	id: string | undefined;
	name: string;
	value: string | undefined;
	emphasizedValue: string | undefined;
	children: TreeNode<TExtraData>[];
	data: TExtraData;
	isMarked: boolean;
}

img

AST 可视化

AST 可视化器渲染与 Ast 接口匹配的数据。

interface Ast
	extends Tree<{
			position: number;
			length: number;
		}>,
		Text {
	kind: { text: true; tree: true; ast: true };
}

除树视图外,还显示文本表示。

img

文本可视化

文本可视化器渲染与 Text 接口匹配的数据。

interface Text {
	kind: { text: true };
	text: string;
	mimeType?: string;
	fileName?: string;
}

mimeType 和 fileName 的文件扩展名用于语法突出显示。

SVG 可视化

SVG可视化器渲染与 Svg 接口匹配的数据。实际的 SVG 数据必须存储在 text 中。

interface Svg extends Text {
	kind: { text: true; svg: true };
}

点图可视化

点图可视化器渲染与 DotGraph 接口匹配的数据。

interface DotGraph extends Text {
	kind: { text: true; dotGraph: true };
}

Viz.js(Graphviz)用于渲染。

集成数据提取器

数据提取器可将任意值转换为可视化数据。他们存在于被调试者中。此扩展会自动注入以下数据提取器。你也可以注册自定义数据提取器。

ToString

只需对值调用 .toString() 并将结果视为文本。

TypeScript AST

  • 直接可视化 ts.Node
  • Record 和 [ts.Node] 的可视化。如果记录包含 fn 键,则将为每个节点显示它们的值。

As Is 数据提取器

将数据直接输入到可视化工具。

使用方法 ‘getDebugVisualization’

在值上调用 .getDebugVisualization(),并将结果视为对可视化工具的直接输入。

Plotly y-Values

使用 plotly 绘制数字数组。

对象图

构造一个图形,其中包含从表达式求值到的对象可到达的所有对象。使用广度搜索构造图。在 50 个节点后停止。

UI 功能

  • 多行表达式:按 shift+enter 添加新行,按 ctrl+enter 计算表达式。当只有一行时,enter 提交当前表达式,但是当有多行时,enter插入另一个换行符。

    img

局限性

当前,仅 JavaScript(以及TypeScript)的值可以可视化,并且仅支持少量可视化。该体系结构足够强大,将来可以支持其他语言。

@hediet/debug-visualizer-data-extraction

一个通过提供基础结构以实现和注册自定义数据提取器的库。有关更多信息,请参见库的 README 。

也可以看看

这个扩展可以与我的库 @hediet/node-reload 一起很好地工作。他们在一起提供了一个交互式 typescript 演示器。

img

标签: #Debug Visualizer# #Debug# #Visualizer# #可视化#

标题:Debug Visualizer:用于 VS Code 调试中的可视化数据插件

链接:https://fe-tech.viewnode.com/post/202002/19/

作者:疯狂的技术宅

声明: 本博客文章除特别声明外,均采用 CC BY-NC-ND 4.0 国际许可协议( 知识共享署名-非商业性使用-禁止演绎 4.0),转载请注明出处!

在React 中缩放、裁剪和缩放图像
了解 ECMAScript 规范,第1部分
  • 文章目录
  • 站点概览
疯狂的技术宅

疯狂的技术宅

退休程序员,硬件发烧友,人工智能爱好者。写写代码喝喝茶,晒晒太阳带带娃。

457 日志
8 分类
583 标签
GitHub
友情链接
  • viewnode
  • mofish
标签云
  • Javascript 172
  • Node.Js 62
  • Vue 36
  • Typescript 28
  • 实战项目 28
  • 面试 21
  • React 20
  • Css 17
  • 面试题 16
  • 教程 13
  • Promise 12
  • Chrome 9
  • Debug 9
  • 调试 9
  • 资源 9
  • Deno 8
  • Dom 8
  • 杂谈 8
  • 正则表达式 8
  • 测试 8
  • 用法
  • 集成式展示台
    • 图形可视化
    • 可视化
    • Tree Visualization
    • Tree 可视化
    • AST 可视化
    • 文本可视化
    • SVG 可视化
    • 点图可视化
  • 集成数据提取器
    • ToString
    • TypeScript AST
    • As Is 数据提取器
    • 使用方法 ‘getDebugVisualization’
    • Plotly y-Values
    • 对象图
  • UI 功能
  • 局限性
© 2018 - 2022 疯狂的技术宅 All Rights Reserved
Powered by - Hugo v0.99.0 / Theme by - NexT
Storage by 俺的服务器 / 冀ICP备2022010157号
0%