diff --git a/CoDepend/.codepend/snapshot b/CoDepend/.codepend/snapshot index aa638e3..532979b 100644 Binary files a/CoDepend/.codepend/snapshot and b/CoDepend/.codepend/snapshot differ diff --git a/CoDepend/Domain/RendererBase.cs b/CoDepend/Domain/RendererBase.cs index 43134f4..2322ca7 100644 --- a/CoDepend/Domain/RendererBase.cs +++ b/CoDepend/Domain/RendererBase.cs @@ -38,6 +38,8 @@ public sealed record RenderEdge( IReadOnlyList Relations ); + + public sealed record RenderGraph( IReadOnlyDictionary Nodes, IReadOnlyDictionary> ChildrenByParent, @@ -49,6 +51,12 @@ public abstract class RendererBase { public abstract string FileExtension { get; } + private static string NormalizeExtension(string ext) + { + ext = ext.Trim(); + return ext.StartsWith('.') ? ext : "." + ext; + } + protected abstract string Render(RenderGraph graph, View view, RenderOptions options); public string RenderView(ProjectDependencyGraph graph, View view, RenderOptions options) @@ -96,7 +104,8 @@ public async Task SaveViewToFileAsync(string content, View view, RenderOptions o Directory.CreateDirectory(dir); var diffString = diff ? "-diff" : ""; - var filename = $"{options.BaseOptions.ProjectName}{diffString}-{view.ViewName}.{FileExtension}"; + var normalizedExtension = NormalizeExtension(FileExtension); + var filename = $"{options.BaseOptions.ProjectName}{diffString}-{view.ViewName}{normalizedExtension}"; var path = Path.Combine(dir, filename); await File.WriteAllTextAsync(path, content, ct);