Uh oh!
There was an error while loading. Please reload this page.
[format_command] - fixed fallback logic within formatter command class - #9410
[format_command] - fixed fallback logic within formatter command class#9410Hamza-Bashir4586 wants to merge 1 commit into
Conversation
Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). View this failed invocation of the CLA check for more information. For the most up to date status, view the checks section at the bottom of the pull request. |
stuartmorgan-g
commented
Jun 10, 2025
Marking as a draft since this is failing the CLA check, and thus we cannot currently review it. It looks like the commit that was uploaded is associated with a different email address than your GitHub account and the email address you used to sign the CLA. You'll need to fix the commit author and re-push. |
stuartmorgan-g
commented
Jun 24, 2025
Closing as obsolete; #9460 took a different approach to this. |
*This change enhances the FormatCommand’s Swift‐format resolution logic by introducing a third, macOS-specific lookup step. Now, if the user hasn’t provided --swift-format-path and no swift-format binary is found on the PATH, the tool will invoke:
xcrun --find swift-format
and, if that returns a valid path, use it to format and lint Swift files. If all three strategies fail (explicit override, PATH scan, xcrun), we print an error that also suggests installing Xcode 16+.
Key changes:
_findValidSwiftFormat() in format_command.dart:
Check --swift-format-path
Scan for any swift-format on PATH
New: On macOS, fall back to xcrun --find swift-format
On failure, updated error message to mention Xcode 16+.
Tests in format_command_test.dart:
Added a new test under the swift-format group that simulates macOS, forces both the explicit flag and PATH lookups to fail, stubs xcrun to return /usr/bin/swift-format, and then asserts that formatting and linting invocations use that fallback binary. This ensures full coverage of the new lookup path.
This PR resolves the following issue: #153803
*
Pre-Review Checklist
[shared_preferences]pubspec.yamlwith an appropriate new version according to the pub versioning philosophy, or I have commented below to indicate which version change exemption this PR falls under1.CHANGELOG.mdto add a description of the change, following repository CHANGELOG style, or I have commented below to indicate which CHANGELOG exemption this PR falls under1.///).If you need help, consider asking for advice on the #hackers-new channel on Discord.
Footnotes
Regular contributors who have demonstrated familiarity with the repository guidelines only need to comment if the PR is not auto-exempted by repo tooling. ↩↩2↩3