diff --git a/CHANGELOG.md b/CHANGELOG.md index f2b646f1..5b010864 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Change Log +## [0.39.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.39.0) (2019-02-04) + +- Added `redundantFileprivate` rule, which replaces `fileprivate` with `private` where possible +- Added `redundantExtensionACL` rule, to remove redundant access level keywords inside extensions +- Added `typeSugar` rule to replace Array, Dictionary and Optional types with shorthand forms +- Added `redundantObjc` rule, which removes unnecessary `@objc` annotations +- Added `—selfrequired` option for excluding `@autoclosure` arguments from `redundantSelf` rule +- The `isEmpty` rule is now enabled by default, as the risk of false positives is fairly low +- Enhanced the `fileHeader` rule with macros for file name and creation date +- Added AppleScript integration instructions (thanks to @Lutzifer) + ## [0.38.0](https://github.com/nicklockwood/SwiftFormat/releases/tag/0.38.0) (2019-01-29) - Added support for building, running and testing SwiftFormat on Linux diff --git a/CommandLineTool/swiftformat b/CommandLineTool/swiftformat index bca86aeb..310591d1 100755 Binary files a/CommandLineTool/swiftformat and b/CommandLineTool/swiftformat differ diff --git a/EditorExtension/Application/Info.plist b/EditorExtension/Application/Info.plist index dad60858..f860a808 100644 --- a/EditorExtension/Application/Info.plist +++ b/EditorExtension/Application/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.38.0 + 0.39.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) LSMinimumSystemVersion diff --git a/EditorExtension/Application/Source/AppDelegate.swift b/EditorExtension/Application/Source/AppDelegate.swift index ad34f5e6..a4dd1ca7 100644 --- a/EditorExtension/Application/Source/AppDelegate.swift +++ b/EditorExtension/Application/Source/AppDelegate.swift @@ -72,7 +72,6 @@ class AppDelegate: NSObject, NSApplicationDelegate { return loadConfiguration(URL(fileURLWithPath: file)) } - @objc @IBAction func resetToDefault(_: NSMenuItem) { UserDefaults(suiteName: UserDefaults.groupDomain)?.clearAll(in: UserDefaults.groupDomain) RulesStore().resetRulesToDefaults() @@ -80,7 +79,6 @@ class AppDelegate: NSObject, NSApplicationDelegate { NotificationCenter.default.post(name: .applicationDidLoadNewConfiguration, object: nil) } - @objc @IBAction func openConfiguration(_: NSMenuItem) { guard let window = window else { return @@ -102,7 +100,6 @@ class AppDelegate: NSObject, NSApplicationDelegate { } } - @objc @IBAction func saveConfiguration(_: NSMenuItem) { guard let window = window else { return diff --git a/EditorExtension/Extension/Info.plist b/EditorExtension/Extension/Info.plist index 33c0ec7f..d088b011 100644 --- a/EditorExtension/Extension/Info.plist +++ b/EditorExtension/Extension/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 0.38.0 + 0.39.0 CFBundleVersion $(CURRENT_PROJECT_VERSION) LSMinimumSystemVersion diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftAppKit.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftAppKit.dylib index 10db4510..b7213224 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/libswiftCore.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftCore.dylib index deb6fc5e..64722318 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 fe8fac81..7a9f50e0 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 cb4b4247..ee16f86f 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 bbe4bb91..478a99e1 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 fbe83c9c..abe5ba10 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/libswiftDarwin.dylib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Frameworks/libswiftDarwin.dylib index a1dc9f76..c625a85b 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 97064a1a..1fd1a23d 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 b6585bf2..911f019b 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 4ca7d858..b0b51572 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 d7b02e0a..f363a7a4 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 3595e8d1..31ffbf7d 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 cc268ceb..d738cc29 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 2751e561..acc155dd 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 4aaf637f..f05cc4d5 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 5e8ac31f..2ae09d69 100644 --- a/EditorExtension/SwiftFormat for Xcode.app/Contents/Info.plist +++ b/EditorExtension/SwiftFormat for Xcode.app/Contents/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.38.0 + 0.39.0 CFBundleSupportedPlatforms MacOSX 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 db017366..d9ef1ee2 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/Info.plist b/EditorExtension/SwiftFormat for Xcode.app/Contents/PlugIns/SwiftFormat.appex/Contents/Info.plist index a973ce08..8e0e3ace 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,7 +17,7 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 0.38.0 + 0.39.0 CFBundleSupportedPlatforms MacOSX 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 c8115ded..7cecb0bb 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/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 eb0fc44b..5a3941fd 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 1b41e398..1f3c3b31 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 de5e89ff..4b3cade5 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 b2923985..5970c6d2 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 a6206843..26d64a55 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 ac194b66..70e0d34f 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/Resources/Base.lproj/Main.storyboardc/lOk-3C-AtC-view-Efh-0R-Cg8.nib b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/lOk-3C-AtC-view-Efh-0R-Cg8.nib index 651ee76f..6ebecef4 100644 Binary files a/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/lOk-3C-AtC-view-Efh-0R-Cg8.nib and b/EditorExtension/SwiftFormat for Xcode.app/Contents/Resources/Base.lproj/Main.storyboardc/lOk-3C-AtC-view-Efh-0R-Cg8.nib differ diff --git a/EditorExtension/SwiftFormat for Xcode.app/Contents/_CodeSignature/CodeResources b/EditorExtension/SwiftFormat for Xcode.app/Contents/_CodeSignature/CodeResources index 4ebbc8cd..265cd38b 100644 --- a/EditorExtension/SwiftFormat for Xcode.app/Contents/_CodeSignature/CodeResources +++ b/EditorExtension/SwiftFormat for Xcode.app/Contents/_CodeSignature/CodeResources @@ -6,27 +6,27 @@ Resources/Base.lproj/Main.storyboardc/9ZR-Qg-hHT-view-iDF-FY-6tf.nib - MdU70HHsM1yUwmV5Ba0O1KOQap4= + 6FN6HFGhd5LXEVTycl94aCV5e1I= Resources/Base.lproj/Main.storyboardc/Info.plist - 5ewIgXT//Hmy9FpXlWmeqdYk+gM= + nQhekzFBCiPY0uGKvTWva6FaRDU= Resources/Base.lproj/Main.storyboardc/MainMenu.nib - IA4ThP/ZoMRKa0GbRIxDmXQJyc4= + j2yGKXVQdrAsjLvtzwfRhNgjV9g= Resources/Base.lproj/Main.storyboardc/MainWindowTabViewController.nib - Q4eNT0Kx4IkRRnB3SqX1vpnL894= + 2Kg7lAr5SP9Jr+aGj0JuC8QELFs= Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib - okpaFY1/yU6F26nxiz3krvEZc3M= + bvuvK1/hB6I6AK5RonwExrEs8X8= Resources/Base.lproj/Main.storyboardc/RulesViewController.nib - dUdVwKdx1ivSy3WegAVC3gVRlYw= + 04OLsno394eXwn/II0UCksR99XU= Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib @@ -34,7 +34,7 @@ Resources/Base.lproj/Main.storyboardc/lOk-3C-AtC-view-Efh-0R-Cg8.nib - +vNCKkQ5RH3REgwfsM9dRoNXylc= + IYvVqauVOXTy8xae82lospdS1xs= Resources/libswiftRemoteMirror.dylib @@ -182,7 +182,7 @@ cdhash - RUpekHUQoXIXTFIwZhjXV8yT3MQ= + uWP9NM+GIAgzRJU7jCC47iuR9bY= 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") @@ -191,66 +191,66 @@ hash - MdU70HHsM1yUwmV5Ba0O1KOQap4= + 6FN6HFGhd5LXEVTycl94aCV5e1I= hash2 - OPgriInWWhf2o4Jgra3rtnGM1pIEMcteM7QeRg0lFP8= + 1Q9yn5cVh9eHBpS0zS1+949VctpIT6KcMYYFL2NfdJY= Resources/Base.lproj/Main.storyboardc/Info.plist hash - 5ewIgXT//Hmy9FpXlWmeqdYk+gM= + nQhekzFBCiPY0uGKvTWva6FaRDU= hash2 - +oOr4vnHWbKu48JKgpsBaDa6WrMsuTcjh7STQ9+R88c= + CgHskGo5i9GQhk8FavPbqDjGIzVuxm6jH8y68SpYBOs= Resources/Base.lproj/Main.storyboardc/MainMenu.nib hash - IA4ThP/ZoMRKa0GbRIxDmXQJyc4= + j2yGKXVQdrAsjLvtzwfRhNgjV9g= hash2 - 1TxkyBO1Zi+2S0+fDT9zHBWm5IeE7DAOOc176odGK+g= + dwEDxueDhSULoTenICkSrp8oqWvPZOApALcnJOt00bs= Resources/Base.lproj/Main.storyboardc/MainWindowTabViewController.nib hash - Q4eNT0Kx4IkRRnB3SqX1vpnL894= + 2Kg7lAr5SP9Jr+aGj0JuC8QELFs= hash2 - o09f6TJIRBBb4lE4v/G81IBxO14ikL5lvLSSclcGVLc= + sknPKOHU0+5PKrjg1W822f+mWZzm4Jt4gXqTuJNzckU= Resources/Base.lproj/Main.storyboardc/NSWindowController-B8D-0N-5wS.nib hash - okpaFY1/yU6F26nxiz3krvEZc3M= + bvuvK1/hB6I6AK5RonwExrEs8X8= hash2 - UtKJYjHYkGhpGD8k+P9ar2K/dZl3dvShKC/SOQxutOE= + DIMPpQPvyR8+D5IWjAV9GJ295+UBNMPKSMXf6lZUXNY= Resources/Base.lproj/Main.storyboardc/RulesViewController.nib hash - dUdVwKdx1ivSy3WegAVC3gVRlYw= + 04OLsno394eXwn/II0UCksR99XU= hash2 - zcWvluhZjsk2+OmBupxmbNSG14/+N/RDbv/qZh7d2no= + Rd/E3HvvKGL4UbeP6XP84AmQ4/EvalFyildKsOWbAx0= Resources/Base.lproj/Main.storyboardc/XfG-lQ-9wD-view-m2S-Jp-Qdl.nib @@ -268,11 +268,11 @@ hash - +vNCKkQ5RH3REgwfsM9dRoNXylc= + IYvVqauVOXTy8xae82lospdS1xs= hash2 - J+OsRm99MNwcgsfcH4LiUqvkXaRdKiN82bAt5pyKDH8= + f3g5YBZm86kNNQumnU7s5QUbFC4Ud8A000JWI/QC5qs= Resources/libswiftRemoteMirror.dylib diff --git a/README.md b/README.md index f30ddeab..2b2615d4 100644 --- a/README.md +++ b/README.md @@ -207,10 +207,10 @@ fi This is not recommended for shared projects however, as different team members using different versions of SwiftFormat may result in noise in the commits as code gets reformatted inconsistently. -Via Applescript +Via AppleScript ---------------- -To run swiftformat on the frontmost Xcode document (project or workspace) you can use the following applescript: +To run swiftformat on the frontmost Xcode document (project or workspace) you can use the following AppleScript: ```applescript tell application "Xcode" @@ -220,8 +220,7 @@ tell application "Xcode" end tell ``` -Some Apps you can trigger this from are [BetterTouchTool](https://folivora.ai), [Alfred](https://www.alfredapp.com) or [Keyboard Maestro](https://www.keyboardmaestro.com/main/). -Another good way to trigger this, is to define a QuickAction for Xcode via Automator and then assign a keyboard shortcut for it in the System Settings. +Some Apps you can trigger this from are [BetterTouchTool](https://folivora.ai), [Alfred](https://www.alfredapp.com) or [Keyboard Maestro](https://www.keyboardmaestro.com/main/). Another option is to define a QuickAction for Xcode via Automator and then assign a keyboard shortcut for it in the System Preferences. VSCode plugin -------------- @@ -334,6 +333,28 @@ There is no need to manually re-enable a rule after using the `next` directive. Here are all the rules that SwiftFormat currently applies, and the effects that they have: +***andOperator*** - replaces the `&&` operator with `,` inside `if`, `guard` and `while` conditions: + +```diff +- if true && true { ++ if true, true { +``` + +```diff +- guard true && true else { ++ guard true, true else { +``` + +```diff +- if functionReturnsBool() && true { ++ if functionReturnsBool(), true { +``` + +```diff +- if functionReturnsBool() && variable { ++ if functionReturnsBool(), variable { +``` + ***anyObjectProtocol*** - replaces `class` with `AnyObject` in protocol definitions, as recommended in modern Swift guidelines: ```diff @@ -1244,28 +1265,6 @@ Or for `--wrapcollections beforefirst`: ] ``` -***andOperator*** - replaces the `&&` operator with `,` inside `if`, `guard` and `while` conditions: - -```diff -- if true && true { -+ if true, true { -``` - -```diff -- guard true && true else { -+ guard true, true else { -``` - -```diff -- if functionReturnsBool() && true { -+ if functionReturnsBool(), true { -``` - -```diff -- if functionReturnsBool() && variable { -+ if functionReturnsBool(), variable { -``` - Swift version ------------- @@ -1366,7 +1365,7 @@ Linting SwiftFormat is primarily designed as a formatter rather than a linter, i.e. it is designed to fix your code rather than tell you what's wrong with it. However, sometimes it can be useful to verify that code has been formatted in a context where it is not desirable to actually change it. -A typical example would be as part of a CI (Continuous Integration) process, where you may wish to have an automated script that checks committed code for style violations. While you could use a separate tool such as [SwiftLint](https://github.com/realm/SwiftLint) for this, it makes sense to be able to validate the formatting against the exact same rules as you are using to apply it. +A typical example would be as part of a CI (Continuous Integration) process, where you may wish to have an automated script that checks committed code for style violations. While you can use a separate tool such as [SwiftLint](https://github.com/realm/SwiftLint) for this, it makes sense to be able to validate the formatting against the exact same rules as you are using to apply it. In order to run SwiftFormat as a linter, you can use the `--lint` command-line option: @@ -1444,7 +1443,14 @@ Will be formatted as: FAQ ----- -There haven't been many questions yet, but here's what I'd like to think people are wondering: +*Q. How is this different from SwiftLint?* + +> A. SwiftLint is primarily designed to find and report code smells and style violations in your code. SwiftFormat is designed to fix them. While SwiftLint can autocorrect some issues, and SwiftFormat has some support for [linting](#linting), their primary goals are different. + + +*Q. Can SwiftFormat and SwiftLint be used together?* + +> A. Absolutely! The style rules encouraged by both tools are quite similar, and SwiftFormat even fixes some style violations that SwiftLint warns about, but can't currently autocorrect. *Q. What platforms does SwiftFormat support?* @@ -1587,6 +1593,7 @@ Credits * [Romain Pouclet](https://github.com/palleas) - Homebrew formula * [Ali Akhtarzada](https://github.com/aliak00) - Several path-related CLI enhancements * [Yonas Kolb](https://github.com/yonaskolb) - Swift Package Manager integration +* [Wolfgang Lutz](https://github.com/Lutzifer) - AppleScript integration instructions * [Nick Lockwood](https://github.com/nicklockwood) - Everything else ([Full list of contributors](https://github.com/nicklockwood/SwiftFormat/graphs/contributors)) diff --git a/Sources/Formatter.swift b/Sources/Formatter.swift index 3737aa46..2e6c659f 100644 --- a/Sources/Formatter.swift +++ b/Sources/Formatter.swift @@ -2,7 +2,7 @@ // Formatter.swift // SwiftFormat // -// Version 0.38.0 +// Version 0.39.0 // // Created by Nick Lockwood on 12/08/2016. // Copyright 2016 Nick Lockwood diff --git a/Sources/Info.plist b/Sources/Info.plist index acd1bee4..7b0a6f4f 100644 --- a/Sources/Info.plist +++ b/Sources/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 0.38.0 + 0.39.0 CFBundleSignature ???? CFBundleVersion diff --git a/Sources/SwiftFormat.swift b/Sources/SwiftFormat.swift index 66f04c17..622fa168 100644 --- a/Sources/SwiftFormat.swift +++ b/Sources/SwiftFormat.swift @@ -32,7 +32,7 @@ import Foundation /// The current SwiftFormat version -public let version = "0.38.0" +public let version = "0.39.0" /// The standard SwiftFormat config file name public let swiftFormatConfigurationFile = ".swiftformat" diff --git a/Sources/Tokenizer.swift b/Sources/Tokenizer.swift index 61a7d473..c55d5250 100644 --- a/Sources/Tokenizer.swift +++ b/Sources/Tokenizer.swift @@ -2,7 +2,7 @@ // Tokenizer.swift // SwiftFormat // -// Version 0.38.0 +// Version 0.39.0 // // Created by Nick Lockwood on 11/08/2016. // Copyright 2016 Nick Lockwood diff --git a/SwiftFormat.podspec.json b/SwiftFormat.podspec.json index 8a37a999..6b2b7012 100644 --- a/SwiftFormat.podspec.json +++ b/SwiftFormat.podspec.json @@ -1,6 +1,6 @@ { "name": "SwiftFormat", - "version": "0.38.0", + "version": "0.39.0", "license": { "type": "MIT", "file": "LICENSE.md" @@ -10,7 +10,7 @@ "authors": "Nick Lockwood", "source": { "git": "https://github.com/nicklockwood/SwiftFormat.git", - "tag": "0.38.0" + "tag": "0.39.0" }, "default_subspecs": "Core", "subspecs": [ diff --git a/Tests/Info.plist b/Tests/Info.plist index deaadb78..61d2f9f5 100644 --- a/Tests/Info.plist +++ b/Tests/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 0.38.0 + 0.39.0 CFBundleSignature ???? CFBundleVersion