Vscode-ng-language-service: Angular 语言服务路线图

创建于 2019-05-30  ·  20评论  ·  资料来源: angular/vscode-ng-language-service

语言服务的原作者@chuckjaz离开团队已经一年多了。 从那时起,该团队一直在致力于各种雄心勃勃的目标,即常春藤编译器和 Bazel 与 CLI 的集成等。
现在版本 8 已经发布,我们想为语言服务的前进提供一些更新和路线图。

  1. 稳定性/性能✔️完成!
    确保语言服务的性能不会下降是我们的首要任务。 如果有的话,我们将继续解决稳定性问题。

  2. 过渡到 tsserver 插件 ✔️ 完成!
    在接下来的几个月里,我们将承担过渡到 tsserver 插件模型所需的剩余工作。 tsserver 插件的主要好处是性能(没有重复的 TS 编译)和没有版本不匹配(Angular 和 TS)。 大多数工作是确保外部 HTML 模板得到很好的支持。
    2019 年 11 月 11 日更新:虽然我们将继续支持插件模式,但我们决定继续维护独立扩展。 该扩展程序已完全改版以解决性能问题,并添加了许多功能。 一个新版本与 Angular 9 的发布一起发布到市场上。

  3. 错误修复/增强 ✔️ 完成!
    插件完成后,我们将解决一些长期存在的错误,例如模板类型检查和一些非常需要的功能增强。

  4. 将语言服务切换到 Ivy 编译器 ✔️ 完成!
    由于Ivy下的编译模型与View Engine下的编译模型明显不同,语言服务后端将不得不进行改造以确保未来的兼容性。

感谢您的所有反馈,如果您愿意贡献,请告诉我们!

最有用的评论

最新更新:Ivy 语言服务将在版本 11 中进行 Beta 测试。该版本目前计划于 2020 年 11 月 11 日发布。我们的目标是在这个全新的语言服务迭代中提高性能并提供更广泛的功能集。 新功能包括:

  1. Angular 模板中更好的类型
  2. 产生与编译器相同的诊断
  3. 荣誉用户的angularCompilerOptions

我们知道这已经很长时间了,但感谢您的支持和耐心!

所有20条评论

好吧,只是将它链接到这里,我有两个很好的描述性能严重的问题/错误:

对于第一个,有一种解决方法是不关闭至少最后一个打开的编辑器,而对于第二个,则只是禁用插件。 从我对插件的密集测试中,我可以说如果这两个修复了,插件几乎是完美的。

新版本的 Angular 扩展作为早期预览发布在 GitHub 上,请参阅https://github.com/angular/vscode-ng-language-service/releases/tag/v0.900.0-next.0。

如果您尝试一下,请告诉我们任何问题/错误。 谢谢!

@kyliau :我想在 Eclipse Wild Web Developer 中尝试集成更新的 Angular

@kyliau我按照说明安装了 v0.900.0-next.0,但是没有任何自动完成建议(例如组件选择器、属性、事件等)。

我很高兴地宣布 RC 版本已经发布,几周后一个全新的扩展将发布到 vscode市场
同时,如果您想尝试一下,请从发布页面下载二进制文件。
我们目前专注于工作项 (3),我们将在其中修复一些长期存在的错误。

我对第 4 点“将语言服务切换到 Ivy 编译器 [进行中]”有疑问

我们有自己的内部库,仅用于我们自己开发的应用程序中。 所以我们将它迁移到 Ivy,因为我们所有的代码库都一次性迁移了。 但是现在 vscode 不再识别库中的指令和组件。

这意味着目前最好的方法是,我们使用视图引擎编译库,直到语言服务完全支持 Ivy。 这样对吗? 如果是这样,是否有路线图何时支持语言服务?

使用ivy编译器的应用程序没有问题。 应用程序中的组件被正确解析。

@furti正如您所指出的,是的,现在必须使用 View Engine 编译库和应用程序,以便语言服务获取相应的metadata.json ,这是当今语言服务的基础。
@xiaoxiangmoe我正在与编译器团队合作,将 Ivy 完全集成到语言服务中。 目前,我们的目标是在版本 10 中发布 beta 版本,除非出现任何意外,否则应该会在 6 月底/7 月初左右发布。 由于持续的 WFH 情况,我们的计划有所中断,但我们会尽力坚持最初的路线图。

很高兴看到 angular 发布了 v10 🎉
“将语言服务切换到 Ivy 编译器”是否有任何更新?

@xiaoxiangmoe由于一些内部重组,常春藤语言服务的时间表已经
这项工作已经开始,我们已经招募了一些成员来增加这个项目的动力。
您可以在此处跟踪整个项目的进度。
我们计划与现有 LS 一起发布 Ivy LS,以便想要尝试“早期预览”的用户可以通过他们的编辑器设置进行。 敬请期待!

我认为表演还没有真正完成。 对于我和我认识的许多其他人来说,这个扩展一直是 CPU 高峰的最大来源,最近让 macOS 的粉丝们疯狂。

