mirror of
https://github.com/DefinedNet/mobile_nebula.git
synced 2025-02-22 19:15:27 +00:00
Use swift-format
for Swift file formatting (#261)
This commit is contained in:
parent
e128658599
commit
4d34083572
4 changed files with 76 additions and 0 deletions
22
.github/workflows/swiftfmt.yml
vendored
Normal file
22
.github/workflows/swiftfmt.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
name: Swift format
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
paths:
|
||||||
|
- ".github/workflows/swiftfmt.yml"
|
||||||
|
- "**.swift"
|
||||||
|
jobs:
|
||||||
|
swiftfmt:
|
||||||
|
name: Run swift format
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out code
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
show-progress: false
|
||||||
|
|
||||||
|
# Re-enable in follow-up PR that does the formatting.
|
||||||
|
# - name: Check formating
|
||||||
|
# run: ./swift-format.sh check
|
1
.swiftformatignore
Normal file
1
.swiftformatignore
Normal file
|
@ -0,0 +1 @@
|
||||||
|
ios/Pods/**
|
|
@ -41,6 +41,9 @@ dart format lib/ test/ -l 120
|
||||||
|
|
||||||
In Android Studio, set the line length using Preferences -> Editor -> Code Style -> Dart -> Line length, set it to 120. Enable auto-format with Preferences -> Languages & Frameworks -> Flutter -> Format code on save.
|
In Android Studio, set the line length using Preferences -> Editor -> Code Style -> Dart -> Line length, set it to 120. Enable auto-format with Preferences -> Languages & Frameworks -> Flutter -> Format code on save.
|
||||||
|
|
||||||
|
`./swift-format.sh` can be used to format Swift code in the repo.
|
||||||
|
|
||||||
|
Once `swift-format` supports ignoring directories (<https://github.com/swiftlang/swift-format/issues/870>), we can move to a method of running it more like what <https://calebhearth.com/swift-format-github-action> describes.
|
||||||
|
|
||||||
# Release
|
# Release
|
||||||
|
|
||||||
|
|
50
swift-format.sh
Executable file
50
swift-format.sh
Executable file
|
@ -0,0 +1,50 @@
|
||||||
|
#!/bin/bash
|
||||||
|
##===----------------------------------------------------------------------===##
|
||||||
|
##
|
||||||
|
## This source file is part of the Swift.org open source project
|
||||||
|
##
|
||||||
|
## Copyright (c) 2024 Apple Inc. and the Swift project authors
|
||||||
|
## Licensed under Apache License v2.0 with Runtime Library Exception
|
||||||
|
##
|
||||||
|
## See https://swift.org/LICENSE.txt for license information
|
||||||
|
## See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors
|
||||||
|
##
|
||||||
|
##===----------------------------------------------------------------------===##
|
||||||
|
|
||||||
|
# Vendored from <https://github.com/swiftlang/github-workflows/blob/main/.github/workflows/scripts/check-swift-format.sh> while <https://github.com/swiftlang/swift-format/issues/870> is open.
|
||||||
|
|
||||||
|
# This file has been modified to only check formatting, with no linting, and to require a `check` command flag to fail when formatting was performed.
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
log() { printf -- "** %s\n" "$*" >&2; }
|
||||||
|
error() { printf -- "** ERROR: %s\n" "$*" >&2; }
|
||||||
|
fatal() { error "$@"; exit 1; }
|
||||||
|
|
||||||
|
|
||||||
|
if [[ -f .swiftformatignore ]]; then
|
||||||
|
log "Found swiftformatignore file..."
|
||||||
|
|
||||||
|
log "Running swift format format..."
|
||||||
|
tr '\n' '\0' < .swiftformatignore| xargs -0 -I% printf '":(exclude)%" '| xargs git ls-files -z '*.swift' | xargs -0 xcrun swift-format --parallel --recursive --in-place
|
||||||
|
|
||||||
|
# log "Running swift format lint..."
|
||||||
|
|
||||||
|
# tr '\n' '\0' < .swiftformatignore | xargs -0 -I% printf '":(exclude)%" '| xargs git ls-files -z '*.swift' | xargs -0 swift format lint --strict --parallel
|
||||||
|
else
|
||||||
|
log "Running swift format format..."
|
||||||
|
git ls-files -z '*.swift' | xargs -0 xcrun swift-format --parallel --recursive --in-place
|
||||||
|
|
||||||
|
# log "Running swift format lint..."
|
||||||
|
|
||||||
|
# git ls-files -z '*.swift' | xargs -0 swift format lint --strict --parallel
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "${1-default}" = "check" ]; then
|
||||||
|
log "Checking for modified files..."
|
||||||
|
|
||||||
|
GIT_PAGER='' git diff --exit-code '*.swift'
|
||||||
|
|
||||||
|
log "✅ Found no formatting issues."
|
||||||
|
fi
|
Loading…
Reference in a new issue