Use swift-format
for Swift file formatting
#261
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Try 3 of #254, #256
This adds a script called
swift-format.sh
that ignores the files listed in.swiftformatignore
while that feature is being added intoswiftlang/swift-format
.swift-format
is shipped with XCode 16 and is included in the Github macos runners. There's a menuitem in XCode that allows formatting the file you're viewing. A good blog post is at: https://calebhearth.com/swift-format-github-actionUnder Editor -> Structure -> Format with swift-format:
This script has been vendored from
swiftlang/github-workflows
and adds a comment mentioning where it was vendored from and which edits have been made to it differing from the original source.A quirk is that this script relies on the ignore file being at the top level, so it's a bit brittle. We could honestly just hardcode the ignore value in the script, but 🤷
#263 will enable the format check and format all swift code, then a PR after that will git blame ignore the formatting PR.
Testing
To test, you can run
./swift-format.sh
from the root of the repo and see that swift code is formatted. To test the "check" run./swift-format.sh check
and see that there is a git diff outputted and that the exit code was unsuccessful.You may also see a failed run at https://github.com/DefinedNet/mobile_nebula/actions/runs/13444683597/job/37567211304?pr=261 while it still exists.
Refs: