【问题标题】:Code Folding changes in Xcode 9/10 [duplicate]Xcode 9/10 中的代码折叠更改 [重复]
【发布时间】:2018-03-05 08:44:04
【问题描述】:

我知道 Xcode9 的早期 Beta 版中缺少代码折叠功能,并且可以通过 CMD click 折叠整个方法。

但在 Xcode 8 中,我能够通过 Editor >> Code Folding >> Fold 将代码折叠成块(即单独的 if 语句),但在 Xcode 9 中,这会折叠整个方法。

我可以更改修复/设置以恢复 Xcode 8 功能吗?

【问题讨论】:

    标签: swift xcode xcode9 code-folding xcode10


    【解决方案1】:

    Xcode 10 中的更新

    Xcode 10 增加了对代码折叠的支持,包括:

    1. 新的代码折叠功能区显示编辑器中的所有多行可折叠代码块
    2. 编辑器中折叠代码的新样式,允许您使用折叠代码编辑行
    3. 支持折叠用大括号括起来的任何代码块
    4. 支持从折叠功能区、结构化选择或
    5. 折叠代码块

    菜单栏 ► 编辑器 ► 代码折叠 ► 折叠菜单项

    看看这个快照:


    代码折叠在 Xcode 9 beta 1 中被禁用,现在在 Xcode 9 Beta5 中工作,根据 beta 版本说明:Resolved in Xcode 9 beta 5 – IDE

    方法如下:

    1. 按住键盘上的(命令)按钮,然后将鼠标光标移动/悬停在任何(开始或结束)大括号上。会自动高亮、遮挡区域。
    2. 保持(按住)(命令)按钮处于按下状态,然后单击突出显示的区域。它将启用带有 Fold 选项的快速菜单弹出窗口。
    3. 从菜单列表中选择Fold。它将折叠您的代码并显示 3 个点,折叠/覆盖整个块。
    4. 现在,要再次展开代码块,请释放 (命令)按钮并单击折叠块的 3 个点。

    为便于理解,请查看此快照:


    所有的键盘快捷键也都在起作用。

    Fold                          ⌥ ⌘ ←      option + command + left arrow
    Unfold                        ⌥ ⌘ →      option + command + right arrow
    Unfold All                    ⌥ U        option + U
    Fold Methods & Functions      ⌥ ⌘ ↑      option + command + up arrow
    Unfold Methods & Functions    ⌥ ⌘ ↓      option + command + down arrow
    Fold Comment Blocks           ⌃ ⇧ ⌘ ↑    control + shift + command + up
    Unfold Comment Blocks         ⌃ ⇧ ⌘ ↓    control + shift + command + down
    Focus Follows Selection       ⌃ ⌥ ⌘ F    control + option + command + F
    Fold All                      ⌘ ⌥ ⇧ ←    command + option + shift + left
    Unfold All                    ⌘ ⌥ ⇧ →    command + option + shift + left
    


    Xcode 菜单中的代码折叠选项

    菜单栏 ▶ 编辑器 ▶ 代码折叠 ▶ “这里是代码折叠选项列表”

    这是参考快照:

    Xcode 快捷方式列表中的相同选项

    Menubar ▶ Xcode ▶ Preferences ▶ Key Bindings ▶ “这里是代码折叠快捷键列表”

    【讨论】:

    • 感谢您的详细回复。但是,正如问题中所述,我知道如何折叠整个方法。我正在查看在方法中折叠块的旧功能是否仍然可用。
    • @joffd 对我来说同样的问题。我错过了旧功能,即图形化的方式。
    • 如果在文件左侧有一个箭头来折叠,展开括号块会更好
    • @Pankaj - 无法找到你。请口授。欢迎您通过分享您的意见来改进此答案。
    • 终于找回来了!
    【解决方案2】:

    在发行说明中声明,目前尚不支持。

    【讨论】:

    • 你在开玩笑吧。谁提出了在支持代码折叠几十年后放弃代码折叠的想法,并且每个开发人员每天都在使用它。预测:由于视网膜显示器的出现,即使将字体降低到 1pt,Apple 也会将每个文件呈现为单个页面,以鼓励开发人员编写用全新语言编写的更小更复杂的文件(这将改变其语法明天 EOD 戏剧性地破坏你的应用程序)。
    • Xcode 9 是对 Swift 的完全重写。代码折叠将返回 ;)
    • 哈哈。好,很好。我希望你喜欢我的咆哮。这很容易解决,我全力以赴。
    • 当然@JohnErck - 顺便检查一下devrant.io:D
    【解决方案3】:

    您也可以在 Xcode 9 中折叠单个 if 语句,但它会折叠整个 if - (else) 表达式。

    将光标放在块内的某处并按⌥⌘←

    展开:

    折叠:

    【讨论】:

    • 仍然折叠整个方法。
    • 不要选择任何东西,只需将光标放在if 和受影响块的关闭} 之间。请参阅编辑后的答案。
    • 我在目标 C 中工作,这会有所作为吗?因为无论穿什么,我都会把光标放在整个方法折叠。
    • 可能是Objective-C的行为不同,我认为这是一个错误。在 Swift 中,它按照描述的方式工作。
    • 我不喜欢这种变化......
    猜你喜欢
    • 1970-01-01
    • 2017-03-10
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多