插件架构
本插件衍生出了一系列包括但不限于研究和逆向 DevEco Studio 本身而诞生出来的子项目,作者通通将其封装成了一系列的 npm 包,提供编程式的API供本插件以及广大其他开发者直接使用。
flowchart TD
ETS-VFS["@arkts/vfs"]
ETS-PROJECT-DETECTOR["@arkts/project-detector"] -->|"Using it in"| ETS-LANG-SERVICE
ETS-DEBUGGER["@arkts/debugger"] -->|"Using it in"| VSCODE-EXTENSION
ETS-LANG-PLUGIN["@arkts/language-plugin"] -->|"Using it in"| ETS-TS-PLUGIN["@arkts/typescript-plugin"]
ETS-LANG-PLUGIN -->|"Using it in"| ETS-LSP["@arkts/language-server"]
OHOS-TS-PLUGIN["ohos-typescript"] -->|"Using it in"| ETS-LSP
ETS-TS-PLUGIN -->|"defined in package.json"| VSCODE-EXTENSION("Naily's ArkTS Support")
ETS-LSP -->|"Use it in"| VSCODE-EXTENSION
ETS-SDK-DOWNLOADER["@arkts/sdk-downloader"] -->|"Using it in"| VSCODE-EXTENSION
ETS-IMAGE-MANAGER["@arkts/image-manager"] -->|"Using it in"| VSCODE-EXTENSION
ETS-LANG-SERVICE["@arkts/language-service"] -->|"Using it in"| ETS-LSP
独立仓库项目
Section titled “独立仓库项目”下面是一些独立仓库项目,由于一些原因(如:该功能通过逆向 DevEco Studio 本身)因此没有放在 ohosvscode/arkTS 仓库中,而是独立成一个仓库,方便其他开发者研究学习使用。
@arkts/debugger 鸿蒙 ArkTS 项目调试器。该 npm 包通过研究 DevEco Studio 本体而诞生,感谢 github@sanchuanhehe 的逆向成果。
@arkts/image-manager 鸿蒙模拟器镜像管理器, 用于管理鸿蒙模拟器镜像的下载、安装、删除等操作。该 npm 包通过研究 DevEco Studio 本体而诞生。
@arkts/project-detector 基于 Rust 编写的项目分析器,指定一个基础工作目录,扫描此目录下所有鸿蒙工程,并提供 NAPI 绑定到 TypeScript。
@arkts/sdk-downloader OpenHarmony SDK 下载器,支持流式下载/接续下载 OpenHarmony SDK, 并提供 github action 直接可用于你的 GitHub Action 的 CI/CD 流水线中。
核心仓库项目
Section titled “核心仓库项目”下面是一些包含在 ohosvscode/arkTS 仓库中的核心项目:
@arkts/language-plugin:volar语言插件扩展,主要处理不同环境下(TS插件环境/LSP语言服务器环境)针对不同的文件屏蔽不同的功能。@arkts/typescript-plugin:TypeScript语言插件,内置在Naily's ArkTS Supportvscode 插件中,它使用@arkts/language-plugin屏蔽掉了OpenHarmony SDK目录中的TypeScript文件的所有LSP功能;@arkts/language-service:ArkTS语言额外的一些语言功能服务,它依赖于@arkts/project-detector项目分析器,提供一些额外的补全功能如$r函数的补全和跳转、module.json5文件的补全和跳转等功能;@arkts/language-server:ArkTS语言服务器。它提供一个bin可以直接运行,同时也内置在了Naily's ArkTS Supportvscode 插件中。@arkts/vfs: 基于ArkTS的虚拟文件系统,为ArkTS版 twoslash 提供基础支持。
基本上核心的几个包就这些,还有一些非核心的如
@arkts/shared等这边就不一一列举了。