Skip to content

[format_command] - fixed fallback logic within formatter command class #9410

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

Hamza-Bashir4586
Copy link

@Hamza-Bashir4586 Hamza-Bashir4586 commented Jun 10, 2025

*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

If you need help, consider asking for advice on the #hackers-new channel on Discord.

Footnotes

  1. 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

Copy link

google-cla bot commented Jun 10, 2025

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.

@Hamza-Bashir4586 Hamza-Bashir4586 changed the title fixed fallback logic within formatter command class [format_command] - fixed fallback logic within formatter command class Jun 10, 2025
@stuartmorgan-g stuartmorgan-g marked this pull request as draft June 10, 2025 18:19
@stuartmorgan-g
Copy link
Contributor

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants