如何配置IntelliJ Java格式化器使.stream()与其他方法格式一致
解决IntelliJ中Stream链式调用与普通方法换行格式不一致的问题
之前配置IntelliJ代码格式化规则时,我遇到过一模一样的困扰:当代码行超过100字符的长度限制时,普通方法(比如StringBuilder.append())会在对象实例后换行对齐,但包含Stream的链式调用却会在.stream()方法之后才换行,两种写法的格式风格不统一,看着特别别扭。
期望的统一格式化效果
我想要的格式逻辑是:
- 当代码行未超过字符限制时,保持单行展示
- 当代码行超过限制时,从集合对象(比如
list)开始换行,依次对齐后续所有链式调用方法,示例如下:
// 超长时的换行效果 list .subList(0, 2) .stream() .filter(item -> item.isValid()) .collect(Collectors.toList()); // 长度合规时的单行效果 list.subList(0, 2).stream().filter(item -> item.isValid()).collect(Collectors.toList());
已验证的有效解决方案
经过测试,将IntelliJ IDEA升级到2019.2版本,然后重新导入你的CodeStyle XML配置文件之后,这个Stream与普通方法换行逻辑不一致的问题就完全解决了,两者的格式化规则会保持统一。
内容的提问来源于stack exchange,提问作者max-susi
相关产品推荐
相关产品推荐

