【问题标题】:How to use code formatter in Xcode for Swift?如何在 Xcode for Swift 中使用代码格式化程序?
【发布时间】:2015-01-15 14:54:51
【问题描述】:

Xcode 代码格式化程序 Swift

我正在尝试自动格式化我用 Swift 编写的代码。如果您在团队中工作并使用 CVS 并且不想合并几个小时,那么这是必要的。

Ctrl+I 只是缩进,但例如我想在函数之间留出适当的空间,就像在 Clang 中一样。

【问题讨论】:

标签: xcode swift code-formatting


【解决方案1】:

+i重新格式化代码
Ctrl+i : 修复代码缩进

尽管它具有良好的 IntelliSense,但 xcode 通常在代码格式化方面很糟糕。
希望它更好。
苹果要在这方面花这么多功夫才能做到VS级别的好。

【讨论】:

  • Control + i 确实适用于 Swift。你认为 Objective C 的代码格式化比 Swift 更好吗?只是好奇。
  • Control + i 仅在 swift 中缩进代码。它不固定括号等后的空格。
  • ^ 只是表示 ctrl——为什么这些被列为单独的快捷方式?两者都是完全相同的组合键。 ^i 重新缩进——它重新格式化。
【解决方案2】:

在 Xcode [Objective-C,Swift] 中:

1) +A高亮代码

2) +I重新格式化代码

【讨论】:

  • 这应该是 2021 年的答案。您必须先选择代码 (cmd + A),然后 ctrl + 我会为您格式化。
  • ⌃+I:只重新缩进,不重新格式化。至少对于 swift 无论如何。例如尝试重新格式化:struct Tag {var name: String } 它不会做任何事情
【解决方案3】:

选择行,然后按Ctrl+I

【讨论】:

  • 在回答一个包含 8 个其他答案的四年前的问题时,请花时间确保您的答案没有重复,如果不是指出您的问题的新方面回答地址。还可以通过在每个键周围使用 <kbd></kbd> 来完成击键组合的格式化。
【解决方案4】:

SwiftFormat 是一个流行的 swift 代码格式化程序。它有一个extension for Xcode,可以从Editor 菜单访问。

引用 SwiftFormat 自述文件:

SwiftFormat 是一个用于重新格式化的代码库和命令行工具 macOS 或 Linux 上的 swift 代码。

SwiftFormat 超越了您对代码的期望 格式化程序。除了调整空白之外,它还可以插入或 删除隐式自我,删除多余的括号,并更正许多 与标准 Swift 习语的其他偏差。

【讨论】:

    【解决方案5】:

    (我知道问题是 Xcode 但是) 就个人而言,这是将 AppCode 与 Xcode 一起使用的另一个原因。

    虽然 Xcode 只修复了 Swift 代码的缩进,但如问题中所述,AppCode 至少也处理了空格。有点相关的是,默认情况下它会从空行中删除缩进。

    AppCode 的 Swift 支持肯定还不完美,您仍然需要检查两者中的代码,但由于更好的导航和类似的东西,它仍然值得。

    【讨论】:

      【解决方案6】:

      我写了一个关于格式化 Swift 代码的扩展应用:Swimat

      有两种安装方式

      1. brew cask install swimat

      2. 克隆这个 repo,构建并重启 Xcode。

      更多信息请见https://github.com/Jintin/Swimat

      【讨论】:

      • 我认为您应该提及或说明Swimat 是否处理行之间的格式化空格。此处或 github 页面上均未说明或传达该信息。根据 gif 插图,Xcode 默认格式化已经处理了。
      • Swimat 会像默认的 Xcode 那样做,即删除空行空间。但不删除空行。感谢您的反馈,我们稍后会更新说明。
      • 很好,我希望也有一个用于 Objective-C 的。
      • 老兄,你做得很棒。为什么没有人指出这个解决方案?在 xcode 中格式化有几个悬而未决的问题。
      【解决方案7】:

      Xcode 和 Swift 2.0:每个文件,Cmd-A 然后 Ctl-I。 Ctl-I 适用于突出显示的内容,Cmd-A 突出显示所有内容。请注意不要在 Ctl-A 之后意外删除所有源代码!

      【讨论】:

        【解决方案8】:

        xcode 中的重新格式化代码命令是 Ctrl-I,而不是 Cmd-I,它似乎工作得很好。

        【讨论】:

        • 是的,我就是这个意思。 Ctrl-I。
        • Control + 我似乎在 Swift 和 Objective C 上执行缩进,但我希望在 Xcode 中看到更完整的语法美化 ala Visual Studio 和 Resharper - 但话虽如此,我认为 Xcode 是正在成为可用的 IDE。
        • Ctrl+I 似乎对我在 XCode 7 beta 5 中的文本选择没有影响
        • 如果你使用 XCode,你可以试试我的插件:Swimat - github.com/Jintin/Swimat
        • control-I 不重新格式化代码,它只是“平衡”每一行。因此,它不会强制执行所有必要的换行符、缩进等,这是 Swift 中控制结构的标准习语的一部分。 (令人困惑的是,Xcode 能够在您键入时自动格式化您的 Swift,但没有按钮可以稍后“修复”它的批次!)
        【解决方案9】:

        我建议使用带有 swift 插件的 sublime text,这将允许您热键代码格式。 https://sublime.wbond.net/packages/Swift

        【讨论】:

        • 我认为这不是很有效 - 你是说 OP 必须在单独的程序中(单独)打开每个文件才能格式化它们?
        • 建议不要重新打开它们。我工作的开发人员使用 sublime text 工作,而不是 xcode。
        • 公平地说,OP 是在询问如何在 Xcode 中自动格式化他的代码。所以建议他在 Sublime Text 中这样做要么是说(1)他单独打开它们,要么(2)他切换编辑器。
        • 我不太关心“公平”(对谁公平?),而是提供解决方案。有时有必要跳出框框思考。此解决方案可能属于该类别。不过感谢您的意见。
        • 我只是为 Sublime 安装了 swift 插件,但似乎 Sublime 没有热键或菜单来制作格式。
        猜你喜欢
        • 2019-09-05
        • 2021-12-31
        • 1970-01-01
        • 2010-12-03
        • 2016-10-10
        • 2022-09-27
        • 2010-09-28
        相关资源
        最近更新 更多