Add SnippetValidator tool to check code example introductions match referenced snippets #11720
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.
This PR introduces a new validation tool that automatically checks if code example introductions in XML documentation files accurately match the content of their referenced code snippets.
Problem
The .NET API documentation contains thousands of code examples with introductory text that describes what the code demonstrates. However, there's currently no automated way to verify that these introductions actually match the code being shown. This can lead to documentation inconsistencies where:
LoadAsync
but the snippet uses synchronousLoad()
Solution
The
SnippetValidator
tool provides automated validation by::::code language="csharp" source="~/snippets/..." id="Snippet1":::
<snippet1>
to</snippet1>
)Usage
The tool supports multiple operation modes:
Example Issues Found
The tool successfully identifies real documentation problems:
LoadAsync vs Load Method Mismatch:
System.Media/SoundPlayer.xml:348
LoadAsync
method but snippet uses synchronousLoad()
methodAsync/Sync Operation Mismatch:
System.Media/SoundPlayer.xml:855
PlaySync
operations but snippet contains async loading codeFeatures
This tool helps maintain documentation quality by automatically detecting when code example descriptions drift from their actual implementations.
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.