动机
直到开始新工作,我才了解到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进行可靠的图表渲染。
.png)
主要功能
- 从
.cls文件生成 UML 类图 - 支持单个类和文件夹级图表生成
- 在编辑器和资源管理器中集成右键上下文菜单
- 可视化类关系、属性和方法
- 基于 PlantUML 构建,可实现可靠的图表渲染
- 使用 PlantUML Web 服务器生成图表(无需 Java)
- 交互式类图浏览
- 点击类名、属性或方法,快速跳转到相应的代码
- 在 HTML 中嵌入 SVG 图表,实现流畅的交互
- 类关系的可视化导航
我在另一个伟大的 objectscript 项目apiPub上测试了该插件。
我提供了两种模式:基于解析项目的本地文件系统或与虹膜集成生成类图。
生成类图
这种模式从本地项目解析类结构,不会生成库类的继承结构,也不能点击库类进入。
对于单个类:
.png)
文件夹
.png)
整个项目类图采用 SVG 格式,始终清晰明了。
.png)
通过 IRIS 集成生成类图
该功能依赖于 InterSystems 插件,它将从所选类中生成所有类属性、参数和方法。值得注意的是,该功能会生成整个继承层次结构,即使是本地项目中不存在的类也不例外。
在 VS Code 设置中配置 IRIS 连接:
- 转到设置 > 扩展 > InterSystems ObjectScript 类图
- 输入 IRIS 服务器主机、端口、命名空间、用户名和密码

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

要求
| 操作系统 | 需要 | 可选(用于本地生成 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许可协议
.jpg)
.png)