Recommended Free Tools
AI-generated code can bring curly quotes, long dashes, and other typographic punctuation into a repository. Those characters are not inherently wrong, and an analyzer cannot tell whether a person, a word processor, copied text, or an AI tool introduced them. The point of Coree.Analyzers.Typography is narrower: make selected characters visible and let each project decide what to accept.
Why flag typographic punctuation in a code repository?
Typography can slip into source code and other shipped project files through copy-and-paste, word-processing software, documentation edits, or generated text. A curly apostrophe or an em dash may be perfectly appropriate in prose, but it can be an unwelcome surprise in a codebase whose conventions favor plain ASCII punctuation.
As an Amazon Associate I earn from qualifying purchases.
The package documentation puts the concern succinctly: “Compilers do not care. Reviewers do.” That is a framing for a consistency and review issue, not evidence that every non-ASCII punctuation mark causes a compiler problem. The author’s account, indexed by DEV Community’s search aggregator, describes AI-generated code as the trigger for this particular project; it does not establish that AI is the source of any given character elsewhere.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Which characters does the analyzer detect?
The documented diagnostics target a selected set of typographic punctuation, rather than Unicode generally. Ordinary ASCII hyphens, straight quotation marks, apostrophes, and periods are left alone.
#1 Best Overall
| Diagnostic | Characters covered |
|---|---|
| CTYED001 | En dash (U+2013) and em dash (U+2014) |
| CTYQM001 | Typographic quotation marks, including curly quotes and guillemets |
| CTYAP001 | Typographic apostrophe or closing single quotation mark (U+2019) |
| CTYEL001 | Horizontal ellipsis (U+2026) |
| CTYMN001 | Minus sign (U+2212) |
These distinctions matter: a typographic minus sign is not the same character as the ASCII hyphen-minus, and the analyzer’s documented checks concern specific punctuation characters, not all Unicode text.
What files can it inspect?
The analyzer checks C# syntax trees and can also scan matching files beneath the project directory as MSBuild AdditionalFiles. That wider file coverage can make Visual Studio diagnostics correspond to build diagnostics for files included in the scan configuration; it is not an automatic scan of every file in a repository.
Rank #2
MSBuild include and exclude globs determine additional-file coverage. The README distinguishes Excludes, which replaces the default exclusion list, from AdditionalExcludes, which adds patterns to that list. The bin, obj, .git, and .vs directories are always excluded from additional-file scanning.
How much enforcement does it apply?
Each analyzer’s severity can be configured as warning, error, message, or off; warning is the documented default. That lets a team start with visible findings, raise selected rules to build errors when the policy is established, or disable checks it does not want.
Severity and file coverage are separate choices. A warning only helps if the relevant files are scanned, while a broad scan may surface punctuation that is intentional in prose. Teams should define both the character policy and the files to which it applies before making diagnostics build-blocking.
How to add it to a project
The package is distributed through NuGet as a development dependency with analyzer/build assets. The NuGet listing showed version 1.0.0.3 as of October 7, 2026; package metadata can change. Check the current listing for installation details and the version available to your project.
Rank #4
- Open the NuGet package page and add the package to the project using the installation method your .NET workflow uses.
- Set the diagnostic severities that match your team’s policy, choosing among warning, error, message, or off for each analyzer.
- Configure MSBuild include and exclusion globs for the additional files you want scanned; decide whether to replace defaults with
Excludesor extend them withAdditionalExcludes. - Build the project and review diagnostics in the IDE and build output, adjusting the file patterns or severities if intentional prose is generating noise.
Is this a useful guardrail or developer pedantry?
It is useful when a repository has a clear punctuation convention, reviewers want unexpected characters called out consistently, and the configured file set reflects that convention. It is likely to feel pedantic when a project has no such policy, when typographic punctuation is intentionally welcome in its prose, or when the scan scope is broader than the team wants to maintain.
Free tools Windows power users keep installed
One-click scans. No signup required.
The practical decision is not whether Unicode is good or bad. It is whether a particular character in a particular kind of file deserves attention. A configurable analyzer offers a lightweight way to make that decision visible without imposing a blanket ban.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




