插件架构
flowchart TD
ETS-VFS["@arkts/vfs"]
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-LANG-SERVICE["@arkts/language-service"] -->|"Using it in"| ETS-LSP
ETS-PROJECT-DETECTOR["@arkts/project-detector"] -->|"Using it in"| ETS-LANG-SERVICE
@arkts/language-plugin:volar语言插件扩展,主要处理不同环境下(TS插件环境/LSP语言服务器环境)针对不同的文件屏蔽不同的功能。@arkts/typescript-plugin:TypeScript语言插件,内置在Naily's ArkTS Supportvscode 插件中,它使用@arkts/language-plugin屏蔽掉了OpenHarmony SDK目录中的TypeScript文件的所有LSP功能;@arkts/project-detector: 基于Rust编写的项目分析器,指定一个基础工作目录,扫描此目录下所有鸿蒙工程,并提供NAPI 绑定到TypeScript,仓库地址:https://github.com/ohosvscode/project-detector@arkts/language-service:ArkTS语言额外的一些语言功能服务,它依赖于@arkts/project-detector项目分析器,提供一些额外的补全功能如$r函数的补全和跳转、module.json5文件的补全和跳转等功能;@arkts/language-server:ArkTS语言服务器。它提供一个bin可以直接运行,同时也内置在了Naily's ArkTS Supportvscode 插件中。@arkts/sdk-downloader:OpenHarmony SDK下载器,用于流式下载OpenHarmony SDK,并提供github action直接可用于你的 GitHub Action 的 CI/CD 流水线中。@arkts/vfs: 基于ArkTS的虚拟文件系统,为ArkTS版 twoslash 提供基础支持。
基本上核心的几个包就这些,还有一些非核心的如
@arkts/shared等这边就不一一列举了。