How to use code formatter in Xcode for Swift?

2020-05-16 15:21发布

问题:

Xcode code formatter Swift

I'm trying to auto format my code written in Swift. It's necessary if you're working in team and using CVS and don't want to merge for hours.

Ctrl+I just makes an indent, but for example i want to have proper space between functions and just all the stuff like in Clang.

回答1:

I write a extension app about format Swift code: Swimat

There has two way to install

  1. brew cask install swimat

  2. Clone this repo, build and restart Xcode.

See https://github.com/Jintin/Swimat for more information



回答2:

The reformat code command in xcode is Ctrl-I, not Cmd-I and it appears to work just fine.



回答3:

Xcode and Swift 2.0: Per file, Cmd-A then Ctl-I. Ctl-I works for what is highlighted, Cmd-A highlights all. Just be careful not to accidentally delete all your source after the Ctl-A!



回答4:

In Xcode [Objective-C, Swift]:

1) +A: highlight code

2) +I: reformat code



回答5:

+i: reformat code
Ctrl+i: fix code indentation

Eventhough it has good IntelliSense, xcode sucks at code formatting generally.
Wish it was better.
Apple has to spend so much effort in this in order to make it VS level good.



回答6:

SwiftFormat is a popular code formatter for swift. It has an extension for Xcode, which can be accessed from the Editor menu.

Quote from the SwiftFormat readme:

SwiftFormat is a code library and command-line tool for reformatting swift code on macOS or Linux.

SwiftFormat goes above and beyond what you might expect from a code formatter. In addition to adjusting white space it can insert or remove implicit self, remove redundant parentheses, and correct many other deviations from the standard Swift idioms.



回答7:

(I know the question says Xcode but) personally this is another reason to use AppCode alongside Xcode.

While Xcode only fixes the indentation for Swift code, as mentioned in the question, AppCode at least handles spaces too. Somewhat relatedly it removes indents from empty lines by default.

AppCode's Swift support definitely isn't perfect yet and you still need to check the code in both, but it's still worth it because of better navigation and things like this.



回答8:

I would suggest using sublime text with the swift plugin, which will allow you to hotkey the code formatting. https://sublime.wbond.net/packages/Swift



回答9:

Select lines, then press Ctrl+I.