VS Code Java 3月更新|代码补全、Maven 以及 Java 插件预览版本新升级!
Nick Zhu
Senior Program Manager, Developer Division at Microsoft
大家好,欢迎来到 Visual Studio Code Java 的 3 月更新。这次我们将为您带来一些关于我们代码补全的优化、Maven 改进以及我们最新的 Java 插件预览版本的最新更新。让我们开始吧!
更多生成代码片段的快捷方式
由于我们对 Java 的语言支持是通过Eclipse JDT Language Server 提供的,所以生成某些代码片段(例如System.out.println() )的快捷方式大多基于 Eclipse 风格。例如,System.out.println()的快捷方式是sysout 。但是,我们从很多用户那里听说他们习惯了其它 IDE(例如 IntelliJ IDEA)的快捷方式,并且希望看到 VS Code 也支持这些 IDE 的快捷方式。因此,我们也在插件中添加了这些常用代码片段的快捷方式。以下是我们支持的快捷方式的列表
| 代码片段 | Eclipse风格快捷方式 | IDEA风格快捷方式 |
|---|---|---|
| System.out.println() | sysout | sout |
| System.err.println() | syserr | serr |
| 当前函数签名的System.out.println() | systrace | soutm |
| public static void main(String[] args) {} | main | psvm / main |
| Iterator (for 循环) | foreach | iter |
以下是展示这些新快捷方式的演示

构造函数的代码补全优化
关于代码补全,目前用户反馈最多的问题之一是在 VS Code 中编写构造函数时,用户一般希望补全的提示可以和定义的类型直接相关(例如, List list = …,提示“…”部分的时候应该建议ArrayList等列表类型),但是,在当前的插件中通常不是这种情况。
在过去的几次迭代中,我们已经调查了这个问题并进行了更改以改善这种体验。通过这些新的改进,代码补全将更加了解用户正在创建的类型,并为构造函数建议最相关的类型。例如, 定义List将导致对 new ArrayList补全的建议。类似地,一个String[]将导致一个数组类型的建议来完成构造函数。以下是一个对该优化的演示:

我们仍在对上述功能进行一些调整,并将在接下来的几个版本中发布。
今年早些时候,我们发布了 2022 年路线图,更好的代码补全体验是我们的重点之一。我们希望继续改进这一领域,所以如果您希望看到有关代码补全质量和性能的任何其它反馈,请告诉我们(提供反馈的渠道在最下方)。
Maven 改进
除了代码完成的新功能外,我们还对 Maven 插件进行了一些改进。
显示 Maven POM 文件路径
在之前的插件中,当用户打开多个同名项目时,很难区分项目属于哪个POM文件。此外,显示 POM 文件的确切路径有助于为用户提供更多信息。因此,我们加入了一个小的改进:当用户将鼠标悬停在 Maven 插件视图中的主节点上时,会显示一个提示来显示完整的 Maven POM 文件路径。这是此改进的屏幕截图:

POM 版本中的代码补全现在可以正确替换版本
当自动补全一个 Maven 依赖的版本时,以前我们的插件会将结果添加到现有文本中而不是替换它,从而导致我们的用户体验出现问题。我们在最近的版本中修复了这个问题,现在自动补全将正确替换版本,类似的改进也适用于artifactId和groupId 。以下是一段演示:

新的Java插件预览版本机制
自1.63 版以来,Visual Studio Code 已支持插件的预览版本机制,因此用户对于一款插件,可以选择安装”预览版本(Pre-Release Version)”或者是“发布版本(Release Version)”。目前,我们已经为 Gradle for Java 和 Maven for Java 插件启用了预发布通道,并将在本月底对于Java插件包中其它的插件启用预览机制。对于总是喜欢获取最新功能的用户,可以选择安装预览版本并给我们第一手的反馈。对于偏向稳定的用户,可以像以前一样继续使用“发布版 (Release version)”(默认)
您可以使用 Visual Studio Code 中“安装”按钮旁边的附加按钮轻松地在预览版本(Pre-Release Version)和发布版本(Release Version)之间切换(如下图所示)


