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

Pat*_*ins 9 java ide intellij-idea

我刚刚写了这一行:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>(actualReader);
Run Code Online (Sandbox Code Playgroud)

并且自动重新格式化器给了我:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>
                (actualReader);
Run Code Online (Sandbox Code Playgroud)

我觉得这看起来很奇怪,我想告诉IntelliJ永远不要把参数放在他们自己的行上.我想要:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>(
                actualReader);
Run Code Online (Sandbox Code Playgroud)

或者更好的是:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = 
       new HDF5CompoundDSBridgeBuilder<>(actualReader);
Run Code Online (Sandbox Code Playgroud)

我正在查看Code Style> Java> Wrapping and Braces下的项目设置,但我不确定应该更改哪个选项.我不想总是在'('之后总是有一个新行.我只是想确保IntelliJ在打破多行语句时永远不会打破它.我没有看到任何其他选项我可以改变.

可以这样做吗?

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

        HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>(actualReader)
Run Code Online (Sandbox Code Playgroud)

Jav*_*aru 15

导致包装发生的设置是Code Style> Java> [Wrapping and Braces]>"Method call arguments".如果您不想包装它,可以设置为"不包装".对于包装,设置为"Wrap if Long"或"Chop down if if".观察foo1示例代码中的方法,以查看wrap和chop之间的区别.

包裹:

wrapped(
    0x0051, 0x0052, 0x0053,
    0x0054, 0x0055, 0x0056,
    0x0057);
Run Code Online (Sandbox Code Playgroud)

劈:

chopped(
    0x0051, 
    0x0052,
    0x0053,
    0x0054, 
    0x0055, 
    0x0056,
    0x0057);
Run Code Online (Sandbox Code Playgroud)

为了得到你的第一个选择,例如'('与方法调用(或在这种情况下为构造函数调用)保持一致),设置"新行后'('"选项.这将给你:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = new HDF5CompoundDSBridgeBuilder<>(
        actualReader);
Run Code Online (Sandbox Code Playgroud)

要获得第二个"或更好的"选项,请将代码样式> Java> [包装和大括号]>"分配语句"设置为"Wrap if long","Chop if long"或"Wrap always".如果设置为"Wrap if long",您将得到:

HDF5CompoundDSBridgeBuilder<WritableDataPoint> actualBridgeBuilder = 
        new HDF5CompoundDSBridgeBuilder<>(actualReader);
Run Code Online (Sandbox Code Playgroud)