牛逼!实时可视化 Debug:VS Code 开源新工具,一键解析代码结构

5天前

来自机器之心
有没有一种更优雅的 DeBug 方式,以更简洁的信息快速帮我们找到代码的问题所在?
有的,它就是 VS Code 最新推出的可视化 DeBug,能以图的方式快速展示数据结构。
我们先看看效果,如下动图将断点设置为第 32 行定义双向链表,随后一行行运行代码就会在右图展现出对应的数据结构图。
这种可视化非常优雅,而且该工具也会根据数据结构以不同的方式展现,例如树形、表格、曲线和图等。如下动图展示几种不同的可视化方式:
效果上确实非常惊艳,它与之前的 DeBug 方式采用完全不同的展现形式。目前该 VS Code Debug Visualizer 在 JavaScript/TypeScript 上有比较好的效果,在 C#、Java 和 PHP 上也正在积极测试,其它语言也还都能用。
正确的使用姿势
安装此扩展程序后,使用命令 <Open a new Debug Visualizer View> 打开新的可视化视图。在此视图里,设置断点逐步执行后,表达式的执行与动态可视化都会展示在里面。右上角的刷新键可将当前的可视化工具视图弹出到新的浏览器窗口,同时还可以通过展开详细信息的窗口去选择数据提取器以及可视化调试器。
可视化调试器使用的是特定的 JSON 数据,相关支持的 JSON 数据模式可参考原 GitHub 项目。
当前的可视化表达式应该是作为 JSON 对象字符串来进行运算的,并与所支持的可视化调节器相匹配。而这个 JSON 字符串可能被单引号或者双引号所包含(也有可能没有引号),因此不能忽略转义符。
举一个案例:
"{ "kind": { "text": true }, "text": "some textmore text" }".
对于 TypeScript/JavaScript 等语言,因为已经集成了数据抽取器,因此可以直接自动可视化。而其它没有数据抽取器的语言,就需要自定义数据结构与可视化器之间的关系了
多种可视化器皆可定制
该扩展还内置了其他可自定义的可视化调节器,尤其在 debug 时使用起来非常直观,可以根据面对不同的处理对象,可选择更易于理解的可视化方式。比如图表可视化,Plotly 可视化,Tree 可视化,网格可视化,文本可视化等等。在其种类非常丰富的同时,操作性也较为简便,效果非常直观,小编选取了几种类型作为案例:
Plotly 可视化
AST 可视化
在使用 AST 可视化还会呈现源代码,在选择其节点时,还会突出显示源代码中的跨度。
Python 怎么解?
我们读者最常用的就是 Python 语言,然而遗憾的是,Debug Visualizer 并不支持 Python 数据结构的自动可视化。不过,Python 开发者还是非常热情的,他们尝试手动添加自定义可视化功能。
项目维护者正在讨论添加对 Python 的支持。
那么如果要手动调用 Debug Visualizer,开发者在 Demo 中新提交了一个 Python 示例。我们需要以 JSON 格式来表示数据,并完成自定义可视化,注意该 JSON 需要满足 Debug Visualizer 的格式定义。
如果在循环语句中设置断点,那么就可以导入 json_graph 来可视化结果,如下所示为 10 个节点的可视化展示。
在 Reddit 社区上,也有很多开发者在讨论 Python 是不是能用,有没有更便捷的方式自动可视化 DeBug,而不是在 DeBug 前还需要手动先配置一番。
VS Code Debug Visualizer 确实非常酷,但支持 Python 的它会更有意思。现在不论是项目维护者还是其它开发者,都在关注这个问题,期待过一段时间它能完美支持 Python。
项目地址:https://github.com/hediet/vscode-debug-visualizer
参考链接:https://www.reddit.com/r/programming/comments/f88zom/i_made_an_extension_for_visual_debugging_in_vs/
不看的原因确定内容质量低不看此公众号
(0)

