Skip to content
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

PHPCS: Add XML based sniff documentation #146

Merged
merged 11 commits into from
Jul 31, 2019

Conversation

jrfnl
Copy link
Collaborator

@jrfnl jrfnl commented Jul 25, 2019

PHP_CodeSniffer offers a build-in mechanism to offer documentation for sniffs.
This build-in mechanism works from the command-line and can generate text, markdown or HTML documentation.

This PR adds the XML documents to provide this documentation for all YoastCS native sniffs.

It also adds an additional check in one of the travis builds to make sure that the XML documents added are valid XML.

To test this PR, view the documentation added by it, by:

  1. Checking out this branch of YoastCS.
  2. Running the following command from the root of the repo:
    vendor/bin/phpcs --generator=Text --standard=Yoast --sniffs=Yoast.Commenting.CodeCoverageIgnoreDeprecated,Yoast.Commenting.CoversTag,Yoast.Commenting.Filecomment,Yoast.Commenting.TestsHaveCoversTag,Yoast.ControlStructures.IfElseDeclaration,Yoast.Files.FileName,Yoast.Files.TestDoubles,Yoast.Namespaces.NamespaceDeclaration,Yoast.WhiteSpace.FunctionSpacing,Yoast.Yoast.AlternativeFunctions
    This will show only the docs of the Yoast native sniffs.
    If you'd run vendor/bin/phpcs --generator=Text --standard=Yoast, you not only receive the docs of the Yoast native sniffs, but also the (available) docs for all sniffs included from other standards, such as WPCS and PHPCS upstream.

jrfnl and others added 11 commits July 25, 2019 14:36
Check that the XML sniff documentation files are well-formed and will not cause parse errors, i.e. have matching open/close tags.
Includes documentation on the error codes inherited from the upstream `Squiz.Commenting.FileComment` sniff.
Documents the error codes inherited from the upstream `Squiz.WhiteSpace.FunctionSpacing` sniff:
* with the property values as set in the Yoast version;
* with the limitation to OO structures as set in the Yoast version.
@jrfnl jrfnl added this to the 1.3.0 milestone Jul 25, 2019
@jrfnl jrfnl mentioned this pull request Jul 25, 2019
@jrfnl
Copy link
Collaborator Author

jrfnl commented Jul 31, 2019

FYI: There is a PR open in PHPCS itself to add a script which can check if sniffs are "feature complete", i.e. that each sniff is accompanied by unit tests as well as documentation.

Once that upstream PR has been merged, we can add a check to one of the Travis builds against PHPCS master to automatically make sure any new sniffs added to YoastCS are feature complete.

See: squizlabs/PHP_CodeSniffer#2364

@igorschoester igorschoester self-assigned this Jul 31, 2019
@IreneStr IreneStr merged commit 7e0801e into develop Jul 31, 2019
@IreneStr IreneStr deleted the JRF/add-xml-based-sniff-documentation branch July 31, 2019 08:45
@igorschoester igorschoester removed their assignment Jul 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants