Skip to content

Improve DotNet API output (defaults, nullability, records, lang, breadcrumbs, external links, global namespace) - #56

Merged
Malcolmnixon merged 1 commit into
mainfrom
feature/dotnet-output-improvements
Oct 14, 2026
Merged

Malcolmnixon merged 1 commit into
mainfrom
feature/dotnet-output-improvements

Conversation

@Malcolmnixon

Copy link
Copy Markdown
Member

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).

…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>
Copilot AI lite review requested due to automatic review settings October 14, 2026 01:08

Copilot AI 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.

🔵 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.

@Malcolmnixon
Malcolmnixon merged commit ca428b6 into main Oct 14, 2026
16 checks passed
@Malcolmnixon
Malcolmnixon deleted the feature/dotnet-output-improvements branch October 14, 2026 02:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants