java 我可以在运行代码格式化程序时停止Intellij拆分字符串吗?

ruarlubt  于 2023-08-02  发布在  Java
关注(0)|答案(3)|浏览(74)

或多或少正如标题所说的那样。当I cmd + f时,它根据项目的设置来格式化代码。其中一个设置是右边距。问题是,它也会分割字符串字面量,以避免过度运行的保证金。所以这个:

stringBldr.append("some text that's more than 80 characters");

字符串
变成这样:

stringBldr.append("some text that's more " +
          "than 80 characters");


这 * 完全 * 击败了使用StringBuilder的目的摆在首位。在Eclipse中,我可以告诉它在格式化时忽略String文字。有没有一种方法可以在IntelliJ中做到这一点,而无需手动禁用该部分的代码格式化程序(例如@formatter:off)?

pxyaymoc

pxyaymoc1#

试着玩

Editor | Code Style | Java | Wrapping and Braces | Annotation with parameters - Wrap always + align when multiline

字符串

Editor |Code->Style | Wrapping and Braces | Method parameters/Method call arguments'


“如果长,则 Package ”或“如果长,则切碎”。

cyvaqqii

cyvaqqii2#

在你的情况下,试着设置

Editor > Code Style > Java > Wrapping and Braces > Method call arguments

字符串
Wrap if long。可能是New line after '('。它将把字符串的开始放在下一行,除非字符串本身太长(+缩进),否则它不会被切成两部分。
这是格式化之前的情况(我的硬 Package 限制是120个字符,lorem是100个字符,第二行是125个字符)

StringBuilder stringBldr = new StringBuilder();
    stringBldr.append("Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...");


这里将Method call arguments设置为Wrap if long,并选择New line after '('

StringBuilder stringBldr = new StringBuilder();
    stringBldr.append(
        "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...");

1bqhqjot

1bqhqjot3#

禁用:

Editor > Code Style > Java > Wrapping and Braces > Ensure right margin is not exceeded : false

字符串

相关问题