【问题标题】:Visual Studio Code java format document braces new lineVisual Studio Code java 格式文档大括号换行
【发布时间】:2017-12-03 01:41:23
【问题描述】:

如何让 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


    【解决方案1】:

    就我而言,我的格式化程序设置在.setting/org.eclipse.jdt.core.prefs

    实际上,this 文章有效,我通过创建一个新项目进行测试进行比较。我不明白为什么这对那个新项目有效,而我的主要项目却没有。因此,我比较了适用于每个项目的所有项目设置,并发现 .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
    ...
    

    【讨论】:

      【解决方案2】:

      要使用“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_linenext_line_shiftednext_line_on_wrapend_of_line

      然后在 settings.json 中获取 Visual Studio 代码:

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

      有关使用详情,请参阅this documentation

      【讨论】:

        【解决方案3】:

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

        ext install vscode-format
        

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

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

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

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

        【讨论】:

        • 我之前已经安装过了。而且我在我的设置中找不到 editor.action.format。更糟糕的是它在同一行用大括号格式化我的 C# 代码。 >.>
        • 我认为这是因为不同的代码风格。在 C# 中,开发人员在大括号前添加换行符,但 Java 开发人员不在大括号前使用换行符。这是 Java 的代码约定。
        • settings.json文件中的配置设置。
        猜你喜欢
        • 2021-04-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多