Add PHP CS Fixer rule to format GraphQL heredocs#73
Merged
Conversation
Introduces GraphQLHeredocFixer which reformats the GraphQL operation inside `<<<'GRAPHQL' ... GRAPHQL` nowdoc strings using webonyx/graphql-php Printer::doPrint, indented to match the heredoc. Only single-quoted nowdocs are touched (a heredoc would interpolate GraphQL $variables); invalid GraphQL is left untouched. Runs before heredoc_indentation so re-indentation stays a no-op. Wired into .php-cs-fixer.php and applied to the existing fixtures so they use the canonical formatting. Covered by a functional test that drives the real php-cs-fixer token pipeline over fixture files, and documented in the README. https://claude.ai/code/session_0172zkGgfrZ2KQ8ngMJ1X3zr
Avoids php-cs-fixer's @internal extension API (AbstractFixer, WhitespacesAnalyzer) so the PHPStan internal-class ignores can be dropped. Indentation is now detected from the token stream directly, and the fixer is registered the standard way via registerCustomFixers() instead of the TicketSwap NameWrapper. https://claude.ai/code/session_0172zkGgfrZ2KQ8ngMJ1X3zr
40356f4 to
b1f2684
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduces GraphQLHeredocFixer which reformats the GraphQL operation
inside
<<<'GRAPHQL' ... GRAPHQLnowdoc strings usingwebonyx/graphql-php Printer::doPrint, indented to match the heredoc.
Only single-quoted nowdocs are touched (a heredoc would interpolate
GraphQL $variables); invalid GraphQL is left untouched. Runs before
heredoc_indentation so re-indentation stays a no-op.
Wired into .php-cs-fixer.php and applied to the existing fixtures so
they use the canonical formatting. Covered by a functional test that
drives the real php-cs-fixer token pipeline over fixture files, and
documented in the README.
https://claude.ai/code/session_0172zkGgfrZ2KQ8ngMJ1X3zr