Conversation
CsSig is a mechanism for tracking the public API of a project through 'signature files' -- .cssig files that only contain C# signature definitions.
Rename the analyzer and code-fix project files (and their assembly names, and the packed analyzer .dll names) from CsSig.Analyzers/ CsSig.CodeFixes to StaticCs.CsSig.Analyzers/StaticCs.CsSig.CodeFixes for consistency with the StaticCs.* naming convention. Update the solution, test project references, and the packaging dll names to match. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The .cssig VS Code extension is first-party source for the CsSig feature, so co-locate it with the analyzer under src/CsSig rather than a top-level editors/ directory. Update the README link. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
CancelScope.cs was inadvertently grouped into the CsSig work; it is unrelated to the analyzer and referenced nowhere, so drop it from this branch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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.
Introduces a
.cssigfile format and Roslyn analyzer for C#, analogous to the public API analyzer. A.cssigfile contains body-less C# member declarations, and the analyzer verifies that a project's public API surface matches them under source and/or binary equivalence.What's included
StaticCs.CsSig.Analyzers): parses.cssigfiles and diagnoses mismatches between the declared signatures and the project's public API (missing members, signature differences, source-only differences such as nullability).StaticCs.CsSig.CodeFixes): generates.cssigcontent — regenerate an existing type's file, populatePublicAPI.cssig, or emit one file per type, including a FixAll.StaticCS.CsSig: ships both analyzer assemblies underanalyzers/dotnet/csplus a props file that auto-includes**/*.cssigasAdditionalFilesand exposes theCsSigEquivalenceoption (Source/Binary/Both)..cssigsyntax highlighting.IndentingBuilderis consumed as a source-only package and compiled directly into the analyzer assembly, so the package is self-contained.Naming
Project files, assembly names, and packed
.dllnames use theStaticCs.CsSig.Analyzers/StaticCs.CsSig.CodeFixesconvention, matching the rest of theStaticCs.*repo.Validation
dotnet build static-cs.sln— clean.dotnet test static-cs.sln— 91 passed, 1 skipped.dotnet packproducesStaticCS.CsSig.0.1.0.nupkgshippingStaticCs.CsSig.Analyzers.dll,StaticCs.CsSig.CodeFixes.dll, andbuild/StaticCS.CsSig.props; verified end-to-end against a consumer project.