Visual Studio Code 格式 Java 在新行上打开大括号

问题描述 投票:0回答:4

如何让 Visual Studio Code 用新的大括号格式化 Java 文档?

即:

这个

public static void main(String args[]) {
}

对此

public static void main(String args[])
{
}

编辑:哎呀!!只需记住 .vscode/extensions 文件夹即可。然后我进入 /ryannaddy.vscode-format-0.0.6/package.json 并将 format.newLine 更改为 true 。 谢谢您的帮助。太开心了!!

java formatting visual-studio-code format curly-braces
4个回答
12
投票

要使用“Red Hat 对 Java(TM) 的语言支持”解决此问题,您可以使用 Eclipse 格式化程序文件。这允许您为每个场景非常具体地指定大括号位置。例如,

formatting.xml
显示所有“下一行”设置:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="12">
    <profile kind="CodeFormatterProfile" name="style" version="12">
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="next_line"/>
        <setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
    </profile>
</profiles>

有效值为

next_line
next_line_shifted
next_line_on_wrap
end_of_line

然后在 Visual Studio Code 的

settings.json
中:

{
    "java.format.settings.url": "/formatting.xml",
    "java.format.settings.profile": "style"
}

请参阅此文档了解一些使用详细信息。


2
投票

启动 VS Code 快速打开 (Ctrl+P),粘贴以下命令,然后 按回车键。

ext install vscode-format

Visual Studio 代码格式将允许您格式化大部分代码 文件。通过运行格式化命令来触发格式化: editor.action.format

将大括号放在同一行或下一行:

{
    "newLine": {
        "brace": true
    }
}

链接:https://marketplace.visualstudio.com/items?itemName=ryannaddy.vscode-format


1
投票

如果你想在 VS Code 中使用它,只需在下面添加这一行

settings.json

{
  "java.format.settings.url": "https://gist.githubusercontent.com/fbricon/c5960a86f0a21405a61b79c0f1b4a0fc/raw/16b9b75077d08ae8b36706718a8393268d2ea5d2/formatter.xml"
}

感谢这个要点


0
投票

就我而言,我的格式化程序设置位于

.setting/org.eclipse.jdt.core.prefs

实际上,这篇文章是有效的,我已经通过创建一个新项目进行了测试以进行比较。我不明白为什么这对新项目有效,而我的主项目却无效。因此,我比较了应用于每个项目的所有项目设置,并在

.setting/org.eclipse.jdt.core.prefs
文件中发现了差异。

Location of .setting/org.eclipse.jdt.core.prefs

我的新项目在该文件中只有编译器设置,而我的主项目有编译器+格式化程序设置,这就是为什么JSON文件中的设置无法应用。

我的解决方案是使用导出的 xml 格式化程序中的相同值更改该文件中格式化程序设置的值(我从 eclipse 导出了格式化程序 XML)。谢谢。

这是我的新项目内容

.setting/org.eclipse.jdt.core.prefs
:

eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.processAnnotations=enabled
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8

这就是我的主要项目中的内容:

...    
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
org.eclipse.jdt.core.compiler.processAnnotations=enabled
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.formatter.align_assignment_statements_on_columns=false
org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines=2147483647
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.align_variable_declarations_on_columns
...
© www.soinside.com 2019 - 2024. All rights reserved.