添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
老实的火腿肠  ·  于静-信息工程学院·  3 月前    · 
鼻子大的汤圆  ·  Visual Studio 2017 ...·  1 月前    · 
勤奋的柿子  ·  Java on Visual Studio ...·  1 月前    · 
风度翩翩的充值卡  ·  handler processing ...·  2 年前    · 
奔放的钢笔  ·  docker - How to avoid ...·  2 年前    · 
胆小的签字笔  ·  mysql ...·  2 年前    · 
July 26th, 2023

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

反编译器支持升级

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

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

Decompiler Experience Upgrade
反编译器体验升级

动态开启/关闭嵌入提示

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

Inlay hints settings
Inlay hints settings

这里是一个简单的演示

Inlay hints demo
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 #2587 PR #2574 PR #2664

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

优化Request Handler调度规则

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

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

优化完成请求处理程序

相关Pull Request: PR #2642 PR #2639 PR #2621 PR #2614 PR #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的插件,可以点击 这个链接 下载该插件。

    安装 Java 插件包

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

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

    反馈与建议

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

  • 填写中文问卷
  • 在这个帖子下留言
  • 在我们的GitHub repo上 创建Issue
  • 发送电子邮件到 [email protected]
  • 以下链接和资源能帮助您更好地了解Java on Visual Studio Code的相关信息

  • 了解 更多 Visual Studio Code上Java 的更多信息
  • 逐步探索 有关Visual Studio Code的Java教程
  • 反馈与建议

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

  • 填写中文问卷
  • 在这个帖子下留言
  • 在我们的GitHub repo上 创建Issue
  • 发送电子邮件到 [email protected]
  • 以下链接和资源能帮助您更好地了解Java on Visual Studio Code的相关信息

  • 了解 更多 Visual Studio Code上Java 的更多信息
  • 逐步探索 有关Visual Studio Code的Java教程
  • Java on Azure Tooling的更新 – 2023年6月
    大家好,欢迎阅读 Java on Azure 工具的六月更新。在本次更新中,我们将介绍 Azure Spring Apps...
    Jialuo Gan
    0 comment 重要通知: 在 2023 年 9 月 30 日之前将您的 Azure 工具包更新到最新版本
    我们想通知您,Azure 工具包中的 Docker Host 功能将受到与 Azure Active Directory Graph API...
    Jialuo Gan
    0 comment 您可以查看这篇文档:https://github.com/microsoft/vscode-java-debug#launch,搜索console字段。

    console – The specified console to launch the program. If not specified, use the console specified by the java.debug.settings.console user setting.
    internalConsole – VS Code debug console (input stream not supported).
    integratedTerminal – VS Code integrated terminal.
    externalTerminal – External terminal that can be configured in user settings.

    在这个字段中,选用internalConsole,内置终端就可以按照您说的颜色进行显示了