相关推荐

  • 科研数据可视化 | 基于Python绘制环形布局关系图

    环形布局关系图 本文介绍的是通过Python制作的环形布局关系图,通过展现节点以及节点之间的关系,特别适合多个地理位置之间联系的一种可视化表现形式.将抽象概念进行形象性表达,将抽象语言进行具象图形可视 ...

  • Python制作可视化大屏全流程!(代码分享)

    今天就详细讲一下Pyecharts制作可视化大屏的过程. 注意,本文由于篇幅问题不会放置全部代码,会在文末提供全部代码的下载. 承接上文<用Python制作可视化大屏,特简单!>,不再赘述 ...

  • 如何在Power BI中随心所欲的搭配色彩?

    面对一个可视化对象,我们最先注意到的特征就是颜色,它的重要性不言而喻,在PowerBI中,配色同样是可视化的重头戏,本文来看看PowerBI中的如何设置各项颜色元素. PowerBI内置主题 Powe ...

  • 如何在Power BI中,DIY属于你的可视化地图?

    这篇文章来自星球嘉宾AgnesJ. 她分享了一个巧妙的自定义地图实现思路,利用这个思路,你可以随心所欲的画出自己想要的地图,比如小区地图.商场地图等,并且都是可以动态交互的哦. 下面直接进入正文. 如 ...

  • 每家牛逼房企都需要一个心心相印的新媒体大V

    文\潘永堂 老潘说点不一样的声音,地产下半场: 每家房企都应该有一个产品体验官 每家房企都应该有一个首席风险官 每家房企都应该有一个首席内容官 每家房企都应该有一个客户社群官 -- 今天老潘说说每家优 ...

  • 迄今为止最牛逼的代码补全工具,减少一半操作,实时补全

    机器之心报道 Kite 是一个著名的 Python 代码补全工具,支持在一些 IDE 上作为插件,帮助开发者提升代码效率.Kite 官方宣布将会增加「Intelligent Snippets」功能.据 ...

  • 腾讯,干掉 Redis 项目,正式开源、太牛逼啦!

    大家好,我是磊哥. Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口,可提供大容量.低成本.强持久化 ...

  • 牛逼!又一开源力作发布

    父老们,乡亲们!你知道人脸.商品.车辆识别,以图搜图乃至自动驾驶,背后的技术是什么嘛? 起初小编觉得不就是图像分类.目标检测这些东西嘛,有什么难的?但能熟练这些应用的BAT高级工程师们都轻松年薪百万, ...

  • 腾讯牛逼!终于开源了自家的 Tencent JDK——Kona!!

    是的,继阿里 2019/03 开源基于 OpenJDK 的长期支持版本 Alibaba Dragonwell 之后,腾讯也发布了自家的开源免费的 JDK 版本--Tencent Kona,必须替小马哥 ...

  • 百度开源又一力作,牛逼啊!!!

    三次登陆 GitHub Daily 全球趋势榜,2.1k 星标,图像分类.目标检测.语义分割.实例分割等视觉任务全覆盖,更重要的是简单!简单!简单!不需要数学基础,不需要是编程大牛,只要下载就可以快速 ...

  • 牛逼,微软开源浏览器自动化工具

    小白带你学编程 2021-07-08 你们平常用的浏览器自动化工具是什么?比较出名的是 Selenium,用过的大家应该知道.另外还有一个比较出名的是 PhantomJS,针对的是无界面的浏览器.这类 ...

  • 牛逼plus的springboot maven车牌识别开源系统

    回复'架构师'获取资源 今天介绍一款车牌识别开源系统- yx-image-recognition,大伙需要的可以收藏哈!!! gitee开源地址: https://gitee.com/admin_yu ...

  • 曾国藩:哪有什么天生牛逼,不过是慢慢地磨、笨笨地熬

    洞见 不是每一种观点,都可以叫洞见 1295篇原创内容 公众号 作者:洞见·李思圆 耐得住寂寞,才能守得住繁华. ♬ 点上方绿标可收听洞见主播简宁朗读音频 你身边有没有这样一种人: 曾经他普普通通坐在 ...