Skip to content

Add missing XML documentation for Microsoft.Extensions.FileSystemGlobbing APIs - #125447

Merged
svick merged 4 commits into
mainfrom
copilot/add-api-documentation-globbing
Mar 17, 2026
Merged

Add missing XML documentation for Microsoft.Extensions.FileSystemGlobbing APIs#125447
svick merged 4 commits into
mainfrom
copilot/add-api-documentation-globbing

Conversation

CopilotAI commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

Fixes#43908.

  • Add <summary> XML documentation to MatcherExtensions class
  • Fix FilePatternMatch.GetHashCode()<returns> tag
  • Fix constructor summaries to follow guidelines in FilePatternMatch, Matcher, InMemoryDirectoryInfo
  • Add protected constructor with doc to FileSystemInfoBase
  • Add protected constructor with doc to FileInfoBase
  • Add protected constructor with doc to DirectoryInfoBase
  • Fix property summaries in FileSystemInfoBase to follow "Gets..." pattern
  • Fix constructor summaries in DirectoryInfoWrapper, FileInfoWrapper, PatternMatchingResult to follow guidelines
  • Fix FileInfoWrapper.FullName remarks (incorrectly referenced FileSystemInfo.Name, now FileSystemInfo.FullName)
Original prompt

This section details on the original issue you should resolve

<issue_title>API documentation debt - Microsoft.Extensions.FileSystemGlobbing</issue_title>
<issue_description>Area owners: @maryamariyan@carlossanlop@jozkee

The APIs in the list below are missing some or all of their documentation. Please add the missing documentation directly in triple slash comments in source. We will make sure it gets ported to dotnet-api-docs after it's merged.

Make sure to follow the documentation guidelines defined in the dotnet-api-docs wiki:
https://github.com/dotnet/dotnet-api-docs/wiki

Also please add me as a PR reviewer.

Community contributions are welcome.

Microsoft.Extensions.FileSystemGlobbing
DocIdSummaryParametersTypeParametersReturnValueSource File PathDocs URL
Microsoft.Extensions.FileSystemGlobbing namespaceMissingNANANAhttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/ns-Microsoft.Extensions.FileSystemGlobbing.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing?branch=master
Microsoft.Extensions.FileSystemGlobbing.Abstractions namespaceMissingNANANAhttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/ns-Microsoft.Extensions.FileSystemGlobbing.Abstractions.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.Abstractions?branch=master
M:Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase.#ctorMissingNANANAhttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing.Abstractions/DirectoryInfoBase.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoBase.-ctor?branch=master
M:Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoWrapper.EnumerateFileSystemInfosMissingNANAMissinghttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing.Abstractions/DirectoryInfoWrapper.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoWrapper.EnumerateFileSystemInfos?branch=master
M:Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoWrapper.GetFile(System.String)MissingMissingNAMissinghttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing.Abstractions/DirectoryInfoWrapper.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoWrapper.GetFile?branch=master
M:Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase.#ctorMissingNANANAhttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing.Abstractions/FileInfoBase.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileInfoBase.-ctor?branch=master
M:Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase.#ctorMissingNANANAhttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing.Abstractions/FileSystemInfoBase.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.Abstractions.FileSystemInfoBase.-ctor?branch=master
M:Microsoft.Extensions.FileSystemGlobbing.InMemoryDirectoryInfo.EnumerateFileSystemInfosMissingNANAMissinghttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing/InMemoryDirectoryInfo.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.InMemoryDirectoryInfo.EnumerateFileSystemInfos?branch=master
M:Microsoft.Extensions.FileSystemGlobbing.InMemoryDirectoryInfo.GetDirectory(System.String)MissingMissingNAMissinghttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing/InMemoryDirectoryInfo.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.InMemoryDirectoryInfo.GetDirectory?branch=master
P:Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoWrapper.NameMissingNANANAhttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing.Abstractions/DirectoryInfoWrapper.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Microsoft.Extensions.FileSystemGlobbing.Abstractions.DirectoryInfoWrapper.Name?branch=master
P:Microsoft.Extensions.FileSystemGlobbing.InMemoryDirectoryInfo.FullNameMissingNANANAhttps://github.com/dotnet/dotnet-api-docs/blob/master/xml/Microsoft.Extensions.FileSystemGlobbing/InMemoryDirectoryInfo.xmlhttps://review.docs.microsoft.com/en-us/dotnet/api/Micro...

🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. Learn more about Advanced Security.

…bing APIs
Co-authored-by: svick <287848+svick@users.noreply.github.com>
CopilotAI changed the title [WIP] Add missing API documentation for FileSystemGlobbingAdd missing XML documentation for Microsoft.Extensions.FileSystemGlobbing APIsMar 11, 2026
…temGlobbing
Co-authored-by: svick <287848+svick@users.noreply.github.com>
@svick
svick marked this pull request as ready for review March 11, 2026 15:33
CopilotAI review requested due to automatic review settings March 11, 2026 15:33
@svick

Copy link
Copy Markdown
Member

cc: @carlossanlop, in case you're still interested

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR addresses API documentation debt in Microsoft.Extensions.FileSystemGlobbing by adding/fixing XML documentation comments so the public surface is correctly described in generated docs.

Changes:

  • Add missing type/ctor XML docs and standardize constructor summaries across key globbing and abstraction types.
  • Fix incorrect/low-quality XML docs (e.g., GetHashCode()<returns>, FileInfoWrapper.FullName remarks, property “Gets…” wording).
  • Add documented protected constructors to the abstraction base types to ensure constructors are properly documented.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/PatternMatchingResult.csUpdates constructor XML summaries (but exposes an existing null-handling bug in the 1-arg ctor).
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/MatcherExtensions.csAdds missing <summary> for the extensions class.
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Matcher.csStandardizes constructor summaries to “Initializes a new instance…”.
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/InMemoryDirectoryInfo.csStandardizes constructor summaries (incl. case-sensitivity wording).
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/FilePatternMatch.csFixes ctor summary and improves GetHashCode() documentation.
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/FileSystemInfoBase.csAdds documented protected ctor; updates property summaries to “Gets…”.
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/FileInfoWrapper.csFixes ctor summary and corrects FullName remarks to reference FileSystemInfo.FullName.
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/FileInfoBase.csAdds documented protected ctor.
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/DirectoryInfoWrapper.csStandardizes ctor summary.
src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/Abstractions/DirectoryInfoBase.csAdds documented protected ctor.
Comments suppressed due to low confidence (1)

src/libraries/Microsoft.Extensions.FileSystemGlobbing/src/PatternMatchingResult.cs:22

  • PatternMatchingResult(IEnumerable<FilePatternMatch> files) calls files.Any() before any null validation, so passing null will throw a NullReferenceException rather than the ArgumentNullException enforced by the other constructor. Consider validating files before computing hasMatches, and you can also drop the redundant Files = files; assignment since the chained constructor already sets it.
 public PatternMatchingResult(IEnumerable<FilePatternMatch> files)
: this(files, hasMatches: files.Any())
{
Files = files;

@mrek-msft

Copy link
Copy Markdown
Member

Is there any real value? I think we do not need comment that constructor on X creates instance of X and similar.

@svick

Copy link
Copy Markdown
Member

@mrek-msft I think the value is mostly consistency. Empty documentation looks like we forgot to document it.

@svick

Copy link
Copy Markdown
Member

/ba-g This PR is only changing documentation, the iOS test failures are unrelated.

@svick
svick merged commit 31aee70 into mainMar 17, 2026
84 of 90 checks passed
@svick
svick deleted the copilot/add-api-documentation-globbing branch March 17, 2026 12:48
@github-actionsgithub-actionsBot locked and limited conversation to collaborators Apr 17, 2026
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

API documentation debt - Microsoft.Extensions.FileSystemGlobbing

5 participants

@svick@mrek-msft@rosebyte