如何在Xcode for Swift中使用代码格式化程序?

S. *_*lin 38 xcode code-formatting swift

Xcode代码格式化程序Swift

我正在尝试自动格式化用Swift编写的代码.如果您在团队中工作并使用CVS并且不希望合并数小时,则这是必要的.

Ctrl+ I只是缩进,但是例如我希望在函数和Clang之类的所有东西之间有适当的空间.

Jin*_*tin 47

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

有两种安装方式

  1. brew cask install swimat

  2. 克隆此repo,构建并重新启动Xcode.

有关更多信息,请参阅https://github.com/Jintin/Swimat

预习

  • 插件很好,谢谢你的努力:) (3认同)
  • 这比我希望的更好.非常好的插件. (2认同)
  • 伙计,你干得很棒。为什么没有其他人指出这个解决方案?关于 xcode 中的格式化有几个悬而未决的问题。 (2认同)

Cur*_*bit 43

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

  • Control + I似乎在Swift和Objective C上执行缩进,但我希望在Xcode中看到一个更完整的语法修饰,包括Visual Studio和Resharper - 但话虽如此,我认为Xcode正在成为一个可用的IDE . (12认同)
  • 是的,这就是我的意思。Ctrl-I。 (2认同)
  • 如果你正在使用XCode,你可以尝试我的插件:Swimat - https://github.com/Jintin/Swimat (2认同)
  • control-I**不重新格式化代码**,它只是"平衡"每一行.因此,它不会强制执行所有必要的换行符,缩进等等,这是Swift中控件结构的标准习惯用法的一部分.(令人困惑的是,Xcode能够在您键入时自动格式化您的Swift,但是以后没有按钮可以"修复"它的批次!) (2认同)

0xB*_*1A8 15

在 Xcode [Objective-C, Swift] 中:

1) ? + A:高亮代码

2) ? + I:重新格式化代码

  • ⌃+I:仅重新缩进,不重新格式化。至少对于快速来说是这样。例如尝试重新格式化: ```struct Tag {var name: String }``` 它不会做任何事情 (9认同)
  • 即使在 2021 年,这也应该是答案。您必须先选择代码 (cmd + A),然后按 ctrl + 我将为您格式化。 (3认同)

小智 10

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


Add*_*bbA 9

Xcode代码格式很糟糕.希望它更好.Apple必须付出这么多努力才能使它与Visual Studio级别一样好.Ctrl + i对于objC来说是好的,但是没有真正使用swift.据我所知,没有第三方扩展可以嵌入到xCode中.也许Sublime as user2961953建议.

  • `Control + i` 仅在 swift 中缩进代码。它不修复括号等后面的空格。 (3认同)
  • <kbd>^</kbd> 只是表示 <kbd>ctrl</kbd> - 为什么这些被列为单独的快捷方式?两者是完全相同的组合键。<kbd>^i</kbd> 重新缩进——它*不*重新格式化。 (2认同)

ask*_*boe 7

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

引用自 SwiftFormat 自述文件:

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

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

  • 知道为什么这没有内置到 xcode 中吗?这比它们内置的几乎无用的缩进功能有用得多。 (2认同)

use*_*953 -4

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

  • 公平地说,OP 询问如何在 *Xcode* 中自动格式化他的代码。因此,建议他在 Sublime Text 中这样做要么是说(1)他单独打开它们,要么(2)他切换编辑器。 (5认同)
  • 我认为这不是很有效 - 你是说OP必须在单独的程序中(单独)打开每个文件才能格式化它们? (3认同)
  • 我不太关心“公平”(对谁公平?),而是提供解决方案。有时需要跳出框框思考。该解决方案可能属于该类别。不过还是谢谢你的意见。 (3认同)