public sealed class SystemIoPathAnalyzerReports engine code that reaches for System.IO.Path instead of a virtual path.
No guide page documents this yet — the page shows what the code says about itself.
Remarks
The rule is docs/plan/10-platforms.md's: only virtual paths in engine code, and System.IO.Path outside Vixen.Platform.*, the editor and the tools. A separator, a drive letter or a case-insensitive comparison written into engine code is a bug that compiles on the machine it was written on and is found on a device.
Where the rule does not apply is decided in .editorconfig, not here: the analyzer runs over the projects that reference it and reports every use it can see, and the host-filesystem layers that are allowed to translate — PhysicalFileProvider, the file watcher, the disk caches — turn it off by name with a written reason. A scope that lives in one file beside every other exclusion is reviewable; one spread across csproj properties is not.
Fields and properties (2)
public const string DiagnosticIdThe id reported for a use of System.IO.Path.
public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnosticsReturns a set of descriptors for the diagnostics that this analyzer is capable of producing.
Methods (1)
public override void Initialize(AnalysisContext context)Called once at session start to register actions in the analysis context.
Used by (2)
- AnalyzerHarnessVixen.Core.IO.Analyzers.Tests
- SystemIoPathAnalyzerTestsVixen.Core.IO.Analyzers.Tests