有没有一种方法可以让IntelliJ自动缩进方法声明参数?

9
这是针对IntelliJ 2016.2版本的。
我正在清理一些代码,这些代码导致CheckStyle违规并停止了我们的CI构建。看起来这是因为IntelliJ的代码样式规则。我可以手动修复这些问题,但有两个问题:编辑器会不加区分地应用这些规则,并且手动修复很麻烦。而且如果任何人再次运行代码格式化,它会将缩进设置回它想要的方式。
具体来说,多行方法签名的缩进如下:

indentation for multiline method signatures

我希望后续行的参数相对于上一行的开头向右缩进4个空格,而不是左括号。

enter image description here

有趣的是,当我使用“格式化输入时格式化”时,它可以正确地完成此操作,但是当我使用代码格式化程序时,它会重新格式化为上述内容。
我可以通过进入首选项中的制表符和缩进并将“连续缩进”设置为0来解决部分问题:

indentation with continuation=0

但是这个规则被普遍应用,使其他东西看起来非常糟糕,而且它不接受负值。
我已经进入首选项中的"Editor.Code Style.Java.Wrapping and Braces.Method declaration parameters"并尝试了几乎所有内容。我有"Chop down if long",但由于缩进规则,这使得行变得更长。我没有看到任何指定从哪里开始缩进或缩进多少行的方法。
结合观察到方法调用的格式表现出预期的行为(但是,令人恼火的是,构造函数调用却没有!),这让我认为这是一个错误。IntelliJ的格式化程序似乎是硬编码使用开放括号的连续缩进,而不是方法声明本身。
我是否错过了什么或者有一些可行的解决方法?

第一张图片是格式化之前的吗?第二张是您理想的格式吗? - NESPowerGlove
不,第二个是我目前通过调整代码风格设置能够做到的最好的。让我编辑一下以添加我想要看到的内容。 - bernerbrau
2个回答

4
您可以在以下位置找到相关设置:
设置/首选项 > 编辑器 > 代码样式 > [您的语言,例如 Java]
查找标有“多行对齐”的复选框,并取消选择它。
(答案摘自这里。)

0

现在,从checkstyle配置中导入“代码样式”应该可以在IntelliJ中实现。

以下是官方响应中对功能请求的摘录:

  1. 请安装CheckStyle-IDEA插件(http://plugins.jetbrains.com/plugin/1065?pr=idea),该插件可以通过插件库(设置|插件|浏览存储库)找到。
  2. 转到 设置|编辑器|代码样式,选择要将CheckStyle配置导入其中的代码样式。
  3. 单击 管理...|导入...,选择“CheckStyle配置”,然后选择相应的CheckStyle配置文件。单击确定。 最后,你会看到一条消息:“已将CheckStyle配置设置导入... scheme”。

通过这样做,Idea 应该能够维护 checkstyle 定义的格式规则。


这就是我们一开始所做的 - 导入了checkstyle设置。但它仍然无法正确格式化。 - bernerbrau
那么,这可能确实是Intellij的一个bug,我会尽量深入挖掘一下。 - dubes

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接