diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0794a280e..e8b2b6ff4 100755
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,21 @@
# Change Log
+## [0.48.0](/~https://github.com/nicklockwood/SwiftFormat/releases/tag/0.48.0) (2020-04-20)
+
+- Add `--emptybraces` to control how empty braces are formatted
+- The `redundantReturn` rule now removes redundant `return` statements in Void functions
+- The `redundantParens` rule now removes redundant parens around closure arguments
+- Fixed parsing error with complex `guard` statements
+- Extended `prefersKeyPath` to support `contains`, `allSatisfy` and `filter` methods
+- Fixed matching of excluded paths containing ../
+- Added support for using globs/wildcards in input paths
+- Eliminated false positives in change list when using `--lint` mode
+- File header comments are now inserted after the shebang/hashbang in executable Swift scripts
+- Xcode Extension now silently ignores rules requiring file info that isn't available to extensions
+- Fixed bug where `wrapEnumCases` rule was incorrectly applied to `if case` or `guard case`
+- Added `--report` argument for exporting formatting changes or lint violations as a JSON file
+- Improved tab layout in SwiftFormat for Xcode companion app
+
## [0.47.13](/~https://github.com/nicklockwood/SwiftFormat/releases/tag/0.47.13) (2020-03-21)
- Fixed bug where `--wrapreturntype if-multiline` would unexpectedly wrap a single-line method
diff --git a/CommandLineTool/swiftformat b/CommandLineTool/swiftformat
index a7bf3f94c..9019226b9 100755
Binary files a/CommandLineTool/swiftformat and b/CommandLineTool/swiftformat differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/CodeResources b/EditorExtension/SwiftFormat for Xcode.app/Contents/CodeResources
index a9af57162..536f09e89 100644
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/CodeResources and b/EditorExtension/SwiftFormat for Xcode.app/Contents/CodeResources differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftAppKit.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftAppKit.dylib
index c642c6fdc..619c02cfa 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftAppKit.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftAppKit.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCloudKit.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCloudKit.dylib
index 571cc0df8..9d7e2dc7f 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCloudKit.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCloudKit.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftContacts.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftContacts.dylib
index ebb40dda6..ea489037d 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftContacts.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftContacts.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCore.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCore.dylib
index a9a03b4d3..2a25aefea 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCore.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCore.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreData.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreData.dylib
index 92025a577..a29309568 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreData.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreData.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreFoundation.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreFoundation.dylib
index b8892b33b..92520a6e7 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreFoundation.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreFoundation.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreGraphics.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreGraphics.dylib
index 2952eae79..416fa0583 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreGraphics.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreGraphics.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreImage.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreImage.dylib
index 565996136..ee5b0b7aa 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreImage.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreImage.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreLocation.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreLocation.dylib
index d6a66d6e7..e1f61a823 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreLocation.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCoreLocation.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDarwin.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDarwin.dylib
index 79e62071d..511075d7e 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDarwin.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDarwin.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDispatch.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDispatch.dylib
index 77857c505..bda509c06 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDispatch.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDispatch.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftFoundation.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftFoundation.dylib
index 4ed9a7f94..83a3245f7 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftFoundation.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftFoundation.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftIOKit.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftIOKit.dylib
index 1f441620a..297e9a874 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftIOKit.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftIOKit.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftMetal.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftMetal.dylib
index 483e476ca..c2ae91e2e 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftMetal.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftMetal.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftObjectiveC.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftObjectiveC.dylib
index 234a346d4..476ecbd4d 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftObjectiveC.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftObjectiveC.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftQuartzCore.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftQuartzCore.dylib
index e2ad8c23c..d892ae9b9 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftQuartzCore.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftQuartzCore.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftXPC.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftXPC.dylib
index fe2979302..87237e68c 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftXPC.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftXPC.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftos.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftos.dylib
index 5af24a24b..9644ee029 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftos.dylib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftos.dylib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Info.plist b/EditorExtension/SwiftFormat for Xcode.app/Contents/Info.plist
index e3761ff9e..f769950a2 100644
--- a/EditorExtension/SwiftFormat for Xcode.app/Contents/Info.plist
+++ b/EditorExtension/SwiftFormat for Xcode.app/Contents/Info.plist
@@ -36,13 +36,13 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 0.47.13
+ 0.48.0
CFBundleSupportedPlatforms
MacOSX
CFBundleVersion
- 2
+ 1
DTCompiler
com.apple.compilers.llvm.clang.1_0
DTPlatformBuild
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/MacOS/SwiftFormat for Xcode b/EditorExtension/SwiftFormat for Xcode.app/Contents/MacOS/SwiftFormat for Xcode
index ff68affc7..3ed5db752 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/MacOS/SwiftFormat for Xcode and b/EditorExtension/SwiftFormat for Xcode.app/Contents/MacOS/SwiftFormat for Xcode differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Frameworks/XcodeKit.framework/Versions/A/XcodeKit b/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Frameworks/XcodeKit.framework/Versions/A/XcodeKit
index 77339a29a..d9995674d 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Frameworks/XcodeKit.framework/Versions/A/XcodeKit and b/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Frameworks/XcodeKit.framework/Versions/A/XcodeKit differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Info.plist b/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Info.plist
index 7983047b9..9fc383a69 100644
--- a/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Info.plist
+++ b/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Info.plist
@@ -17,13 +17,13 @@
CFBundlePackageType
XPC!
CFBundleShortVersionString
- 0.47.13
+ 0.48.0
CFBundleSupportedPlatforms
MacOSX
CFBundleVersion
- 2
+ 1
DTCompiler
com.apple.compilers.llvm.clang.1_0
DTPlatformBuild
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/MacOS/SwiftFormat b/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/MacOS/SwiftFormat
index 1a335ae3a..81c822deb 100755
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/MacOS/SwiftFormat and b/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/MacOS/SwiftFormat differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Assets.car b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Assets.car
index 82627aab5..1deacbc39 100644
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Assets.car and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Assets.car differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/9ZR-Qg-hHT-view-iDF-FY-6tf.nib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/9ZR-Qg-hHT-view-iDF-FY-6tf.nib
index 5a55db291..09f657650 100644
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/9ZR-Qg-hHT-view-iDF-FY-6tf.nib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/9ZR-Qg-hHT-view-iDF-FY-6tf.nib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist
index 7b032a149..1b6cac522 100644
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/Info.plist differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib
index bc3b22072..3ac3f96b4 100644
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainMenu.nib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainWindowTabViewController.nib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainWindowTabViewController.nib
index a03cf9046..1791b6568 100644
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainWindowTabViewController.nib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/MainWindowTabViewController.nib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib
index c7a0ac536..cabc17bb4 100644
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/RulesViewController.nib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/RulesViewController.nib
index 87348af5e..a7174b011 100644
Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/RulesViewController.nib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/RulesViewController.nib differ
diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/_CodeSignature/CodeResources b/EditorExtension/SwiftFormat for Xcode.app/Contents/_CodeSignature/CodeResources
index cf753d6d0..f14e3fb05 100644
--- a/EditorExtension/SwiftFormat for Xcode.app/Contents/_CodeSignature/CodeResources
+++ b/EditorExtension/SwiftFormat for Xcode.app/Contents/_CodeSignature/CodeResources
@@ -10,31 +10,31 @@
Resources/Assets.car
- gbLTp/AI7g9i1c3Se53BAX8V+48=
+ MfJM2unUZQPtBwqL4mDxgvR3/z8=
Resources/Base.lproj/Main.storyboardc/9ZR-Qg-hHT-view-iDF-FY-6tf.nib
- 9/zqRrUDqA4WWEAVJ6tE2xq+4/c=
+ lBv4mtqDP1vHCo8UHg+Wl4a3TRY=
Resources/Base.lproj/Main.storyboardc/Info.plist
- 2e+T6hLEud5F+Yl4N0vaNboy2iU=
+ L708n8XznpfeO6F0S3cE2u1hdRU=
Resources/Base.lproj/Main.storyboardc/MainMenu.nib
- dc15nojlDmYCdKABEQsKt9jTqj0=
+ n8+x2ZsJYHknBHVF0x8QddYoDZM=
Resources/Base.lproj/Main.storyboardc/MainWindowTabViewController.nib
- eiWHaj4YDaRNKyegerYhcDw8YfA=
+ I7PN8Sa8QVjne4KTEatN7FTuHz4=
Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib
- 76HkX6xxh3eouxIkYpPpEfcSsgs=
+ ABz8CVcMqXZ5GQ9ReBPztm9Rqa4=
Resources/Base.lproj/Main.storyboardc/RulesViewController.nib
- WrXIeezEqjHgTo0/Tpb40NpehUA=
+ DqbDes6ypNC2LPw/yq7C5uLCJ7s=
Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib
@@ -209,7 +209,7 @@
cdhash
- Q/5NG3wODVTVKwMPsalBcBr012Y=
+ b+1+Z62FeL3YCqIgNr2VYKMnOj4=
requirement
anchor apple generic and identifier "com.charcoaldesign.SwiftFormat-for-Xcode.SourceEditorExtension" and (certificate leaf[field.1.2.840.113635.100.6.1.9] /* exists */ or certificate 1[field.1.2.840.113635.100.6.2.6] /* exists */ and certificate leaf[field.1.2.840.113635.100.6.1.13] /* exists */ and certificate leaf[subject.OU] = "8VQKF583ED")
@@ -225,49 +225,49 @@
hash2
- 1gAo6mSNXGfNbeldi/9fPoLV9rHoch91SR5yRKtlmts=
+ WHAZxixqpeacdi4QE0LCdxELfxvoie6KKvHigO0lFoA=
Resources/Base.lproj/Main.storyboardc/9ZR-Qg-hHT-view-iDF-FY-6tf.nib
hash2
- 0Up8gHwQQURdhLh2v+ZmZCUU3Eczic28M3eDlUZ9+1Y=
+ OZZiDnDqh5gKfQrTrXPEHg8Mers4bXgbjy7CUnBNixs=
Resources/Base.lproj/Main.storyboardc/Info.plist
hash2
- +K+eD2kvbP/5VV8DtXyy11dPqfYBuhT5gQjkwDhAXzI=
+ cmXM0rg6A0xrbP5DuULFVkQ02NhssY2aOsOON5RzFVQ=
Resources/Base.lproj/Main.storyboardc/MainMenu.nib
hash2
- v5jf6dJFfJWJM4eI0JLtsr9ThKt0LUW975p7W+uy8sk=
+ QE++lPdjL0oTXHDLhzm3+YXoOk3xpo9nhfmdGfsG4T0=
Resources/Base.lproj/Main.storyboardc/MainWindowTabViewController.nib
hash2
- r0wzRuROTHSqPoSphOAOqajJ/Y4vsxcarZ+u5PFLsBg=
+ jLYQ2PxRthl2UqiCItgZFJIMuO+85qoqDhcFAeGCx+M=
Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib
hash2
- qjvEOaGJWFi0HKtcr4aB468FBhNXA5n0rvhDMDzGrIY=
+ j8y6SmGQkDepcXoZvS79zHyvDS+FtyEd8NnnTbBlSI0=
Resources/Base.lproj/Main.storyboardc/RulesViewController.nib
hash2
- TBPVImUzxfe+Kllcq7gsEZ9jLaIAuLjorkA2IHYBoUc=
+ 3obgpbwV3vYQsB2jzf/1aSyIohkU4HrCxcLy/q+XRWA=
Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib
diff --git a/README.md b/README.md
index 5fad69cb7..063046f33 100644
--- a/README.md
+++ b/README.md
@@ -773,7 +773,7 @@ Known issues
Tip Jar
-----------
-SwiftFormat is not a commercially-funded product, it's a labour of love given freely to the community. If you find it useful, please consider making a donation.
+SwiftFormat is not a commercially-funded product, it's a labor of love given freely to the community. If you find it useful, please consider making a donation.
[](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=9ZGWNK5FEZFF6&source=url)
@@ -799,6 +799,7 @@ Credits
* [Benedek Kozma](/~https://github.com/cyberbeni) - Lint-only rules option
* [Juri Pakaste](/~https://github.com/juri) - Filelist feature
* [Jim Puls](/~https://github.com/puls) - Big Sur icon update
+* [Daniele Formichelli](/~https://github.com/danyf90) - JSON reporter
* [Nick Lockwood](/~https://github.com/nicklockwood) - Everything else
([Full list of contributors](/~https://github.com/nicklockwood/SwiftFormat/graphs/contributors))
diff --git a/Rules.md b/Rules.md
index 39dbb71e7..b24665c4e 100644
--- a/Rules.md
+++ b/Rules.md
@@ -827,8 +827,10 @@ Convert trivial `map { $0.foo }` closures to keyPath-based syntax.
```diff
- let barArray = fooArray.map { $0.bar }
-
+ let barArray = fooArray.map(\.bar)
+
+- let barArray = fooArray.compactMap { $0.optionalBar }
++ let barArray = fooArray.compactMap(\.optionalBar)
```
diff --git a/Sources/Formatter.swift b/Sources/Formatter.swift
index e33984554..8b7c3b970 100644
--- a/Sources/Formatter.swift
+++ b/Sources/Formatter.swift
@@ -2,7 +2,7 @@
// Formatter.swift
// SwiftFormat
//
-// Version 0.47.13
+// Version 0.48.0
//
// Created by Nick Lockwood on 12/08/2016.
// Copyright 2016 Nick Lockwood
diff --git a/Sources/Rules.swift b/Sources/Rules.swift
index a5b713925..0fa0b7169 100644
--- a/Sources/Rules.swift
+++ b/Sources/Rules.swift
@@ -639,7 +639,7 @@ public struct _FormatRules {
help: "Remove redundant type from variable declarations.",
options: ["redundanttype"]
) { formatter in
- formatter.forEachToken(where: { (token) -> Bool in
+ formatter.forEachToken(where: { token -> Bool in
token == .keyword("var") || token == .keyword("let")
}) { i, _ in
guard let colonIndex = formatter.index(after: i, where: {
@@ -4142,7 +4142,7 @@ public struct _FormatRules {
guard enums.count > 1 else { return } // nothing to sort
- let sorted: [Range] = enums.sorted { (range1, range2) -> Bool in
+ let sorted: [Range] = enums.sorted { range1, range2 -> Bool in
let lhs = formatter.tokens[range1]
.compactMap { $0.isIdentifier || $0.isStringBody || $0.isNumber ? $0.string : nil }
let rhs = formatter.tokens[range2]
diff --git a/Sources/SwiftFormat.swift b/Sources/SwiftFormat.swift
index c72cdb744..bc6abce64 100644
--- a/Sources/SwiftFormat.swift
+++ b/Sources/SwiftFormat.swift
@@ -32,7 +32,7 @@
import Foundation
/// The current SwiftFormat version
-let swiftFormatVersion = "0.47.13"
+let swiftFormatVersion = "0.48.0"
public let version = swiftFormatVersion
/// The standard SwiftFormat config file name
diff --git a/Sources/Tokenizer.swift b/Sources/Tokenizer.swift
index 706325ecc..e9b643215 100644
--- a/Sources/Tokenizer.swift
+++ b/Sources/Tokenizer.swift
@@ -2,7 +2,7 @@
// Tokenizer.swift
// SwiftFormat
//
-// Version 0.47.13
+// Version 0.48.0
//
// Created by Nick Lockwood on 11/08/2016.
// Copyright 2016 Nick Lockwood
diff --git a/SwiftFormat.podspec.json b/SwiftFormat.podspec.json
index ea9da77a3..59ef39130 100644
--- a/SwiftFormat.podspec.json
+++ b/SwiftFormat.podspec.json
@@ -1,6 +1,6 @@
{
"name": "SwiftFormat",
- "version": "0.47.13",
+ "version": "0.48.0",
"license": {
"type": "MIT",
"file": "LICENSE.md"
@@ -10,7 +10,7 @@
"authors": "Nick Lockwood",
"source": {
"git": "/~https://github.com/nicklockwood/SwiftFormat.git",
- "tag": "0.47.13"
+ "tag": "0.48.0"
},
"default_subspecs": "Core",
"subspecs": [
@@ -29,8 +29,8 @@
}
],
"platforms": {
- "ios": "9.0",
- "tvos": "9.0",
+ "ios": "11.0",
+ "tvos": "11.0",
"osx": "10.12"
},
"swift_versions": "4.2",
diff --git a/SwiftFormat.xcodeproj/project.pbxproj b/SwiftFormat.xcodeproj/project.pbxproj
index 61eb29818..051e1fd4b 100644
--- a/SwiftFormat.xcodeproj/project.pbxproj
+++ b/SwiftFormat.xcodeproj/project.pbxproj
@@ -1099,7 +1099,7 @@
"@executable_path/../Frameworks",
"@loader_path/Frameworks",
);
- MARKETING_VERSION = 0.47.13;
+ MARKETING_VERSION = 0.48.0;
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.SwiftFormat;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -1127,7 +1127,7 @@
"@executable_path/../Frameworks",
"@loader_path/Frameworks",
);
- MARKETING_VERSION = 0.47.13;
+ MARKETING_VERSION = 0.48.0;
PRODUCT_BUNDLE_IDENTIFIER = com.charcoaldesign.SwiftFormat;
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@@ -1223,7 +1223,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
- MARKETING_VERSION = 0.47.13;
+ MARKETING_VERSION = 0.48.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.charcoaldesign.SwiftFormat-for-Xcode";
PRODUCT_NAME = "SwiftFormat for Xcode";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1253,7 +1253,7 @@
"@executable_path/../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
- MARKETING_VERSION = 0.47.13;
+ MARKETING_VERSION = 0.48.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.charcoaldesign.SwiftFormat-for-Xcode";
PRODUCT_NAME = "SwiftFormat for Xcode";
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1281,7 +1281,7 @@
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
- MARKETING_VERSION = 0.47.13;
+ MARKETING_VERSION = 0.48.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.charcoaldesign.SwiftFormat-for-Xcode.SourceEditorExtension";
PRODUCT_NAME = SwiftFormat;
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -1311,7 +1311,7 @@
"@executable_path/../../../../Frameworks",
);
MACOSX_DEPLOYMENT_TARGET = 10.14;
- MARKETING_VERSION = 0.47.13;
+ MARKETING_VERSION = 0.48.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.charcoaldesign.SwiftFormat-for-Xcode.SourceEditorExtension";
PRODUCT_NAME = SwiftFormat;
PROVISIONING_PROFILE_SPECIFIER = "";
diff --git a/Tests/Info.plist b/Tests/Info.plist
index c40813da3..a0b4cc05c 100644
--- a/Tests/Info.plist
+++ b/Tests/Info.plist
@@ -15,7 +15,7 @@
CFBundlePackageType
BNDL
CFBundleShortVersionString
- 0.47.13
+ 0.48.0
CFBundleSignature
????
CFBundleVersion