Write and review XML API documentation for SkiaSharp following .NET guidelines. Triggers: "document class", "add XML docs", "write XML documentation", "add triple-slash comments", "review documentation quality", "check docs for errors", "fix doc issues", "fill in missing docs", "remove To be added placeholders", API documentation requests.
Write and review XML API documentation for SkiaSharp.
docs/ directory is a Git submodule pointing to mono/SkiaSharp-API-docs — changes must be committed and PR'd to that repositorymdoc — if new APIs were added, regenerate before editing (see Regenerating Docs)docs/SkiaSharpAPI/
├── SkiaSharp/ # Main namespace
│ ├── SKCanvas.xml # One XML file per type
│ ├── SKPaint.xml
│ ├── SKImage.xml
│ └── ...
├── HarfBuzzSharp/ # HarfBuzz namespace
├── SkiaSharp.Views.*/ # Platform-specific views
└── index.xml # Extension methods (auto-synced, don't edit)
docs/SkiaSharpAPI/<Namespace>/<TypeName>.xml<summary>, <param>, <returns>, <value> tags within <Docs> sectionsdotnet cake --target=docs-format-docs to validate and formatdotnet cake --target=docs-format-docs to validate# Find placeholders
grep -r "To be added" docs/SkiaSharpAPI/
# Find empty tags (self-closing)
grep -rE "<(summary|value|returns)\s*/>" docs/SkiaSharpAPI/
# Find empty tags (open/close with optional whitespace)
grep -rE "<(summary|value|returns)>\s*</" docs/SkiaSharpAPI/
# Find spelling errors (common ones)
grep -riE "teh|recieve|seperate|occured|paramter" docs/SkiaSharpAPI/
# Find whitespace issues
grep -rE " </| </" docs/SkiaSharpAPI/
When new APIs have been added (new classes, methods, properties), the XML doc files must be regenerated before you can document them. A daily GitHub Actions workflow does this automatically from the latest CI NuGet packages.
To regenerate locally (e.g., after adding new APIs):
dotnet tool restore
dotnet cake --target=docs-download-output # Download latest NuGets
dotnet cake --target=update-docs # Regenerate XML docs
New members will appear with "To be added." placeholders. See documentation/dev/writing-docs.md for full details.
To edit existing docs (no regeneration needed): just edit the XML files directly and run dotnet cake --target=docs-format-docs to format and validate.
CRITICAL: After completing all edits to an XML file, validate its XML syntax before moving to the next file.
# Validate a single file
xmllint --noout docs/SkiaSharpAPI/SkiaSharp/SKCanvas.xml
# Validate all XML files in a namespace
find docs/SkiaSharpAPI/SkiaSharp -name "*.xml" -exec xmllint --noout {} \;
# Validate entire docs directory
find docs/SkiaSharpAPI -name "*.xml" -exec xmllint --noout {} \;
</param></param> - happens when copy/pasting<summary>...</param> - tag names must match<, >, & must be <, >, &<summary>text without </summary>xmllint --noout <file> to validate