刚建了一个QQ群,欢迎加入一起交流学习 (群号: 746153004)
这是一个基于Volar开发的ArkTS VSCode扩展。🌹为似乎到现在还没有支持VSCode,现有的VSCode市场中的ArkTS扩展大都非常简陋,所以决定自己写一个。
Features
- 🌹 1.x版本开始具备完整的
ArkTS语言支持,全量支持所有ArkTS语法。
- 🖊️ 完善的JSON Schema支持。支持以下文件的JSON Schema:
build-profile.json5 模块级别/项目级别配置
oh-package.json5 模块级别/项目级别配置
code-linter.json5 模块级别/项目级别配置
resources/element/下所有的color.json等的kv值配置
module.json5 配置
mock-config.json5配置
hvigor-config.json5配置
main_pages.json5配置
- 📦 1.x版本开始支持安装和管理
OpenHarmony SDK,并且支持根据当前打开的项目自动探测API版本,发出弹窗提示下载或切换
- ✨ 1.x版本开始支持
.ets文件的代码格式化和大纲展示功能
- ✂️ 支持和
TypeScript一样的snippets,并且添加了Struct Declaration等ArkTS独有的Snippets
- 🥇 1.1.6+ 版本开始支持完美的
$r 函数补全和跳转、支持 module.json5 文件的补全和跳转、resources/element/ 下所有json文件点击查询全局引用;由 @arkts/project-detector hvigor项目分析器提供强力支撑 ✊
食用方法 📖
有装过DevEco Studio的情况下
安装本插件之后配置OpenHarmony SDK路径和HMS SDK路径(可选),然后重启IDE即可。这两个SDK路径一般都在DevEco Studio的安装目录下有个叫sdk的文件夹里可找到。
在MacOS下,一般右键DevEco Studio本身,选择显示包内容,然后就能看到包里面就有一个sdk的文件夹,里面就包含OpenHarmony SDK和HMS SDK。
一般情况下,OpenHarmony SDK基本都具备如下目录结构(参考自版本DevEco Studio 6.0 Beta 2):
ets/
js/
native/
previewer/
toolchains/
HMS SDK基本都具备如下目录结构(参考自版本DevEco Studio 6.0 Beta 2):
ets/
native/
previewer/
toolchains/
没有装过DevEco Studio的情况下
目前本插件仍然不能完全替代鸿蒙开发,建议您还是装一个DevEco Studio为好;如果实在是不想装那么插件内也提供OpenHarmony SDK的下载、解压安装、无缝切换功能,您可以在安装此插件之后,在命令面板中搜索> ETS: Install OpenHarmony SDK,按照提示一步步来即可。
另外,目前暂时插件不支持HMS SDK的下载、解压安装、无缝切换功能,请您自行下载DevEco Studio或下载鸿蒙的Command Line Tool进行安装。
关于ets.baseSdkPath ⚠️
此设置是用来配置OpenHarmony SDK的基础路径,所有版本的OpenHarmony SDK都会安装在此路径下。
假如该路径配置为${os.homedir}/OpenHarmony,那么插件会自动在~/OpenHarmony/[API版本,数字]文件夹下安装OpenHarmony SDK(比如你装的是API18,那么就是~/OpenHarmony/18),并且会自动探测当前项目所使用的API版本,并自动切换到对应的OpenHarmony SDK。
如你现在想安装API20的OpenHarmony SDK,那么插件会自动在~/OpenHarmony/20文件夹下安装OpenHarmony SDK:
~/OpenHarmony
├── 10
├── 18
└── 20
└── ets/
└── js/
└── native/
└── previewer/
└── toolchains/
该行为和DevEco Studio中的设置 -> OpenHarmony SDK功能是完全一致的。
VSCode 文件图标包 🖼️
推荐使用Material Icon Theme,我已经给Material Icon Theme提交了PR,目前将.ets、.d.ets直接用上了TypeScript官方的文件图标包,升级到v5.22.0之后的版本都可用,这样至少好看一些了 👇

PR地址: https://github.com/material-extensions/vscode-material-icon-theme/pull/2966
配置
| Key |
Description |
Type |
Default |
ets.sdkPath |
%configuration.ets.sdkPath.description% |
string |
"" |
ets.baseSdkPath |
%configuration.ets.baseSdkPath.description% |
string |
"${os.homedir}/OpenHarmony" |
ets.hmsPath |
%configuration.ets.hmsPath.description% |
string |
"" |
ets.lspDebugMode |
%configuration.ets.lspDebugMode.description% |
boolean |
false |
ets.hdcPath |
%configuration.ets.hdcPath.description% |
string |
"" |
ets.ignoreWorkspaceLocalPropertiesFile |
%configuration.ets.ignoreWorkspaceLocalPropertiesFile.description% |
boolean |
false |
ets.resourceReferenceDiagnostic |
未匹配到的 $r() 资源引用的诊断级别 |
string |
"error" |
ets.sdkList |
A list of installed OpenHarmony SDK paths. Keys should follow the pattern API[number] (e.g., API9, API10). |
object |
{} |
命令
| Command |
Title |
ets.restartServer |
ETS: %command.restartServer% |
ets.installSDK |
ETS: %command.installSDK% |