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

Java on Visual Studio Code 的更新 – 2022 年 3 月

  •  
  •   winffee · 2022-03-22 10:00:08 +08:00 · 3971 次点击
    这是一个创建于 1011 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,欢迎来到 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<String> list = …,提示“...”部分的时候应该建议 ArrayList 等列表类型),但是,在当前的插件中通常不是这种情况。

    在过去的几次迭代中,我们已经调查了这个问题并进行了更改以改善这种体验。通过这些新的改进,代码补全将更加了解用户正在创建的类型,并为构造函数建议最相关的类型。例如,定义 List<String>将导致对 new ArrayList<String>补全的建议。类似地,一个 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 JavaMaven for Java 插件启用了预发布通道,并将在本月底对于Java插件包中其它的插件启用预览机制。对于总是喜欢获取最新功能的用户,可以选择安装预览版本并给我们第一手的反馈。对于偏向稳定的用户,可以像以前一样继续使用"发布版(Release version)"(默认)

    您可以使用 Visual Studio Code 中"安装"按钮旁边的附加按钮轻松地在预览版本(Pre-Release Version)和发布版本(Release Version)之间切换(如下图所示)

    反馈与建议

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

    资源

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

    25 条回复    2022-04-13 23:04:27 +08:00
    2NUT
        1
    2NUT  
       2022-03-22 10:07:43 +08:00   ❤️ 2
    支持, vs code 基本一统天下了; 考虑到未来 基于浏览器 /云的 ide 更是如此

    idea 目前的主要优势就在于 推断提示 和重构了;而这些并不是什么技术难题

    如果 fleet 不能明显超越 vs code 话, 我觉得 jetbrains 也不用标榜 stand with ukraine 了, 没几年就凉了

    问下 eclipse 的 这个 language server 和 ms 家的 lsp 有啥区别
    2NUT
        2
    2NUT  
       2022-03-22 10:11:50 +08:00
    同时还得缅怀下 sublime atom 等先驱, 不是他们不好, 只是微软技术和资金太强了...

    目前我还是重度使用 sublime, 主要是 当作加强版本的 记事本,啥插件都不装
    Dragonphy
        3
    Dragonphy  
       2022-03-22 10:15:03 +08:00
    什么时候 vscode 能把 idea 抄个七七八八就可以迁移了
    fpure
        4
    fpure  
       2022-03-22 10:30:50 +08:00
    支持 vscode 一统江湖👍
    cweijan
        5
    cweijan  
       2022-03-22 11:23:39 +08:00
    话说楼主也是开发者之一吗
    fgwmlhdkkkw
        6
    fgwmlhdkkkw  
       2022-03-22 11:26:10 +08:00
    我编辑的是"pom.json",但是会自动生成"pom.xml"。
    实现这个我给你磕两个头……
    fgwmlhdkkkw
        7
    fgwmlhdkkkw  
       2022-03-22 11:26:33 +08:00
    @fgwmlhdkkkw #6 🐶🐶🐶
    sodayo
        8
    sodayo  
       2022-03-22 11:51:45 +08:00 via Android
    感谢 Java on Visual Studio Code 的开发者,现在 vscode 是我主要的 Java 编码平台
    Chism
        9
    Chism  
       2022-03-22 13:02:15 +08:00
    可以方便地构建 spring boot 项目吗?
    muyiluop
        10
    muyiluop  
       2022-03-22 13:36:30 +08:00
    借楼问一下,有没有什么好的办法快速设置几套配置文件,然后根据不同的项目,应用不同的配置么。
    比如我 Java 项目就只启用 Java 相关的插件。前端相关的就只启用前端的插件。
    winffee
        11
    winffee  
    OP
       2022-03-22 13:42:21 +08:00
    Meteorite
        12
    Meteorite  
       2022-03-22 13:46:36 +08:00
    @Chism 可以的,不过需要安装一个 Spring Boot Extension Pack 。
    winffee
        13
    winffee  
    OP
       2022-03-22 13:48:30 +08:00
    @sodayo 感谢您一如既往的支持,注意到 VS Code 是您主要的开发工具,我们 VS Code 项目组想邀请您参加一个邮件访谈以了解您的使用反馈,感兴趣的话可以发邮件给 [email protected] ,标题“参与 VS Code 访谈”
    Meteorite
        14
    Meteorite  
       2022-03-22 13:48:41 +08:00
    @muyiluop 这个我记得好像 VS Code 那边有个 issue ,应该是用户呼声很高的 issue 吧,看看他们想怎么弄。具体链接有点找不到了。。。
    zhujz
        15
    zhujz  
       2022-03-22 15:07:31 +08:00
    感觉越来越不错了,厉害
    nekomiao
        16
    nekomiao  
       2022-03-22 15:45:15 +08:00 via Android
    不懂就问,目前 vs code 对比 idea 有什么 idea 没有的功能和优势吗
    learningman
        17
    learningman  
       2022-03-22 15:47:19 +08:00
    @nekomiao #16 free (
    Xhack
        18
    Xhack  
       2022-03-22 15:59:50 +08:00
    @nekomiao 没有,目前 vs code 对比 idea 只有 vscode 没有的功能优势
    efaun
        19
    efaun  
       2022-03-22 16:12:51 +08:00
    @nekomiao #16 vs code 对比 idea 唯一的优势只有免费吧
    sodayo
        20
    sodayo  
       2022-03-22 16:28:23 +08:00
    @winffee #13 我下班之后会发送邮件的. 目前我在使用 vscode remote 用于开发 springboot 工程以及 vue 工程.
    fpure
        21
    fpure  
       2022-03-22 16:29:13 +08:00
    @nekomiao 以我的体验来说,idea 改一个文件之后半天其他文件才会报红,而 vscode 基本可以瞬间报红
    jeffxjh
        22
    jeffxjh  
       2022-03-22 16:36:38 +08:00
    @fpure 同感,修改了某个类或方法只有在编译时其他文件报错才会显示,不知道有解决办法没有
    ZE3kr
        23
    ZE3kr  
       2022-03-23 07:29:33 +08:00 via iPhone
    @nekomiao 安装在服务器上,本地用浏览器使用,远程开发很方便。idea 占用高,projector 性能差,fleet 还不知道怎么样
    winffee
        24
    winffee  
    OP
       2022-03-24 15:21:21 +08:00
    @fgwmlhdkkkw 具体是要实现什么样的功能呢?不是特别理解
    fyeeme
        25
    fyeeme  
       2022-04-13 23:04:27 +08:00
    @winffee
    格式化如何完全兼容 idea? 这样可以在团队中使用了,而不仅仅是个人项目
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5383 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:06 · PVG 15:06 · LAX 23:06 · JFK 02:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.