diff --git a/CoDepend/.codepend/snapshot b/CoDepend/.codepend/snapshot index aa638e3..d3b5fb4 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..d5f3c9c 100644 --- a/CoDepend/Domain/RendererBase.cs +++ b/CoDepend/Domain/RendererBase.cs @@ -49,6 +49,9 @@ public abstract class RendererBase { public abstract string FileExtension { get; } + // Normalized file extension with proper dot handling + private string NormalizedFileExtension => NormalizeExtension(FileExtension); + protected abstract string Render(RenderGraph graph, View view, RenderOptions options); public string RenderView(ProjectDependencyGraph graph, View view, RenderOptions options) @@ -96,12 +99,18 @@ 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 filename = $"{options.BaseOptions.ProjectName}{diffString}-{view.ViewName}{NormalizedFileExtension}"; var path = Path.Combine(dir, filename); await File.WriteAllTextAsync(path, content, ct); } + private static string NormalizeExtension(string ext) + { + ext = ext.Trim(); + return ext.StartsWith('.') ? ext : "." + ext; + } + private static RenderGraph BuildRenderGraph( ProjectDependencyGraph graph, View view, @@ -450,4 +459,4 @@ private static bool IsUnderAnyRoot(RelativePath path, IReadOnlySet { return roots.Any(root => path.Value.StartsWith(root.Value, StringComparison.OrdinalIgnoreCase)); } -} +} \ No newline at end of file