ChatGPT解决这个技术问题 Extra ChatGPT

如何让格式化程序用 IntelliJ 包装代码?

我无法在 IntelliJ 中格式化我的代码。

我可以看到边线(默认为 120 列),但似乎从菜单中激活:

代码 -> 重新格式化代码

只是忽略了这个边距。


R
ROMANIA_engineer

IntelliJ IDEA 14、15、2016 和 2017

格式化现有代码

确保不超过右边距 文件 > 设置 > 编辑器 > 代码样式 > Java > 环绕和大括号 > 确保不超过右边距 重新格式化代码代码 > 重新格式化代码...或按 Ctrl + Alt + L 如果你有这样的东西: thisLineIsVeryLongAndWillBeChanged(); // 注释它将被转换为 thisLineIsVeryLongAndWillBeChanged(); // 注释而不是 // 注释 thisLineIsVeryLongAndWillBeChanged();这就是为什么我在重新格式化之前选择代码片段,如果代码看起来像前面的例子。

打字到达右边距时换行

IntelliJ IDEA 14:文件>设置>编辑器>代码样式>打字到达右边距时换行

IntelliJ IDEA 15、2016 和 2017:文件 > 设置 > 编辑器 > 代码样式 > 键入时换行


是的!这是实际答案,非常感谢!关键是,一旦您在已经换行的行上进行了更改,Wrap when typing reaches right margin 就会遇到巨大的麻烦。您的答案只是在调用时清除。结合“保存和格式化”宏,这是纯金!
我想在这里添加一个关键字,这可能是人们正在寻找的:这就是所谓的 hard wrap(相对于 soft wrap -- { 1})。
另外:2018.1 没有指导
格式代码为我做了。这一步应该是自动的
h
hc_dev

您的意思是格式化程序不会中断长行吗?然后请检查:

设置/项目设置/代码样式/包装

更新:在更高版本的 IntelliJ 中,可以在以下位置找到该选项:

设置/编辑器/代码样式

在那里选择 Wrap when typing reaches right margin


此选项不再存在,使用版本 13.0.2,问题仍然存在。
@ipolevoy 选项名称是“确保不超过右边距”
“确保不超过右边距”选项位于文件/设置/编辑器/代码样式/Java/换行和大括号/重新格式化时保留
这些家伙一直在重命名设置键
这是正确的,但在新版本中,添加了其他选项以更好地控制可以包装的内容。有关当前正确答案,请参见 stackoverflow.com/a/52157389/1104581
g
guo

在 Intellij IDEA 2018.2 中启用“确保不超过右边距”对我不起作用。我找到了解决方法,我们需要将下面的每个元素从“不换行”更改为“如果长就换行”。

https://i.stack.imgur.com/PxkLw.png

之后,我们可以通过查看右侧面板来预览将更改哪种包装类型。如果我们满意,请单击“确定”或“应用”以应用更改。最后,我们需要手动格式,在 Windows 中使用 CTRL+ ALT+ L,在 MacOS 中使用 Command+ Shift+ L。


这也是我的问题。如果设置了该复选框,但其余部分留给默认 IntelliJ 尝试换行,但不能,因为所有内容都设置为“不换行”。
E
Eslam Hamouda

或者您可以使用快捷方式:

Ctrl + Alt + L


您能否发布此操作的名称(设置-> 键盘映射)?在大多数 Linux 上,CTRL+ALT+L 组合用于阻止计算机。我什至不能使用“通过快捷方式查找操作”。
@tomrozb 此快捷方式适用于代码 -> 重新格式化代码。
那会锁定我的屏幕。
只有这在 Mac 上对我有用(Cmd + Option + L)。如果选中代码样式中的框,则无。
S
Sandeep Kumar

为了在 IntelliJ IDEA 2020.1 社区的代码编辑器中换行文本,请执行以下步骤:

Ctrl + Shift + "A" OR Help -> Find Action
Enter: "wrap" into the text box
Toggle: View | Active Editor Soft-Wrap "ON"

https://i.stack.imgur.com/rbKuX.png


h
hc_dev

在最新的 IntelliJ 版本 2020 中,我们有一个名为 soft-wrap these files 的选项:

设置 > 编辑器 > 常规 > 软包装这些文件。

选中此选项并添加要应用包装的文件类型。

https://i.stack.imgur.com/JSXGB.png

JetBrains 的 IDE 支持论坛上的相关问题:Wrap code to indent


这与 Noah G. already proposed 通过快捷方式 Find Action (CRTL + SHIFT + A) View | Active Editor Soft-Wrap "ON" 的操作不一样吗?
似乎他们existed already in earlier versions:2019.1.3 及之前。
u
user3006181

您可以为 Ctrl +Shift + S (例如)创建一个宏来执行所有这些操作:

编辑 > 宏 > 开始宏录制(录制将开始)。单击您需要的位置。

例如:

Code > Reformat Code
Code > Auto-Indent Lines
Code > Optimize Imports
Code > Rearrange Code
File > Save All
... (all that you want)

然后,单击 IDE 右下角的红色按钮停止宏录制。

设置宏名称。

转到文件 > 设置 > 宏 > 您的宏名称。

右键单击 > 添加键盘快捷键,然后键入 Ctrl + Shift + S。


这是一个基本的 IDE 功能。宏是 OTT,对于如此简单的事情来说太复杂了。