是的,我同意@DenysVuika。 几个月来我一直在使用这个插件。 我昨天放弃并禁用了它。 在我启动 vscode 和 ng web 服务器后,CPU 会在某个时候猛增并保持在那里,直到我重新启动 vscode。 Intellisense 将每天多次停止工作。 我被迫每天多次重启 vscode。 由于我禁用了它,一切都恢复了正常。 我也在 macOS 上。 以下是一些上下文信息:

角 CLI:10.0.1
节点:12.13.0
操作系统:达尔文 x64

角度:10.0.2
... 动画、通用、编译器、编译器-cli、核心、表单
... 平台浏览器、平台浏览器动态、路由器
常春藤工作区:是的

套餐版本

@angular-devkit/架构师 0.1000.1
@angular-devkit/build-angular 0.1000.1
@angular-devkit/build-optimizer 0.1000.1
@angular-devkit/build-webpack 0.1000.1
@angular-devkit/核心 10.0.1
@angular-devkit/schematics 10.0.1
@angular/cdk 10.0.1
@angular/cli 10.0.1
@角度/材料 10.0.1
@ngtools/webpack 10.0.1
@原理图/角度 10.0.1
@原理图/更新 0.1000.1
rxjs 6.6.0
打字稿 3.9.6
网络包 4.43.0

在我当前的 Angular 10 项目中,使用 Version: 1.48.0-insider 我的 HTML 模板中不再有任何 Angular Intellisense,也没有任何错误检查(就像我绑定到一个不存在的变量一样)。

最新更新:Ivy 语言服务将在版本 11 中进行 Beta 测试。该版本目前计划于 2020 年 11 月 11 日发布。我们的目标是在这个全新的语言服务迭代中提高性能并提供更广泛的功能集。 新功能包括:

  1. Angular 模板中更好的类型
  2. 产生与编译器相同的诊断
  3. 荣誉用户的angularCompilerOptions

我们知道这已经很长时间了,但感谢您的支持和耐心!

@kyliau这会与 angular v11.0.0-rc.2 或 v11.0.0-rc.3 一起发布吗?

@kyliau这会与 angular v11.0.0-rc.2 或 v11.0.0-rc.3 一起发布吗?

@xiaoxiangmoe Ivy 语言服务在 v11.0 中仍然处于实验性和选择加入状态,因为我们还有一些工作要做,以完善用户体验并解决一些错误。 如果你想尝试一下,你可以从https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1100.0-rc.0下载 RC 版本并安装.vsix手动文件。

由于这是该项目的一个重要里程碑,我们希望确保该扩展在稳定发布之前经过充分测试并且功能完整。 我们已经取得了巨大的进步,很高兴能与社区分享这项工作,但我们感谢在解决松散问题时多一点耐心。

@kyliau这会与 angular v11.0.0-rc.2 或 v11.0.0-rc.3 一起发布吗?

@xiaoxiangmoe Ivy 语言服务在 v11.0 中仍然处于实验性和选择加入状态,因为我们还有一些工作要做,以完善用户体验并解决一些错误。 如果你想尝试一下,你可以从https://github.com/angular/vscode-ng-language-service/releases/tag/v0.1100.0-rc.0下载 RC 版本并安装.vsix手动文件。

由于这是该项目的一个重要里程碑,我们希望确保该扩展在稳定发布之前经过充分测试并且功能完整。 我们已经取得了巨大的进步,很高兴能与社区分享这项工作,但我们感谢在解决松散问题时多一点耐心。

激活常春藤语言服务的正确方法是什么? 我已经将这个实验设置设置为true,但是它不能运行ngcc。 我之前试过手动运行它,但它不起作用。 有什么明显的步骤我没有采取吗?

我希望您不要像其他用户支持请求一样驳回此评论。 我知道你还没有准备好。 我只想知道测试这个的正确方法。

@Arkthur这是我的 angularCompilerOptions:

{
    "angularCompilerOptions": {
        "fullTemplateTypeCheck": true,
        "strictInjectionParameters": true,
        "strictInputAccessModifiers": true,
        "strictTemplates": true
    }
}

另外,如果你使用的是 vscode-ng-language-service v0.1100.1 或 v0.1100.3,请重新安装 v0.1100.0。 看来vscode-ng-language-service v0.1100.1 有严重的bug ,ivy 语言服务不能用。

酝酿已久,今天终于可以在 v11.1.0 中试用 Ivy 母语服务了!
Ivy-native LS 修复了许多在 View Engine 中无法修复的基本问题:

  • 增量编译性能,
  • 更强大的类型检查,
  • 与编译器等相同的诊断,

它还引入了一些新功能,例如在模板中查找变量的引用。

请从 vscode 市场下载,如果您有任何反馈,请告诉我们。
可以在发行说明中找到启用 Ivy-native LS 的

此页面是否有帮助?
0 / 5 - 0 等级