Java on Visual Studio Code 的更新 – 2023 年 7 月 动态开启/关闭嵌入提示、代码补全性能的持续优化、反编译器支持升级等

2023-07-27 15:03:02 +08:00
 winffee

大家好,欢迎来到 Visual Studio Code for Java 的 7 月更新!在这篇博客中,我们将为您提供有关反编译器支持的重要更新。此外,我们将分享更多最近代码补全性能提升的进展,以及 AI 相关的更新。让我们开始吧!

反编译器支持升级

Java 反编译器对于理解第三方库、调试和学习编写良好的代码至关重要。它可以帮助开发人员将编译后的 Java 字节码反编译回人类可读的 Java 源代码,从而提高生产力和代码理解力。

此前,用户反映说我们的插件内置的反编译器对反编译和调试代码还是不够方便。在我们的最新版本中,我们在插件包中嵌入了功能强大的 FernFlower Java 反编译器(该反编译器目前为一个开源项目,并在 IntellIJ IDEA 中使用)。该反编译器允许您直接单击库,它会自动将 Bytecode 反编译为可读的源代码。在反编译的代码中,您可以像平常一样进行调试,阅读代码。我们希望这个功能能够极大地提高您的开发效率。以下一个简单的演示。

反编译器体验升级

动态开启/关闭嵌入提示

嵌入提示(Inlay Hint) 是 Visual Studio Code 和许多其他开发工具中的一项流行功能。它在源代码中添加额外的显示信息,帮助您了解代码的作用,例如参数名称、参数类型、变量类型等。然而,我们从用户那里了解到,有时这些信息模糊了原始代码并让界面变得拥挤。实际上,Visual Studio Code 有一个设置,允许您动态切换嵌入提示,以便您可以在键入代码时方便地打开/关闭它,从而轻松调整您的体验。可以通过搜索“inlay hints”并从参考下图来找到该设置。

这里是一个简单的演示

代码补全性能的持续优化

我们一直强调代码完成性能的重要性及其在提高开发人员生产力方面的关键作用。在我们之前的博客文章中,我们展示了最近代码补全性能的改进。在本月,我们很高兴分享更多的进展和技术细节。

代码补全完成时间的减少(与之前的版本相比

插件版本 平均值 P99 (百分位) P95 (百分位) P90 (百分位) P75 (百分位) P50 (百分位)
1.18 (对比 1.17) 13.85% 56.15% 49.36% 50.22% 13.69% 34.38%
1.19 (对比 1.18) 55.65% 17.19% 17.01% 15.18% 14.14% 9.52%

如表所示,在 1.19 版本之后,代码完成延迟在平均时间和所有百分位数排名中均有显着降低。

代码完成优化工作与 Eclipse Java Development (JDT) 语言服务器紧密相关,我们的工作主要集中在三个主要领域。

优化诊断作业 (Diagnostic Job)

相关 Pull Request: PR #2587PR #2574PR #2664

Eclipse JDT Language Server 中的诊断作业负责分析 Java 源代码并提供有关潜在问题(例如编译器错误和警告)的反馈。这些 PR 引入了对诊断作业处理的优化,从而提高了性能并减少了提供代码诊断的延迟。通过微调诊断分析,开发人员可以更快地收到反馈并更迅速地深入了解其代码库。

优化 Request Handler 调度规则

相关 Pull Request: PR #2637PR #2641PR #2643PR #2659 PR #2660

请求处理程序的有效调度对于处理来自 IDE 的传入代码完成请求至关重要。提到的 PR 重点是优化 Eclipse JDT 语言服务器使用的调度规则,以有效地确定优先级并处理代码完成请求。这些改进使服务器能够更有效地分配资源,从而减少争用并加快响应时间。通过简化请求处理程序调度,开发者可以体验响应更快的代码完成工作流程。

优化完成请求处理程序

相关 Pull Request: PR #2642PR #2639PR #2621 PR #2614PR #2638

完成请求处理程序负责根据 IDE 中的上下文生成代码完成建议。这些 PR 对完成请求处理流程进行了优化,从而可以更快、更准确地生成建议。我们的工作主要集中在以下两个方面:

Semantic Kernel Java SDK 发布

最后,我们很高兴分享 Semantic Kernel 的 Java SDK 已经在 7 月 19 日正式发布了。该 SDK 的源代码可以在这个GitHub Repo上找到,而 Java 开发者可以在 Maven 的 Central Repo 上找到 Java 的 0.2.6-alpha 版本包。Semantic Kernel 可以将大语言模型( LLM )与现有的编程语言(如 C#、Python 和 Java )集成在一起,减少自然语言语义和内存管理等复杂任务。Java 开发者更是可以利用 Java SDK 与 GPT 进行更复杂的集成。

目前 Visual Studio Code 也推出了 Semantic Kernel 的插件,可以点击这个链接下载该插件。

安装 Java 插件包

要使用上述所有功能,请在 Visual Studio Code 上下载并安装Extension Pack for Java

如果您是一位 Spring 开发者,并且正在编写 Spring Boot 相关的程序,您也可以下载并安装Spring Boot 插件包,获得与 Spring Boot 有关的专属开发体验

反馈与建议

2023 年,Visual Studio Code 上的 Java 会有很多激动人心的更新,一如既往,您的反馈和建议对我们非常重要,将有助于我们未来的产品塑造。有几种方法可以给我们留下反馈

资源

以下链接和资源能帮助您更好地了解 Java on Visual Studio Code 的相关信息

1053 次点击
所在节点    Java
4 条回复
Richardhtw
2023-07-28 09:52:34 +08:00
🤙
FanyFull
2023-07-28 21:15:50 +08:00
小项目一直在坚持使用。希望不久的将来应对大项目也能够游刃有余。
cxsz
2023-07-29 09:34:29 +08:00
开发团队辛苦啦
fpure
2023-08-01 13:50:08 +08:00
好耶,反编译器终于来了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/960234

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX