Repository navigation
Improve DotNet API output (defaults, nullability, records, lang, breadcrumbs, external links, global namespace) - #56
Merged
Conversation
…age, breadcrumbs, external links, global namespace Render parameter defaults, nullable annotations, init accessors and record/struct kinds; honor lang on example code; skip delegate members in docs enforcement; add generic method signatures, breadcrumbs and per-language default visibility (C# PublicAndProtected); add external-link mapping (ApiMarkExternalLinks / --external-link); support the global namespace. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Contributor
There was a problem hiding this comment.
🔵 Needs a closer look
Moderate issues remain in external-link validation, forwarding-test strictness, and ReviewMark configuration.
0 open findings
What changed in this PR
Improves .NET API documentation output, navigation, visibility defaults, external links, and global-namespace handling.
Changes:
- Enhances signatures, defaults, nullability, records, generics, examples, and breadcrumbs.
- Adds external-link configuration through CLI and MSBuild.
- Expands fixtures, tests, requirements, and documentation.
| File | Summary |
|---|---|
test/ApiMark.Tool.Tests/Cli/ContextTests.cs |
Tests CLI parsing and defaults. |
test/ApiMark.MSBuild.Tests/FixturePaths.cs |
Adds target-file path resolution. |
test/ApiMark.MSBuild.Tests/ApiMarkTaskTests.cs |
Tests MSBuild forwarding; exact external-link token counts should be asserted. |
test/ApiMark.DotNet.Tests/XmlDocReaderTests.cs |
Tests example-language parsing. |
test/ApiMark.DotNet.Tests/FixturePaths.cs |
Adds global fixture paths. |
test/ApiMark.DotNet.Tests/DotNetEmitterSingleFileTests.cs |
Tests enhanced single-file rendering. |
test/ApiMark.DotNet.Tests/DotNetAstModelTests.cs |
Tests model indexing and metadata. |
test/ApiMark.DotNet.Tests/DocumentationCoverageCheckerTests.cs |
Tests delegate coverage handling. |
test/ApiMark.DotNet.Tests/ApiMark.DotNet.Tests.csproj |
References the global fixture project. |
test/ApiMark.DotNet.Fixtures/TypeKindClasses.cs |
Adds record and struct fixtures. |
test/ApiMark.DotNet.Fixtures/NullabilityClasses.cs |
Adds nullability fixtures. |
test/ApiMark.DotNet.Fixtures/LangParaExampleClass.cs |
Adds nested language examples. |
test/ApiMark.DotNet.Fixtures/LangExampleClass.cs |
Adds language-tagged examples. |
test/ApiMark.DotNet.Fixtures/GlobalNamespace/GlobalNamespaceClass.cs |
Adds global-namespace fixtures. |
test/ApiMark.DotNet.Fixtures/GenericMethodClass.cs |
Adds generic-method fixtures. |
test/ApiMark.DotNet.Fixtures/EquatableFixtures.cs |
Adds equality and interface fixtures. |
test/ApiMark.DotNet.Fixtures/DefaultValueExtendedClass.cs |
Adds extended default-value fixtures. |
test/ApiMark.DotNet.Fixtures/DefaultValueClass.cs |
Adds parameter-default fixtures. |
test/ApiMark.DotNet.Fixtures/ApiMark.DotNet.Fixtures.csproj |
Excludes global fixtures from the main assembly. |
test/ApiMark.DotNet.Fixtures.Global/ApiMark.DotNet.Fixtures.Global.csproj |
Defines the global fixture assembly. |
src/ApiMark.Tool/Program.cs |
Applies visibility defaults and external mappings. |
src/ApiMark.Tool/Cli/Context.cs |
Parses external-link options and visibility settings. |
src/ApiMark.MSBuild/build/DemaConsulting.ApiMark.MSBuild.targets |
Binds external-link configuration. |
src/ApiMark.MSBuild/ApiMarkTask.cs |
Forwards external links and visibility. |
src/ApiMark.DotNet/XmlDocReader.cs |
Parses and sanitizes example languages. |
src/ApiMark.DotNet/DotNetGenerator.cs |
Adds defaults, external mappings, and global namespaces; URL validation needs tightening. |
src/ApiMark.DotNet/DotNetEmitterSingleFile.cs |
Renders defaults, nullability, languages, and namespaces. |
src/ApiMark.DotNet/DotNetAstModel.cs |
Updates example metadata and indexing. |
src/ApiMark.DotNet/DocumentationCoverageChecker.cs |
Exempts synthesized delegate members. |
README.md |
Documents visibility and external links. |
docs/verification/api-mark-tool/program.md |
Adds program verification scenarios. |
docs/verification/api-mark-tool/cli/context.md |
Adds context verification scenarios. |
docs/verification/api-mark-msbuild/api-mark-task.md |
Adds MSBuild verification scenarios. |
docs/verification/api-mark-dot-net/xml-doc-reader.md |
Adds XML reader verification. |
docs/verification/api-mark-dot-net/type-name-simplifier.md |
Adds nullability verification. |
docs/verification/api-mark-dot-net/type-link-resolver.md |
Adds external-link verification. |
docs/verification/api-mark-dot-net/dot-net-generator.md |
Adds generator verification. |
docs/verification/api-mark-dot-net/dot-net-emitter.md |
Adds signature verification. |
docs/verification/api-mark-dot-net/dot-net-emitter-single-file.md |
Adds single-file verification. |
docs/verification/api-mark-dot-net/dot-net-emitter-gradual-disclosure.md |
Adds gradual-output verification. |
docs/verification/api-mark-dot-net/dot-net-ast-model.md |
Adds model verification. |
docs/verification/api-mark-dot-net/documentation-coverage-checker.md |
Adds coverage verification. |
docs/user_guide/msbuild.md |
Documents MSBuild options. |
docs/user_guide/faq.md |
Updates visibility guidance. |
docs/user_guide/dotnet.md |
Documents .NET output features. |
docs/reqstream/api-mark-tool/program.yaml |
Adds program requirements. |
docs/reqstream/api-mark-tool/cli/context.yaml |
Adds context requirements. |
docs/reqstream/api-mark-tool/cli.yaml |
Registers CLI requirements. |
docs/reqstream/api-mark-tool.yaml |
Registers tool requirements. |
docs/reqstream/api-mark-msbuild/api-mark-task.yaml |
Adds MSBuild task requirements. |
docs/reqstream/api-mark-msbuild.yaml |
Registers MSBuild requirements. |
docs/reqstream/api-mark-dot-net/xml-doc-reader.yaml |
Adds XML reader requirements. |
docs/reqstream/api-mark-dot-net/type-name-simplifier.yaml |
Adds simplifier requirements. |
docs/reqstream/api-mark-dot-net/type-link-resolver.yaml |
Adds resolver requirements. |
docs/reqstream/api-mark-dot-net/dot-net-generator.yaml |
Adds generator requirements. |
docs/reqstream/api-mark-dot-net/dot-net-emitter.yaml |
Adds emitter requirements. |
docs/reqstream/api-mark-dot-net/dot-net-emitter-single-file.yaml |
Adds single-file requirements. |
docs/reqstream/api-mark-dot-net/dot-net-emitter-gradual-disclosure.yaml |
Adds gradual-output requirements. |
docs/reqstream/api-mark-dot-net/dot-net-ast-model.yaml |
Updates model requirements. |
docs/reqstream/api-mark-dot-net/documentation-coverage-checker.yaml |
Adds delegate requirements. |
docs/reqstream/api-mark-dot-net.yaml |
Registers .NET requirements. |
docs/design/introduction.md |
Documents the global fixture project. |
docs/design/api-mark-tool/program.md |
Documents CLI design changes. |
docs/design/api-mark-tool/cli/context.md |
Documents context design changes. |
docs/design/api-mark-tool.md |
Updates CLI design. |
docs/design/api-mark-msbuild/api-mark-task.md |
Documents MSBuild task changes. |
docs/design/api-mark-msbuild.md |
Updates MSBuild design. |
docs/design/api-mark-dot-net/xml-doc-reader.md |
Documents reader design. |
docs/design/api-mark-dot-net/type-name-simplifier.md |
Documents nullability design. |
docs/design/api-mark-dot-net/type-link-resolver.md |
Documents linking design. |
docs/design/api-mark-dot-net/dot-net-generator.md |
Documents generator design. |
docs/design/api-mark-dot-net/dot-net-emitter-single-file.md |
Documents single-file design. |
docs/design/api-mark-dot-net/dot-net-emitter-gradual-disclosure.md |
Documents gradual-output design. |
docs/design/api-mark-dot-net/dot-net-ast-model.md |
Documents model design. |
docs/design/api-mark-dot-net/documentation-coverage-checker.md |
Documents coverage design. |
ApiMark.slnx |
Adds the global fixture project. |
AGENTS.md |
Updates the repository map. |
.reviewmark.yaml |
Adjusts review-path configuration; unrelated policy changes should be reverted or separately reviewed. |
🧠 Review effort: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
96 tasks done
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.
Addresses the 10 issues reported against 0.5.7: parameter defaults, nullability, init/record rendering, example code language (lang attribute), delegate members in docs enforcement, generic method signatures, cross-package external links (ApiMarkExternalLinks / --external-link), breadcrumbs, and PublicAndProtected default visibility for C#. Also fixes a pre-existing crash for types in the global namespace.
All affected ReviewMark sets approved on re-review; lint, build and tests pass (DotNet 625, Tool 132, MSBuild 52, package tests 9, C++ 195).