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

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

  •  1
     
  •   winffee · 2023-07-27 15:03:02 +08:00 · 1055 次点击
    这是一个创建于 485 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    反编译器支持升级

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

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

    Decompiler Experience Upgrade, image 反编译器体验升级

    动态开启/关闭嵌入提示

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

    Inlay hints settings Inlay hints settings

    这里是一个简单的演示

    Inlay hints demo, image Inlay hints demo

    代码补全性能的持续优化

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

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

    插件版本 平均值 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 对完成请求处理流程进行了优化,从而可以更快、更准确地生成建议。我们的工作主要集中在以下两个方面:

    • 优先返回补全建议列表并延迟计算插入的文本
    • 减少返回的补全响应负载大小并减少序列化/反序列化成本 通过增强完成请求处理程序,开发者可以体验到代码完成建议的速度和相关性的显着提高,从而使他们能够更有效地编写代码。 我们想感谢开源社区里面参与这些 PR 的每一位成员。在增强代码补全方面取得的进展是我们持续致力于提高 Visual Studio Code Java 性能的一个充满希望的里程碑。除了代码补全之外,我们还将继续完善和优化 Visual Studio Code 的可靠性和兼容性。请继续关注我们即将发布的博客文章。

    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 的插件,可以点击这个链接下载该插件。

    Semantic Kernel

    安装 Java 插件包

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

    Image javapack

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

    Spring boot extension pack

    反馈与建议

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

    资源

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

    4 条回复    2023-08-01 13:50:08 +08:00
    Richardhtw
        1
    Richardhtw  
       2023-07-28 09:52:34 +08:00
    🤙
    FanyFull
        2
    FanyFull  
       2023-07-28 21:15:50 +08:00
    小项目一直在坚持使用。希望不久的将来应对大项目也能够游刃有余。
    cxsz
        3
    cxsz  
       2023-07-29 09:34:29 +08:00
    开发团队辛苦啦
    fpure
        4
    fpure  
       2023-08-01 13:50:08 +08:00
    好耶,反编译器终于来了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2506 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 02:33 · PVG 10:33 · LAX 18:33 · JFK 21:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.