diff --git a/src/Compiler/Microsoft.CodeAnalysis.Razor.Compiler/src/SourceGenerators/RazorSourceGenerator.Helpers.cs b/src/Compiler/Microsoft.CodeAnalysis.Razor.Compiler/src/SourceGenerators/RazorSourceGenerator.Helpers.cs index a5ccb5691fe..1b8be17092e 100644 --- a/src/Compiler/Microsoft.CodeAnalysis.Razor.Compiler/src/SourceGenerators/RazorSourceGenerator.Helpers.cs +++ b/src/Compiler/Microsoft.CodeAnalysis.Razor.Compiler/src/SourceGenerators/RazorSourceGenerator.Helpers.cs @@ -21,7 +21,9 @@ internal static string GetIdentifierFromPath(ReadOnlySpan filePath) { switch (filePath[i]) { - case ':' or '\\' or '/': + case '\\' or '/' when i > 0: + builder.Append('/'); + break; case char ch when !char.IsLetterOrDigit(ch): builder.Append('_'); break; diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/RazorSourceGeneratorTests.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/RazorSourceGeneratorTests.cs index 0d13c8a15fb..c1fcd399a07 100644 --- a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/RazorSourceGeneratorTests.cs +++ b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/RazorSourceGeneratorTests.cs @@ -238,8 +238,8 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Counter.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Counter.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Index_razor.g.cs"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Counter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Index_razor.g.cs"), + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Counter_razor.g.cs") ); } @@ -456,7 +456,7 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. e => e.AssertSingleItem("CheckAndRewriteTagHelpersStop", "Pages/Counter.razor"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Counter.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Counter.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Counter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Counter_razor.g.cs") ); } @@ -843,7 +843,7 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. e => e.AssertSingleItem("CheckAndRewriteTagHelpersStop", "Pages/Counter.razor"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Counter.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Counter.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Counter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Counter_razor.g.cs") ); } @@ -1017,7 +1017,7 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Counter.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Counter.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Counter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Counter_razor.g.cs") ); } @@ -1172,7 +1172,7 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Counter.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Counter.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Index_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Index_razor.g.cs") ); // Verify caching @@ -1381,8 +1381,8 @@ internal sealed class Views_Shared__Layout : global::Microsoft.AspNetCore.Mvc.Ra e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.cshtml", "Runtime"), e => e.AssertPair("RazorCodeGenerateStart", "Views/Shared/_Layout.cshtml", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Views/Shared/_Layout.cshtml", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Index_cshtml.g.cs"), - e => e.AssertSingleItem("AddSyntaxTrees", "Views_Shared__Layout_cshtml.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Index_cshtml.g.cs"), + e => e.AssertSingleItem("AddSyntaxTrees", "Views/Shared/_Layout_cshtml.g.cs") ); } @@ -1722,7 +1722,7 @@ internal sealed class Views_Shared__Layout : global::Microsoft.AspNetCore.Mvc.Ra e => e.AssertSingleItem("CheckAndRewriteTagHelpersStop", "Views/Shared/_Layout.cshtml"), e => e.AssertPair("RazorCodeGenerateStart", "Views/Shared/_Layout.cshtml", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Views/Shared/_Layout.cshtml", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Views_Shared__Layout_cshtml.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Views/Shared/_Layout_cshtml.g.cs") ); } @@ -2056,7 +2056,7 @@ public override void Process(TagHelperContext context, TagHelperOutput output) e => e.AssertSingleItem("CheckAndRewriteTagHelpersStop", "Views/Shared/_Layout.cshtml"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Index.cshtml", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.cshtml", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Index_cshtml.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Index_cshtml.g.cs") ); } @@ -2723,8 +2723,8 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Counter.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Counter.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Index_razor.g.cs"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Counter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Index_razor.g.cs"), + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Counter_razor.g.cs") ); // flip the suppression state back to off @@ -2845,8 +2845,8 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. e => e.AssertSingleItem("CheckAndRewriteTagHelpersStop", "Pages/Index.razor"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Index.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Index_razor.g.cs"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Counter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Index_razor.g.cs"), + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Counter_razor.g.cs") ); // Flip suppression on, change the compilation, no changes @@ -2874,8 +2874,8 @@ public class MyViewComponent : Microsoft.AspNetCore.Mvc.ViewComponent{} e => e.AssertSingleItem("CheckAndRewriteTagHelpersStop", "Pages/Index.razor"), e => e.AssertSingleItem("CheckAndRewriteTagHelpersStart", "Pages/Counter.razor"), e => e.AssertSingleItem("CheckAndRewriteTagHelpersStop", "Pages/Counter.razor"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Index_razor.g.cs"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Counter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Index_razor.g.cs"), + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Counter_razor.g.cs") ); // Flip suppression on, change the parse options, no changes @@ -2917,8 +2917,8 @@ public class MyViewComponent : Microsoft.AspNetCore.Mvc.ViewComponent{} e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/Counter.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/Counter.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Index_razor.g.cs"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_Counter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Index_razor.g.cs"), + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/Counter_razor.g.cs") ); GeneratorDriver SetSuppressionState(bool state) @@ -3570,7 +3570,7 @@ public async Task IncrementalCompilation_RerunsGenerator_When_AdditionalFileRena e => e.AssertPair("RazorCodeGenerateStop", "Pages/Index.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStart", "Pages/NewCounter.razor", "Runtime"), e => e.AssertPair("RazorCodeGenerateStop", "Pages/NewCounter.razor", "Runtime"), - e => e.AssertSingleItem("AddSyntaxTrees", "Pages_NewCounter_razor.g.cs") + e => e.AssertSingleItem("AddSyntaxTrees", "Pages/NewCounter_razor.g.cs") ); // Verify the generated source has the correct namespace and class name diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/EmptyRootNamespace/Shared_Component1_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/EmptyRootNamespace/Shared/Component1_razor.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/EmptyRootNamespace/Shared_Component1_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/EmptyRootNamespace/Shared/Component1_razor.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/EmptyRootNamespace/Views_Home_Index_cshtml.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/EmptyRootNamespace/Views/Home/Index_cshtml.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/EmptyRootNamespace/Views_Home_Index_cshtml.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/EmptyRootNamespace/Views/Home/Index_cshtml.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder1_Component1_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder1/Component1_razor.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder1_Component1_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder1/Component1_razor.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder1__Imports_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder1/_Imports_razor.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder1__Imports_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder1/_Imports_razor.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder2_Component2_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder2/Component2_razor.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder2_Component2_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor/Folder2/Component2_razor.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor_SystemInNamespace/System__Imports_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor_SystemInNamespace/System/_Imports_razor.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor_SystemInNamespace/System__Imports_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ImportsRazor_SystemInNamespace/System/_Imports_razor.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/Inject/Shared_Component1_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/Inject/Shared/Component1_razor.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/Inject/Shared_Component1_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/Inject/Shared/Component1_razor.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping/Shared_Component1_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping/Shared/Component1_razor.g.cs similarity index 99% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping/Shared_Component1_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping/Shared/Component1_razor.g.cs index d7d347fa84d..eb73914a8f1 100644 --- a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping/Shared_Component1_razor.g.cs +++ b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping/Shared/Component1_razor.g.cs @@ -23,6 +23,7 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. #nullable restore #line (1,39)-(1,50) 24 "Shared/Component1.razor" __builder.AddContent(2, RaiseHere() + #line default #line hidden #nullable disable diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping_Tabs/Shared_Component1_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping_Tabs/Shared/Component1_razor.g.cs similarity index 99% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping_Tabs/Shared_Component1_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping_Tabs/Shared/Component1_razor.g.cs index ed76deade83..a2ff4c3130b 100644 --- a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping_Tabs/Shared_Component1_razor.g.cs +++ b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/LineMapping_Tabs/Shared/Component1_razor.g.cs @@ -31,7 +31,7 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. #line (2,3)-(4,3) "Shared/Component1.razor" if (true) { - + #line default #line hidden @@ -40,6 +40,7 @@ protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components. #nullable restore #line (4,5)-(4,11) 24 "Shared/Component1.razor" __builder.AddContent(1, "code" + #line default #line hidden #nullable disable diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/7/Shared_Component1_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/7/Shared/Component1_razor.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/7/Shared_Component1_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/7/Shared/Component1_razor.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/7/Views_Home_Index_cshtml.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/7/Views/Home/Index_cshtml.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/7/Views_Home_Index_cshtml.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/7/Views/Home/Index_cshtml.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/8/Shared_Component1_razor.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/8/Shared/Component1_razor.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/8/Shared_Component1_razor.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/8/Shared/Component1_razor.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/8/Views_Home_Index_cshtml.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/8/Views/Home/Index_cshtml.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/8/Views_Home_Index_cshtml.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorComponentTests/ScriptTag_WithVariable/8/Views/Home/Index_cshtml.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/CustomTagHelper/Views_Home_Index_cshtml.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/CustomTagHelper/Views/Home/Index_cshtml.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/CustomTagHelper/Views_Home_Index_cshtml.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/CustomTagHelper/Views/Home/Index_cshtml.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/ViewComponent/Views_Home_Index_cshtml.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/ViewComponent/Views/Home/Index_cshtml.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/ViewComponent/Views_Home_Index_cshtml.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/ViewComponent/Views/Home/Index_cshtml.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/VoidTagName/Views_Home_Index_cshtml.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/VoidTagName/Views/Home/Index_cshtml.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/VoidTagName/Views_Home_Index_cshtml.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/VoidTagName/Views/Home/Index_cshtml.g.cs diff --git a/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/VoidTagName_NoMatchingTagHelper/Views_Home_Index_cshtml.g.cs b/src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/VoidTagName_NoMatchingTagHelper/Views/Home/Index_cshtml.g.cs similarity index 100% rename from src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/VoidTagName_NoMatchingTagHelper/Views_Home_Index_cshtml.g.cs rename to src/Compiler/test/Microsoft.NET.Sdk.Razor.SourceGenerators.Tests/TestFiles/RazorSourceGeneratorTagHelperTests/VoidTagName_NoMatchingTagHelper/Views/Home/Index_cshtml.g.cs diff --git a/src/Razor/test/Microsoft.VisualStudioCode.RazorExtension.Test/Endpoints/Shared/ComputedTargetPathTest.cs b/src/Razor/test/Microsoft.VisualStudioCode.RazorExtension.Test/Endpoints/Shared/ComputedTargetPathTest.cs index ac4c0b17878..65486fa4680 100644 --- a/src/Razor/test/Microsoft.VisualStudioCode.RazorExtension.Test/Endpoints/Shared/ComputedTargetPathTest.cs +++ b/src/Razor/test/Microsoft.VisualStudioCode.RazorExtension.Test/Endpoints/Shared/ComputedTargetPathTest.cs @@ -17,8 +17,8 @@ public class ComputedTargetPathTest(ITestOutputHelper testOutputHelper) : Cohost { // What the source generator would produce for TestProjectData.SomeProjectPath private static readonly string s_hintNamePrefix = PlatformInformation.IsWindows - ? "c__users_example_src_SomeProject" - : "_home_example_SomeProject"; + ? "c_/users/example/src/SomeProject" + : "_home/example/SomeProject"; [Theory] [InlineData(true, false)] @@ -45,7 +45,7 @@ public async Task SingleDocument(bool projectPath, bool generateConfigFile) var generatedDocument = await document.Project.TryGetSourceGeneratedDocumentForRazorDocumentAsync(document, DisposalToken); Assert.NotNull(generatedDocument); - Assert.Equal($"{s_hintNamePrefix}_File1_razor.g.cs", generatedDocument.HintName); + Assert.Equal($"{s_hintNamePrefix}/File1_razor.g.cs", generatedDocument.HintName); } [Theory] @@ -70,11 +70,11 @@ public async Task TwoDocumentsWithTheSameBaseFileName(bool generateTargetPath) var generatedDocument = await doc1.Project.TryGetSourceGeneratedDocumentForRazorDocumentAsync(doc1, DisposalToken); Assert.NotNull(generatedDocument); - Assert.Equal($"Pages_Index_razor.g.cs", generatedDocument.HintName); + Assert.Equal($"Pages/Index_razor.g.cs", generatedDocument.HintName); generatedDocument = await doc2.Project.TryGetSourceGeneratedDocumentForRazorDocumentAsync(doc2, DisposalToken); Assert.NotNull(generatedDocument); - Assert.Equal($"Components_Index_razor.g.cs", generatedDocument.HintName); + Assert.Equal($"Components/Index_razor.g.cs", generatedDocument.HintName); } [Theory] @@ -102,10 +102,42 @@ public async Task TwoDocumentsWithTheSameBaseFileName_FullPathHintName(bool proj var generatedDocument = await doc1.Project.TryGetSourceGeneratedDocumentForRazorDocumentAsync(doc1, DisposalToken); Assert.NotNull(generatedDocument); - Assert.Equal($"{s_hintNamePrefix}_Pages_Index_razor.g.cs", generatedDocument.HintName); + Assert.Equal($"{s_hintNamePrefix}/Pages/Index_razor.g.cs", generatedDocument.HintName); generatedDocument = await doc2.Project.TryGetSourceGeneratedDocumentForRazorDocumentAsync(doc2, DisposalToken); Assert.NotNull(generatedDocument); - Assert.Equal($"{s_hintNamePrefix}_Components_Index_razor.g.cs", generatedDocument.HintName); + Assert.Equal($"{s_hintNamePrefix}/Components/Index_razor.g.cs", generatedDocument.HintName); + } + + [Theory] + [InlineData(true, false)] + [InlineData(true, true)] + [InlineData(false, false)] + public async Task TwoDocumentsWithTheSameBaseHintName(bool projectPath, bool generateConfigFile) + { + var builder = new RazorProjectBuilder + { + ProjectFilePath = projectPath ? TestProjectData.SomeProject.FilePath : null, + GenerateGlobalConfigFile = generateConfigFile, + GenerateAdditionalDocumentMetadata = false, + GenerateMSBuildProjectDirectory = false + }; + + var doc1Id = builder.AddAdditionalDocument(FilePath(@"Pages\Index.razor"), SourceText.From("")); + var doc2Id = builder.AddAdditionalDocument(FilePath(@"Pages_Index.razor"), SourceText.From("")); + + var solution = LocalWorkspace.CurrentSolution; + solution = builder.Build(solution); + + var doc1 = solution.GetAdditionalDocument(doc1Id).AssumeNotNull(); + var doc2 = solution.GetAdditionalDocument(doc2Id).AssumeNotNull(); + + var generatedDocument = await doc1.Project.TryGetSourceGeneratedDocumentForRazorDocumentAsync(doc1, DisposalToken); + Assert.NotNull(generatedDocument); + Assert.Equal($"{s_hintNamePrefix}/Pages/Index_razor.g.cs", generatedDocument.HintName); + + generatedDocument = await doc2.Project.TryGetSourceGeneratedDocumentForRazorDocumentAsync(doc2, DisposalToken); + Assert.NotNull(generatedDocument); + Assert.Equal($"{s_hintNamePrefix}/Pages_Index_razor.g.cs", generatedDocument.HintName); } }