如何阻止IntelliJ将参数放在自己的行上?

时间:2014-08-04 12:41:00

标签: java intellij-idea ide

我刚写了这句话:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>(actualReader);

并且自动重组器给了我:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>
                (actualReader);

我认为这看起来非常奇怪,我想告诉IntelliJ永远不要把参数放在他们自己的行上。我想:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>(
                actualReader);

或更好:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = 
       new HDF5CompoundDSBridgeBuilder<>(actualReader);

我正在查看代码风格&gt;下的项目设置。 Java&gt;环绕和支撑,但我不确定我应该改变什么选项。我不想在&#39;之后总是有新的一行(&#39;,我只是想确保IntelliJ在打破多行声明时从不打破它。我没有看到任何其他的选项我可以改变。

可以这样做吗?

编辑:如果有人想测试他们自己的IntelliJ,我的边距设置为120个字符,并且确切的行(具有正确的空白量--8个空格)是:

        HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>(actualReader)

2 个答案:

答案 0 :(得分:14)

导致换行的设置是 Code Style&gt; Java&gt; [包装和大括号]&gt; “方法调用参数”。如果您不想包装它,可以设置为“不包装”。对于包装,设置为“Wrap if Long”或“Chop down if if”。观察示例代码中的foo1方法,看看wrap和chop之间的区别。

<强>余音:

wrapped(
    0x0051, 0x0052, 0x0053,
    0x0054, 0x0055, 0x0056,
    0x0057);

<强>印鉴:

chopped(
    0x0051, 
    0x0052,
    0x0053,
    0x0054, 
    0x0055, 
    0x0056,
    0x0057);

为了得到你的第一个选择,使得'('与方法调用(或本例中的构造函数调用)保持一致),设置“'后面的新行'('”选项。这将给你:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>(
        actualReader);

要获得第二个“或更好的”选项,请设置代码样式&gt; Java&gt; [包装和大括号]&gt; “分配声明”到“Wrap if long”,“Chop if long”或“Wrap always”。如果设置为“Wrap if long”,您将获得:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = 
        new HDF5CompoundDSBridgeBuilder<>(actualReader);

答案 1 :(得分:0)

我认为这是可能的,因为我从未见过IntelliJ做你正在描述的事情。

我的IntelliJ 13.1.1没有将参数放在新行上。当我在Method调用参数下查看Code Style-&gt; Java时,将取消选中所有框。看看你的是否也是。