Visual Studio Code:格式化 Java 方法链

pCh*_*hip 9 java visual-studio-code vscode-settings

我正在尝试更改 VSCode 设置,这将允许我使用方法链接执行类似操作:

Flux
  .just("test", "string", "flux")
  .log()
  .map(String::toUpperCase);
Run Code Online (Sandbox Code Playgroud)

问题是每当应用格式化程序时,它都会将其更改回一行:

Flux.just("test", "string", "flux").log().map(String::toUpperCase);
Run Code Online (Sandbox Code Playgroud)

我安装了 Java 扩展包,其中包括“Red Hat 对 Java 的语言支持”。该扩展程序添加了一些格式选项,我一直在尝试使用它们,但没有这样的运气。

以下是我更改的格式选项:

"editor.formatOnSave": true,
"java.format.settings.url": "https://raw.githubusercontent.com/google/styleguide/gh-pages/eclipse-java-google-style.xml",
"java.format.enabled": true,
"java.format.settings.profile": "GoogleStyle"
Run Code Online (Sandbox Code Playgroud)

任何人都知道如何让格式化程序单独保留多行方法链接?

Gus*_*ini 5

来自Redhat Developer VSCode-Java 插件维基

您还可以在项目的.settings/org.eclipse.jdt.core.prefs 中定义格式首选项。它将覆盖全局格式设置。由于这相当乏味,因此编辑这些首选项的最佳方法是在 Eclipse 中打开您的项目并在那里为您的项目设置格式首选项。

您将寻找的选项是:

换行>换行设置>函数调用>限定调用

将其设置为Wrap all elements,每个元素都在一个新行上,如下图所示:

在此处输入图片说明


koh*_*e15 5

我获得了相同的结果,而无需下载 Eclipse 来导出所需的设置。我从vscode-java-formatter.md阅读了梦幻般的指南

我在 vscode 中已经有了这个 JSON 设置:

"java.format.settings.url": "dir/to/eclipse-java-google-style.xml"
Run Code Online (Sandbox Code Playgroud)

在 local 中eclipse-java-google-style.xml,将以下值从 更改truefalse

<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="false"/>
Run Code Online (Sandbox Code Playgroud)

保存并重新启动 vscode。现在链式方法不会被挤进一行。