【问题标题】:How to have the formatter wrap code with IntelliJ?如何让格式化程序用 IntelliJ 包装代码?
【发布时间】:2011-04-19 18:33:19
【问题描述】:

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

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

代码 -> 重新格式化代码

只是忽略了这个边距。

【问题讨论】:

    标签: intellij-idea code-formatting


    【解决方案1】:

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

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

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

    设置/编辑器/代码样式

    那里选择Wrap when typing reaches right margin

    【讨论】:

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

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

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

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

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

    【讨论】:

    【解决方案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+ LCommand+ Shift + L 在 MacOS 中。

      【讨论】:

      • 这也是我的问题。如果设置了该复选框,但其余部分留给默认 IntelliJ 尝试换行,但不能,因为所有内容都设置为“不换行”。
      【解决方案5】:

      IntelliJ IDEA 14、15、2016 和 2017

      格式化现有代码

      1. 确保不超过右边距

        文件 > 设置 > 编辑器 > 代码样式 > Java > 换行和大括号 > 确保不超过右边距

      2. 重新格式化代码

        代码 > 重新格式化代码...

        或按 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)。如果选中代码样式中的框,则无。
      猜你喜欢
      • 1970-01-01
      • 2018-10-14
      • 2020-10-23
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 2012-02-27
      • 2010-12-24
      相关资源
      最近更新 更多