V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
largershallow
V2EX  ›  华为

做了个 vscode 插件,可以用 cursor 写 ArkTS 鸿蒙项目了!

  •  
  •   largershallow · 2025 年 2 月 10 日 · 440 次点击
    这是一个创建于 436 天前的主题,其中的信息可能已经有所发展或是发生改变。

    开局求个 star✨谢谢🥹祝各位大佬新的一年财源广进了🙏 Github 开源地址:https://github.com/Groupguanfang/arkTS

    AI 时代到来,好多人都在用 cursor 写代码,但是写鸿蒙的就没有这么好运了,华为自己的 DevEco Studio 基于 Idea 改的,就很麻😑 于是当我尝试使用 VsCode 打开一个鸿蒙项目,最刺眼的便是 ArkTS 语言没有一点代码高亮😢于是就搜了一下看看有没有相关的插件…

    果然,华为官方应该不会出 VSCode 插件的(悲😭

    截止目前( 2025/2/3 ),我在 VSCode 市场上只找到这两个插件;一个开源到了 gayhub ,一个开源在了 gayee ( bushi

    image.png

    但是实际用下来,面对线上真实项目的开发,这两个插件还是有很多问题的————太简陋。且不提代码跳转等,比如说下面这几个:

    • @ComponentV2等二代状态管理装饰器的补全支持,对 API13 的支持
    • 不正确的代码高亮,正确的代码高亮写法应该是要扩展现有 TypeScript 语法高亮,但是两个插件的作者都是自己写了一个自己的代码高亮,就…高亮的不是很彻底,哈哈😇

    这些都是刚需,现在这两个插件的作者仍然还没有跟进😭

    于是,我便打算自己写一个自己的 ArkTS 插件😋下面就是这个插件的一些功能:

    Features✨

    • 和 TS几乎一模一样的代码补全,高亮,跳转,几乎一应俱全,插件全部都来自 TypeScript Language Server 扩展而来;
    • 关掉了 TypeScript 诊断信息;去掉所有红线🤣毕竟 ArkTS 改了 TS 的语法,诊断信息一开一大片一大片的红线,因此写代码的时候必须得你自己脑子里进行类型推断(其他两个插件不也一样😜);
    • 增加了一堆鸿蒙项目特有的 JSON Schema ,什么build-profiles.json5oh-package.json5都有支持,具体看项目 README 有介绍;
    • 提供了一个npm 包,里面打包转换了最新的API 13的 API ,只需要一点简单的步骤就可以轻松得到几乎完美的类型提示🔔

    image.png

    插件的一些不足

    这个插件还有许多不足,比如说上面提到的一些:

    • 没有任何 TS 的诊断信息(这也是没办法👐,工作量大,欢迎 PR );
    • struct关键字在背后偷偷被我换成了class😇(不过你就说能不能跑吧,这高亮跳转无敌了)
    • import/export语句暂时还没有任何.ets 文件的提示,这个正在策划怎么去做,也欢迎 PR ;
    • 最后一个,也可能是工作量大且耗脑力的活,就是 README 文件里讲的,把BlockStatement后面的链式调用互换位置,😭实在是不知道怎么写。。这个问题解决了就能解决下面这问题:

    image.png

    不过,还是有一些办法能拿到提示,比如点到上面去:

    image.png

    只能勉勉强强这么用着了。

    最后

    下一步,我应该会研究,加上build hap 包等相关功能的集成,接着看吧🤔

    最后奉上 MakretSpace 地址:点击前往

    这个插件基于Volar.js,感谢各位大佬的付出🙏

    Volar.js 仓库地址

    目前尚无回复
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1167 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 23:19 · PVG 07:19 · LAX 16:19 · JFK 19:19
    ♥ Do have faith in what you're doing.