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

Visual Studio Code 上已有两百万 Java 开发者! 2022 年 11 月的更新 -- 后缀完成和导入优化

  •  
  •   winffee · 63 天前 · 2618 次点击
    这是一个创建于 63 天前的主题,其中的信息可能已经有所发展或是发生改变。

    大家好,我们很高兴与大家分享一个好消息,现在 Visual Studio Code 上已有超过 200 万 Java 开发者,这要来自于长期社区以及用户的支持,所以谢谢你们!

    对于 11 月的更新,我们为您带来了全新的代码编辑功能,例如后缀补全、优化的组织导入。此外,调试器得到了一个很好的更新,因为我们支持一个名为"Step Into Target (直接进入函数)"的新功能。最后,我们对 Spring 组件进行了一些视觉增强,让我们开始吧。

    后缀完成

    后缀补全让您可以在刚刚键入的表达式后添加代码片段,从而提高您的工作效率。这是 JetBrain 产品中的一项流行功能,社区也通过GitHub要求我们的插件提供这一项功能。通过对上游的一些调查和更改,我们已经我们的最新版本中支持后缀补全。

    我们目前支持的后缀快捷方式如下:

    快捷键 模板内容 描述
    cast ((SomeType) expr) 将表达式转换为新类型
    else if (!expr) 创建一个否定的 if 语句
    for for (T item : expr) 创建一个 for 语句
    fori for (int i = 0; i < expr.length; i++) 创建一个遍历数组的 for 语句
    forr for (int i = expr.length-1; i >= 0; i–) 创建一个 for 语句,以相反的顺序遍历数组
    if if (expr) 创建一个 if 语句
    nnull if (expr != null) 创建一个 if 语句并检查表达式是否不解析为 null
    null if (expr == null) 创建一个 if 语句,检查表达式是否解析为 null
    sysout System.out.println(expr) 将受影响的字符串发送到 System.out.println (..) 调用
    throw throw expr 抛出给定的异常
    var T name = expr 创建一个新变量
    while while (expr) {} 创建一个 while 循环

    这是此功能的演示:

    我们计划继续添加更多后缀快捷方式,敬请期待。

    组织 /清理导入(Organize Import)的优化

    组织导入(Organize Import)是 Java 开发人员在代码编辑过程中最常见的操作之一。我们针对这个场景做了一些优化。

    • QuickFix 中删除所有未使用的导入

    我们已将此选项添加到 QuickFix (灯泡图标),因此您可以同时删除所有未使用的导入。

    • QuickFix 添加所有缺失的导入

    如果有未解析的类,您还可以使用 QuickFix 添加所有缺少的导入并从下拉列表中选择类

    • 从 Source Action 菜单添加所有缺失的导入

    另一种添加所有缺失导入的方法是右键单击调出菜单,然后选择"Source Action",您也会在那里看到"Add all missing imports"。

    这是上述所有功能的演示

    我们将继续围绕"组织导入"场景添加更多改进,您可以在这个 GitHub 问题中找到我们所有的未来计划。请随时在那里留下您的反馈或评论。

    调试新功能 –Step Into Target (直接步入函数)

    调试包含许多嵌套函数调用的语句可能会很麻烦,因为您可能不得不单步执行您并不真正感兴趣的函数。为了改善这种情况,调试适配器协议支持了"Step Into Target"功能,该功能显示用于直接进入您感兴趣的函数的 UI 。

    在我们最新的 Java 插件中,我们已经开始支持此功能。当调试在语句上停止时,您可以从菜单中选择"Step Into Target",这使您可以直接进入您感兴趣的函数或目标。这是此功能的演示:

    Spring 组件的图示

    Spring 开发者的体验一直是我们的焦点。这一次,我们为编辑区域添加了一些视觉增强功能,以便开发者可以更好地识别 Spring 组件并与 Spring Boot Dashboard 进行交互。

    当您使用最新版本的 Spring Boot 插件包,您会在编辑器区域中的 Spring bean 和 Endpoint mapping 旁边找到绿色图标。这为您提供了这是一个 Spring 组件的视觉线索。当悬停在这些组件上时,将弹出一个提示,您将看到有关此组件的一些详细信息以及在 Spring Boot Dashboard 中打开它的链接。这是此功能的快速演示。

    安装 Java 插件包

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

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

    反馈与建议

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

    资源

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

    16 条回复    2022-12-05 14:43:40 +08:00
    tianxin8431
        1
    tianxin8431  
       63 天前   ❤️ 1
    啥时候能把 refactor 做的好一些
    zeze0556
        2
    zeze0556  
       62 天前
    现代编辑器的优点就是把人变得弱智
    Hylenbin
        3
    Hylenbin  
       61 天前
    实在是太棒啦!早就期待 VS Code 能上这些功能 不用再到处找插件实现这些功能了
    eurry
        4
    eurry  
       61 天前
    已经从 IDEA 转到 vscode 半年了
    kkocdko
        5
    kkocdko  
       61 天前 via Android
    太好啦!比起 idea ,还是更喜欢 vscode 这种更透明的方案
    leeyuzhe
        6
    leeyuzhe  
       61 天前 via Android
    终于有.var 了!
    MrBrand
        7
    MrBrand  
       60 天前
    最新版 vscode 发现一个 bug ,macos 程序坞上右键退出,需要两次操作才能退出。在 macOS Catalina 和 macOS Ventura 两台电脑上都是
    MrBrand
        8
    MrBrand  
       60 天前
    @MrBrand 先关闭窗口,再去程序坞操作退出
    kophuai
        9
    kophuai  
       60 天前 via iPhone
    大家怎么解决和 idea 同事一起开发 格式化代码的格式不一样的问题。( idea 的格式没办法完全导出?
    winffee
        10
    winffee  
    OP
       59 天前
    @tianxin8431 请问有什么具体的意见呢?是对现有功能不满意还是想要提出新的功能请求?
    winffee
        11
    winffee  
    OP
       58 天前
    @kophuai 你可以尝试使用 Prettier 扩展。在两个 IDE 中正确配置即可。
    kophuai
        12
    kophuai  
       58 天前
    @winffee 看了下应该没办法满足需求, 主要是同事们都是使用 idea , 如果没办法直接兼容 idea 的格式化格式成本就上去了。 要大家都使用一个插件 /所有项目添加配置文件过于麻烦了。
    iamyow
        13
    iamyow  
       57 天前
    我有一个 springboot 项目,bean 是用 xml 配置文件注入的。项目能正常跑,但是 VScode 的插件无法识别这类 bean ,导致我无法在 xml 和对应的 bean 文件跳转,像这样<bean id="XXXService" class="com.***.service.impl.XXXServiceImpl"/>,而且 class 属性输入包名时也无法弹出智能提示。有没有人有这样的问题?
    tianxin8431
        14
    tianxin8431  
       56 天前
    @winffee 当然是希望能对标 idea 的 refactor ,我印象中 vscode 的 java pack 只支持改名
    Richardhtw
        15
    Richardhtw  
       55 天前
    如果有 IDEA 的 Simplify 功能就好了。
    比如脑子犯困了,写了很蠢的代码:

    ```java
    private static boolean foo(int num) {
    if (num > 0) {
    return true;
    } else {
    return false;
    }
    }
    ```
    这时候按一下 alt + enter ,代码就会简化为 `return num > 0;`。
    期待 VS Code 也能有这样的功能。
    Meteorite
        16
    Meteorite  
       53 天前
    @iamyow 这个我也有,我去 GitHub 开个 issue 问问
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   1595 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 04:26 · PVG 12:26 · LAX 20:26 · JFK 23:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.