文章
· 十一月 6 阅读大约需 4 分钟

现代且易用的VSCode插件:基于PlantUML的InterSystems ObjectScript类图可视化

动机

直到开始新工作,我才了解到ObjectScript。实际上,Objectscript并不是一种年轻的编程语言。与 C++、Java 和 Python 相比,它的社区并不活跃,但我们很想让这里更有活力,不是吗?

我注意到,有些同事在理解大型项目中的类关系时感到棘手。目前还没有易于使用的现代化类图工具适用于ObjectScript。

相关工作

我尝试过相关的工作:

——InterSystems 类视图:
1. https://github.com/intersystems-community/ClassExplorer
这个工具很棒,类图显示清晰美观。但存在Docker构建问题:“#0 0.512 exec ./irissession.sh: no such file or directory”。我猜这是为Studio设计的支持功能,而非VSCode。它似乎需要手动导入项目,且需要一定配置才能使用。

2. https://github.com/gjsjohnmurray/vscode-objectscript-class-view
这是另一个给我带来灵感的伟大作品。类结构清晰,不仅支持项目中的类,也支持库中的类。但看起来像是VSCode大纲的增强版。

——其他语言的 VSCode 类图表视图插件

1. https://github.com/OH318/J-Diagram
自述文件很好地展示了使用 draw.io 的运行结果。但在本地测试时无法使用。所以我不会把它作为参考。

2. https://github.com/pierre3/PlantUmlClassDiagramGenerator
它相对较好,但需要一些配置。我的想法是先生成 uml,然后使用 PlantUML 生成类图。

——类图的最佳实现:
1. JetBrains产品(如IntelliJ IDEA和PyCharm)的类图功能非常出色。只需拖放类、点击超链接,即可轻松生成强大的类图。

2.VSCode typescript 类图插件
https://marketplace.visualstudio.com/items?itemName=AlexShen.classdiagra...

支持拖放、超链接点击、文件夹类图生成等功能。
我借鉴了它们的设计思路。但遗憾的是,这些工具都是闭源的,因此我需要自行设计项目。

InterSystems ObjectScript 类图视图

是一个 Visual Studio Code 扩展,可从 InterSystems ObjectScript (.cls) 文件生成 UML 类图。它提供交互式可视化和导航功能,基于PlantUML进行可靠的图表渲染。

主要功能

  • .cls 文件生成 UML 类图
  • 支持单个类和文件夹级图表生成
  • 在编辑器和资源管理器中集成右键上下文菜单
  • 可视化类关系、属性和方法
  • 基于 PlantUML 构建,可实现可靠的图表渲染
  • 使用 PlantUML Web 服务器生成图表(无需 Java)
  • 交互式类图浏览
    • 点击类名、属性或方法,快速跳转到相应的代码
    • 在 HTML 中嵌入 SVG 图表,实现流畅的交互
    • 类关系的可视化导航

我在另一个伟大的 objectscript 项目apiPub上测试了该插件。

我提供了两种模式:基于解析项目的本地文件系统或与虹膜集成生成类图。

生成类图


这种模式从本地项目解析类结构,不会生成库类的继承结构,也不能点击库类进入。

对于单个类:

文件夹

整个项目类图采用 SVG 格式,始终清晰明了。

通过 IRIS 集成生成类图

该功能依赖于 InterSystems 插件,它将从所选类中生成所有类属性、参数和方法。值得注意的是,该功能会生成整个继承层次结构,即使是本地项目中不存在的类也不例外。

在 VS Code 设置中配置 IRIS 连接:

  • 转到设置 > 扩展 > InterSystems ObjectScript 类图
  • 输入 IRIS 服务器主机、端口、命名空间、用户名和密码

Configure IRIS Settings

  • 在编辑器中打开 .cls 文件
  • 右键单击并选择 "生成 InterSystems 类图“
  • 扩展程序将连接到 IRIS 服务器,并使用服务器上的类信息生成图表
  • 单击图表中的类名、属性或方法,可以:
  • 在 IRIS Documatic 中打开类
  • 在 IRIS 中查看属性定义
  • 浏览 IRIS 中的方法实现Generate InterSystems ObjectScript Class Diagram

要求

操作系统 需要 可选(用于本地生成 PlantUML)
视窗 - VSCode 1.96.0+
- ObjectScript 类文件(.cls)
- Java 8+
Linux - VSCode 1.96.0+
- ObjectScript 类文件(.cls)
- Java 8+
- Graphviz

使用方法

  • 打开 .cls 文件并使用以下方法生成类图:
    • Ctrl+Alt+U 快捷方式
    • 右键单击文件或文件夹,选择"生成类图
  • 点击图中的元素,跳转到类定义、属性和方法

已知问题

  • 子类生成:缺少为当前类生成子类图的功能
  • 大型项目性能
    • 通过右键单击为大型文件夹生成图表时,可能会出现明显延迟
    • 为大型项目生成的网络视图/SVG 缺乏流畅的缩放功能和适当的缩放比例
  • IRIS Pwd 明文显示:密码不应显示为纯文本,此问题将在下一版本中修复。我没有存储连接信息,而且代码是开源的,所以您可以检查它是否安全。

如有任何问题,请在 GitHub 代码库中报告。

贡献与许可

  • 通过 GitHub贡献代码
  • 采用MIT许可协议

您可以在应用市场上找到此插件,欢迎在issue 中提出问题,并通过PR 贡献代码。

讨论 (0)1
登录或注册以继续