文章
· 8 hr 前 阅读大约需 4 分钟

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

工作动机

我是在开始新工作之前才知道 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"。我猜这是工作室的一个支持功能,而不是 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
登录或注册以继续