反馈与建议
2022 年,Visual Studio Code 上的 Java 会有很多激动人心的更新,一如既往,您的反馈和建议对我们非常重要,将有助于我们未来的产品塑造。有几种方法可以给我们留下反馈
- 填写中文问卷
- 在这个帖子下留言
- 在我们的GitHub repo上创建Issue
- 发送电子邮件到vscjfeedback@microsoft.com
资源
以下链接和资源能帮助您更好地了解Java on Visual Studio Code的相关信息
VS Code Java 3月更新|代码补全、Maven 以及 Java 插件预览版本新升级!的更多相关文章
- VS Code Java 2 月更新!教育特别版:单元测试、GUI开发支持、Gradle项目创建、以及更多!
新春快乐!欢迎来到 Visual Studio Code Java 的 2 月更新,这个月我们给大家带来了一期教育特别版.每年的年初是许多学校开学的时间,为了给学生和教师提供在 Visual Stud ...
- VS Code插件Vue2 代码补全工具
一.简介 此扩展将Vue 2代码片段和语法突出显示添加到Visual Studio代码中. 这个插件基于最新的Vue官方语法高亮文件添加了语法高亮,并且依据Vue 2的API添加了代码片段. 支持语言 ...
- Jupyter Notebook主题字体设置及自动代码补全
Jupyter Notebook用久了就离不开了,然而自带的主题真的不忍直视.为了视力着想,为了自己看起来舒服,于是折腾了一番..在github上发现了一个jupyter-themes工具,可以通过p ...
- vue(element)中使用codemirror实现代码高亮,代码补全,版本差异对比
vue(element)中使用codemirror实现代码高亮,代码补全,版本差异对比 使用的是vue语言,用element的组件,要做一个在线编辑代码,要求输入代码内容,可以进行高亮展示,可以切换各 ...
- [jetbrains系列] 外链第三方库+代码补全设置
jetbrains系列的IDE真的是太好用了,有种相见恨晚的感觉. 在开发过程中第三方库是必不可少的,在开发的时候如果有一个可以补全的IDE可以节省查文档的时间. 举个例子:给pycharm配pysp ...
- vim代码补全-spf13,YouCompleteMe
vim代码补全 现在的图形界面的IDE(Integrated Development Environment)一般具有语法高亮,语法检查,自动补全功能,大大提高了编程的效率. vim作为文本编辑器其强 ...
- ADT中的代码补全设置
设置自动补全代码 刚刚学Android,有很多变量和方法 都不熟悉.需要有提示,才更加方便. 快捷方式:Alt + / 可以出现代码提示. 默认的只有输入“ .” 以后才会有代码补全提示,可作如 ...
- eclipse 代码补全
代码补全 window-> properties -> Java ->Editor ->content Assist -> Auto activation trigger ...
- Netbeans源代码编辑技巧——使用代码补全和代码生成
原文 Netbeans源代码编辑技巧——使用代码补全和代码生成 使用代码补全生成代码 一般来说,代码补全对于自动填充缺失的代码是有帮助的,例如标识符和关键字.截至 NetBeans IDE 6.0,您 ...
随机推荐
- MySQL数据库初识、下载使用(针对库、表、记录的增删改查)
今日内容概要 数据演变史 数据库软件的本质 MySQL简介 下载与安装 基本配置 基本SQL语句 内容详细 1.数据演变史 # 1.单独的文本文件 没有固定的存放位置和格式 文件名:user.txt ...
- Solution -「HAOI 2018」「洛谷 P4491」染色
\(\mathcal{Description}\) Link. 用 \(m\) 种颜色为长为 \(n\) 的序列染色,每个位置一种颜色.对于一种染色方案,其价值为 \(w(\text{出现恰 ...
- 2.go-GIN快速入门
一.go mod安装 1.为什么要安装go mod 在项目中需要某个依赖包,必须使用go get安装,否则运行go run main.go会报错.这种方式在依赖包较多时不便于管理,于是在go1.11版 ...
- RENIX流量发送模式——网络测试仪实操
信而泰的RENIX平台支持5种传输模式, 如下图所示. 模式一: continuous Continuous:连续发送流 持续发送方式是默认的发送模式, 它不会自动的停止, 会一直发送, 直到用户手 ...
- 【C# 线程】线程池 epoll和IOCP之比较
总结:IOCP :我的打印文件放在店里面排队,轮到我打印了,店长帮我打印一下,打印好了通知我来拿 Epoll :我的打印文件放在店里面排队,轮到我叫我一下,我自己来打印. 直入正题:Epoll 是L ...
- kibana命令复制索引
POST _reindex { "source": { "index": "原索引名称" }, "dest": { &q ...
- js数组 把竖向数组排列为横向数组
项目中会遇到为了渲染方便要把后台给的竖向数组排列为横向数组 例:后台传回的数组为[2004, 2005, 2006, 2007, 2008] [46890000, 55900500, 33786400 ...
- 【数据科学基础复习 - 3】PCA主成分分析
本文仅就PCA原理及应用作一简单总结, 具体的数学原理等考试后再补上. 1. PCA推导 目标 对于正交空间中的样本点,现想将其投影到一个低维超平面中使得所有样本可在该平面中得到恰当的表达. 什么叫恰 ...
- WPF-ListView单元格设置文字换行
第2-6行 1 <ListView Name="HumidifyEventLog" Style="{StaticResource ListViewStyle}&qu ...
- Web端网站兼容性测试如何进行?来看看浏览器的兼容性测试要点
软件兼容性测试工作的目标是保证软件按照用户期望的方式进行交互.随着用户对来自各种类型软件之间共享数据能力和充分利用空间同时执行多个程序能力的要求,测试软件之间能否协作变得越来越重要. 平台的兼容性,包 ...