在Visual Studio Code中美化/格式化Java代码

27
我尝试过在这里这里提供的一些建议,但都不起作用。你如何为Java代码完成它或者是否有一种通用方法?顺便说一句,我安装了XML格式化程序,以便它可以工作,但没有成功。 输入图像描述 输入图像描述
3个回答

37

在VSCode中格式化JAVA文档需要按照以下步骤进行:

  1. 从VSCode的Extensions窗口安装插件:Red Hat的Java(TM)语言支持

    • 您可以从左侧对齐的侧边栏打开“Extensions”窗口,或简单地按下Ctrl+Shift+X
  2. 安装后,进入JAVA代码所在页面

    • 右键单击并选择使用...格式化文档
    • 在上方打开的命令面板中,选择Red Hat的Java(TM)语言支持选项

JAVA文档现在应该已经格式化完成。

附注:尝试使用Alt+Shift+F可能不适用于将默认格式化程序设置为Prettier - Code formatter或类似工具的用户。默认情况下,它不支持JAVA格式。
如果Red Hat的Java(TM)语言支持是唯一安装的格式化插件,则Alt+Shift+F可能适用于您。

如果您想将Alt+Shift+F绑定为格式化JAVA文档的快捷键
那么您可以通过以下步骤将以下配置添加到您的settings.json中:

  1. 按下Ctrl+,打开Settings
  2. 从右上角选择打开设置(JSON),无论是用户还是工作区设置。
  3. 将下面的JSON属性添加到其中并保存:
    "[java]": {
        "editor.defaultFormatter": "redhat.java",
      },

有没有Eclipse Theia或者打开VSCode的选项? - Banee Ishaque K
2
RedHat在VS Code上的Java插件简直是个笑话。它非常慢,显示不存在的错误,对于大型项目完全无法使用,总是内存不足或崩溃,与子模块一起使用时从未正常工作,经常无法捕捉到生成的源代码,经常神秘地将生成的源代码放入错误的文件夹中,我可以继续列举。尝试让它工作是一种极大的时间浪费。对于任何阅读此文的人:请自己一个忙,改用NetBeans的Java插件。即使它在技术上是Alpha版本,但在各方面都要好得多。 - Alvin Thompson
1
@AlvinThompson 我安装了NetBeans插件。这是我发现的问题:1)它无法运行或调试单个junit测试,除非添加surefire maven插件,而RedHat不需要任何额外的插件。2)对我来说,它比RedHat慢得多。3)当编辑单个java文件时,它没有上下文,例如自动添加导入,而RedHat可以(我编辑单个文件以与jshell一起使用)。4)最重要的是,与RedHat一样,它无法加载自定义设置格式化程序文件。我可以看到它会出现错误,但考虑到所有其他问题,我没有进一步调查。 - dudeNumber4

8

您还可以设置格式化程序配置文件,如此处所示:https://github.com/redhat-developer/vscode-java/wiki/Formatter-settings - Sangimed
在安装此扩展程序之前,我必须先安装OpenJDK:https://jdk.java.net/archive/ - Tonatio
3
问题在于,如果你只需要源代码格式化,那么这个软件实在是太臃肿了。 - Mike 'Pomax' Kamermans
@Mike'Pomax'Kamermans,哪个源代码格式化程序没有附带多余的软件?也许下面的解决方案是使用eclipse-java-google-style? - Timo
当你不说明“标准格式命令/快捷键”是什么时,这对一个完全新手没有帮助。 - Lee Meador

4

我觉得为每个项目单独存储配置(而不是全局存储)是一个好主意。

  1. 打开工作区设置的JSON文件。以下步骤适用于我的笔记本电脑:
    1. 按下 F1
    2. 选择 Preferences: Open Workspace Settings (JSON)
  2. 将以下内容粘贴到文件中 -
{
  "java.format.settings.url": "./eclipse-java-google-style.xml"
}
  1. 现在你可以在根文件夹中创建一个名为 eclipse-java-google-style.xml 的文件,其中包含设置。
  2. 在那里,你可以粘贴eclipse-java-google-style.xml的内容。可选地,将org.eclipse.jdt.core.formatter.join_wrapped_lines设置为false。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接