如何让格式化程序用 IntelliJ 包装代码?
Posted
技术标签:
【中文标题】如何让格式化程序用 IntelliJ 包装代码?【英文标题】:How to have the formatter wrap code with IntelliJ? 【发布时间】:2011-04-19 18:33:19 【问题描述】:我无法在 IntelliJ 中格式化我的代码。
我可以看到边线(默认为 120 列),但似乎是从菜单激活:
代码 -> 重新格式化代码
只是忽略了这个边距。
【问题讨论】:
【参考方案1】:您的意思是格式化程序不会中断长行吗? 那么请检查:
设置/项目设置/代码样式/包装
更新: 在更高版本的 IntelliJ 中,可以在以下位置找到该选项:
设置/编辑器/代码样式
那里选择Wrap when typing reaches right margin
。
【讨论】:
这个选项已经没有了,使用的是13.0.2版本,问题依旧.. @ipolevoy 选项名称是“确保不超过右边距” “确保不超过右边距”选项位于文件/设置/编辑器/代码样式/Java/换行和大括号/重新格式化时保留 这些家伙一直在重命名设置键 这是正确的,但在新版本中,添加了其他选项以更好地控制可以包装的内容。当前正确答案请参见***.com/a/52157389/1104581。【参考方案2】:在最新的 IntelliJ 2020 版中,我们有一个名为 soft-wrap these files
的选项:
设置 > 编辑器 > 常规 > 软包装这些文件。
选中此选项并添加要应用包装的文件类型。
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 及之前。【参考方案3】:
要在 IntelliJ IDEA 2020.1 社区的代码编辑器中换行文本,请执行以下步骤:
Ctrl + Shift + "A" OR Help -> Find Action
Enter: "wrap" into the text box
Toggle: View | Active Editor Soft-Wrap "ON"
【讨论】:
【参考方案4】:在 Intellij IDEA 2018.2 中启用“确保不超过右边距”对我不起作用。我找到了解决方法,我们需要将下面的每个元素从“不换行”更改为“如果长就换行”。
之后,我们可以通过查看右侧面板来预览将更改哪种包装类型。如果我们满意,请单击“确定”或“应用”以应用更改。最后,我们需要手动格式,在 Windows 中使用 CTRL+ ALT+ L 和 Command+ Shift + L 在 MacOS 中。
【讨论】:
这也是我的问题。如果设置了该复选框,但其余部分留给默认 IntelliJ 尝试换行,但不能,因为所有内容都设置为“不换行”。【参考方案5】:IntelliJ IDEA 14、15、2016 和 2017
格式化现有代码
确保不超过右边距
文件 > 设置 > 编辑器 > 代码样式 > Java > 换行和大括号 > 确保不超过右边距
重新格式化代码
代码 > 重新格式化代码...
或按 Ctrl + Alt + L
如果你有这样的事情:
thisLineIsVeryLongAndWillBeChanged(); // comment
它将被转换为
thisLineIsVeryLongAndWillBeChanged();
// comment
而不是
// comment
thisLineIsVeryLongAndWillBeChanged();
如果代码看起来像前面的示例,这就是为什么我在重新格式化之前选择代码片段的原因。
输入到右边距时换行
IntelliJ IDEA 14:文件 > 设置 > 编辑器 > 代码样式 > 输入到右边距时换行
IntelliJ IDEA 15、2016 和 2017:文件 > 设置 > 编辑器 > 代码样式 > 键入时换行
【讨论】:
是的!这是实际答案,非常感谢!关键是Wrap when typing reaches right margin
一旦你改变了已经换行的东西,就会遇到巨大的麻烦。您的答案只是在调用时清除。结合“保存和格式化”宏,这是纯金!
我想在这里添加一个关键字,这是人们可能正在寻找的:这就是所谓的 hard wrap(与 soft换行 -- see the difference here)。
另外:2018.1 没有指导
格式代码为我做了。这一步应该是自动的【参考方案6】:
您可以为 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,对于这么简单的事情来说太复杂了。【参考方案7】:或者你可以使用快捷方式:
Ctrl + Alt + L
【讨论】:
您可以发布此操作的名称(设置 -> 键盘映射)吗?在大多数 Linux 上,CTRL+ALT+L 组合用于阻止计算机。我什至不能使用“通过快捷方式查找操作”。 @tomrozb 此快捷方式用于代码 -> 重新格式化代码。 这会锁定我的屏幕。 只有这在 Mac 上对我有用(Cmd + Option + L)。如果选中代码样式中的框,则无。以上是关于如何让格式化程序用 IntelliJ 包装代码?的主要内容,如果未能解决你的问题,请参考以下文章
如何让 Eclipse 代码格式化程序开始包装赋值语句 = 运算符
如何在 Android Studio 中格式化代码(IntelliJ IDEA)