max*_*usi 5 java intellij-idea
我正在尝试将IntelliJ格式化程序设置为对流使用与其他方法调用相同的换行格式。
如果我得到的代码行超过了100个字符的限制,则IntelliJ会像这样格式化它:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo");
Run Code Online (Sandbox Code Playgroud)
如果我得到的代码行中包含的流也超过了100个字符的限制,则intellij在stream语句后开始新行:
List<Integer> list = new ArrayList<>();
list.subList(0, 2).stream()
.filter(foo -> foo.equals(foo))
.filter(foo -> foo.equals(foo))
.filter(foo -> foo.equals(foo));
Run Code Online (Sandbox Code Playgroud)
如何告诉格式化程序像其他方法一样对流进行相同的格式化?
List<Integer> list = new ArrayList<>();
list
.subList(0, 2)
.stream()
.filter(foo -> foo.equals(foo))
.filter(foo -> foo.equals(foo))
.filter(foo -> foo.equals(foo));
Run Code Online (Sandbox Code Playgroud)
仅当代码行超过100个字符的限制时,才应使用此格式,否则应保持一行。
编辑:我将intellij版本更新为2019.2,然后重新导入了CodeStyle xml。现在我无法重现我的问题了。
我无法使用 IntelliJ IDEA Ultimate 2019.2 重现该问题。我创建了以下课程:
public class Foo {
void bar() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("foo").append("foo").append("foo").append("foo").append("foo").append("foo").append("foo").append("foo");
List<Integer> list = new ArrayList<>();
list.subList(0, 2).stream().filter(foo -> foo.equals(foo)).filter(foo -> foo.equals(foo)).filter(foo -> foo.equals(foo));
}
}
Run Code Online (Sandbox Code Playgroud)
重新格式化(CTRL+ALT+L)后,代码如下所示:
public class Foo {
void bar() {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo");
List<Integer> list = new ArrayList<>();
list
.subList(0, 2)
.stream()
.filter(foo -> foo.equals(foo))
.filter(foo -> foo.equals(foo))
.filter(foo -> foo.equals(foo));
}
}
Run Code Online (Sandbox Code Playgroud)
以下是我的 XML 代码样式设置:
<code_scheme name="Project" version="173">
<codeStyleSettings language="JAVA">
<option name="ALIGN_MULTILINE_CHAINED_METHODS" value="true" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="METHOD_PARAMETERS_WRAP" value="2" />
<option name="THROWS_LIST_WRAP" value="1" />
<option name="METHOD_CALL_CHAIN_WRAP" value="2" />
<option name="WRAP_FIRST_METHOD_IN_CALL_CHAIN" value="true" />
<option name="BINARY_OPERATION_WRAP" value="1" />
<option name="ARRAY_INITIALIZER_WRAP" value="1" />
</codeStyleSettings>
</code_scheme>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
85 次 |
| 最近记录: |