Vixen
02b45cc4
csharp
public sealed class SystemIoPathAnalyzer

Reports 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 DiagnosticId

    The id reported for a use of System.IO.Path.

  • public override ImmutableArray<DiagnosticDescriptor> SupportedDiagnostics

    Returns 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