【发布时间】:2019-08-19 13:23:55
【问题描述】:
我正在尝试将 IntelliJ 格式化程序设置为对流使用与其他方法调用相同的新行格式。
如果我得到的代码行超过 100 个字符的限制,IntelliJ 会像这样格式化它:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo")
.append("foo");
如果我的代码行包含的流也超过了 100 个字符的限制,intellij 在流语句后开始新行:
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));
如何告诉格式化程序像其他方法一样对流使用相同的格式?
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));
仅当代码行超过 100 个字符的限制时才适用此格式,否则应保留在一行中。
编辑:我将我的 intellij 版本更新为 2019.2 并重新导入了我的 CodeStyle xml。 现在我无法再重现我的问题了。
【问题讨论】:
-
您是否已经尝试过使用“Wrap first call”选项?您可以在 Settings -> Editor -> Code Style -> Java -> Wrapping and Braces -> Chained Method Calls 中找到它。
-
@ErikNellessen 是的,我已经尝试过了——结果还是一样:/
标签: java intellij-idea