From 37788f3c9d4b242098dff67f863d808041c0bd59 Mon Sep 17 00:00:00 2001 From: Steve Sanderson Date: Sat, 5 May 2018 17:55:08 +0100 Subject: [PATCH] In Blazor cshtml, auto-reference Microsoft.AspNetCore.Blazor and .Components (#751) * In Blazor cshtml files, auto-import Microsoft.AspNetCore.Blazor and Microsoft.AspNetCore.Blazor.Components. Fixes #749 * Remove redundant @using directives from tests * Update assertion in test * Update all affected baselines --- samples/StandaloneApp/_ViewImports.cshtml | 2 -- .../BlazorImportProjectFeature.cs | 7 +++++-- .../_ViewImports.cshtml | 2 -- .../_ViewImports.cshtml | 2 -- src/shared/BlazorApi.cs | 6 ++++-- .../ComponentRenderingRazorIntegrationTest.cs | 2 -- .../DeclarationRazorIntegrationTest.cs | 2 ++ .../DesignTimeCodeGenerationTest.cs | 7 ------- .../RenderingRazorIntegrationTest.cs | 1 - .../RuntimeCodeGenerationTest.cs | 10 --------- .../TestComponent.codegen.cs | 7 ++----- .../TestComponent.ir.txt | 13 ++++++------ .../TestComponent.mappings.txt | 5 ----- .../TestComponent.codegen.cs | 9 +++----- .../TestComponent.ir.txt | 19 ++++++++--------- .../TestComponent.mappings.txt | 13 ++++-------- .../TestComponent.codegen.cs | 7 ++----- .../TestComponent.ir.txt | 13 ++++++------ .../TestComponent.mappings.txt | 5 ----- .../TestComponent.codegen.cs | 9 +++----- .../TestComponent.ir.txt | 19 ++++++++--------- .../TestComponent.mappings.txt | 13 ++++-------- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 8 +++---- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 11 ++++------ .../TestComponent.ir.txt | 21 +++++++++---------- .../TestComponent.mappings.txt | 15 +++++-------- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 8 +++---- .../TestComponent.codegen.cs | 2 ++ .../Component_WithRef/TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 6 +++--- .../Element_WithRef/TestComponent.codegen.cs | 2 ++ .../Element_WithRef/TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 9 +++----- .../TestComponent.ir.txt | 19 ++++++++--------- .../TestComponent.mappings.txt | 13 ++++-------- .../TestComponent.codegen.cs | 7 ++----- .../TestComponent.ir.txt | 11 +++++----- .../TestComponent.mappings.txt | 9 ++------ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../Regression_597/TestComponent.codegen.cs | 2 ++ .../Regression_597/TestComponent.ir.txt | 2 ++ .../Regression_597/TestComponent.mappings.txt | 6 +++--- .../TestComponent.codegen.cs | 1 + .../TestComponent.ir.txt | 7 ++++--- .../TestComponent.codegen.cs | 3 ++- .../TestComponent.ir.txt | 13 ++++++------ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 1 + .../TestComponent.ir.txt | 7 ++++--- .../TestComponent.codegen.cs | 3 ++- .../TestComponent.ir.txt | 13 ++++++------ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 3 ++- .../TestComponent.ir.txt | 15 ++++++------- .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../Component_WithRef/TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 4 ++-- .../Element_WithRef/TestComponent.codegen.cs | 2 ++ .../Element_WithRef/TestComponent.ir.txt | 2 ++ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 3 ++- .../TestComponent.ir.txt | 13 ++++++------ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 1 + .../TestComponent.ir.txt | 9 ++++---- .../TestComponent.codegen.cs | 3 ++- .../TestComponent.ir.txt | 13 ++++++------ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 3 ++- .../TestComponent.ir.txt | 13 ++++++------ .../TestComponent.mappings.txt | 4 ++-- .../TestComponent.codegen.cs | 1 + .../TestComponent.ir.txt | 9 ++++---- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../Regression_597/TestComponent.codegen.cs | 2 ++ .../Regression_597/TestComponent.ir.txt | 2 ++ .../Regression_597/TestComponent.mappings.txt | 2 +- .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../TestComponent.codegen.cs | 2 ++ .../TestComponent.ir.txt | 2 ++ .../AfterRenderInteropComponent.cshtml | 3 +-- .../AsyncEventHandlerComponent.cshtml | 1 - .../BasicTestApp/BindCasesComponent.cshtml | 3 +-- .../BasicTestApp/ComponentRefComponent.cshtml | 4 +--- .../BasicTestApp/ElementRefComponent.cshtml | 3 +-- .../BasicTestApp/FocusEventComponent.cshtml | 1 - .../KeyPressEventComponent.cshtml | 2 +- .../BasicTestApp/MessageComponent.cshtml | 3 +-- .../BasicTestApp/MouseEventComponent.cshtml | 3 --- .../PassThroughContentComponent.cshtml | 4 +--- .../PropertiesChangedHandlerChild.cshtml | 3 +-- .../BasicTestApp/RenderFragmentToggler.cshtml | 3 +-- 216 files changed, 498 insertions(+), 359 deletions(-) diff --git a/samples/StandaloneApp/_ViewImports.cshtml b/samples/StandaloneApp/_ViewImports.cshtml index d5b719f8e7..ebe4291911 100644 --- a/samples/StandaloneApp/_ViewImports.cshtml +++ b/samples/StandaloneApp/_ViewImports.cshtml @@ -1,6 +1,4 @@ @using System.Net.Http -@using Microsoft.AspNetCore.Blazor -@using Microsoft.AspNetCore.Blazor.Components @using Microsoft.AspNetCore.Blazor.Layouts @using Microsoft.AspNetCore.Blazor.Routing @using StandaloneApp diff --git a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorImportProjectFeature.cs b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorImportProjectFeature.cs index 4259df00c4..5a3b700ed5 100644 --- a/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorImportProjectFeature.cs +++ b/src/Microsoft.AspNetCore.Blazor.Razor.Extensions/BlazorImportProjectFeature.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; +using Microsoft.AspNetCore.Blazor.Shared; using Microsoft.AspNetCore.Razor.Language; namespace Microsoft.AspNetCore.Blazor.Razor @@ -17,12 +18,14 @@ namespace Microsoft.AspNetCore.Blazor.Razor private static readonly char[] PathSeparators = new char[]{ '/', '\\' }; // Using explicit newlines here to avoid fooling our baseline tests - private const string DefaultUsingImportContent = + private readonly static string DefaultUsingImportContent = "\r\n" + "@using System\r\n" + "@using System.Collections.Generic\r\n" + "@using System.Linq\r\n" + - "@using System.Threading.Tasks\r\n"; + "@using System.Threading.Tasks\r\n" + + "@using " + BlazorApi.RenderFragment.Namespace + "\r\n" + // Microsoft.AspNetCore.Blazor + "@using " + BlazorApi.BlazorComponent.Namespace + "\r\n"; // Microsoft.AspNetCore.Blazor.Components public RazorProjectEngine ProjectEngine { get; set; } diff --git a/src/Microsoft.AspNetCore.Blazor.Templates/content/BlazorHosted-CSharp/BlazorHosted-CSharp.Client/_ViewImports.cshtml b/src/Microsoft.AspNetCore.Blazor.Templates/content/BlazorHosted-CSharp/BlazorHosted-CSharp.Client/_ViewImports.cshtml index d62e1b903f..3f34b12e5e 100644 --- a/src/Microsoft.AspNetCore.Blazor.Templates/content/BlazorHosted-CSharp/BlazorHosted-CSharp.Client/_ViewImports.cshtml +++ b/src/Microsoft.AspNetCore.Blazor.Templates/content/BlazorHosted-CSharp/BlazorHosted-CSharp.Client/_ViewImports.cshtml @@ -1,6 +1,4 @@ @using System.Net.Http -@using Microsoft.AspNetCore.Blazor -@using Microsoft.AspNetCore.Blazor.Components @using Microsoft.AspNetCore.Blazor.Layouts @using Microsoft.AspNetCore.Blazor.Routing @using BlazorHosted_CSharp.Client diff --git a/src/Microsoft.AspNetCore.Blazor.Templates/content/BlazorStandalone-CSharp/_ViewImports.cshtml b/src/Microsoft.AspNetCore.Blazor.Templates/content/BlazorStandalone-CSharp/_ViewImports.cshtml index be56987d64..10f9381e1a 100644 --- a/src/Microsoft.AspNetCore.Blazor.Templates/content/BlazorStandalone-CSharp/_ViewImports.cshtml +++ b/src/Microsoft.AspNetCore.Blazor.Templates/content/BlazorStandalone-CSharp/_ViewImports.cshtml @@ -1,6 +1,4 @@ @using System.Net.Http -@using Microsoft.AspNetCore.Blazor -@using Microsoft.AspNetCore.Blazor.Components @using Microsoft.AspNetCore.Blazor.Layouts @using Microsoft.AspNetCore.Blazor.Routing @using BlazorStandalone_CSharp diff --git a/src/shared/BlazorApi.cs b/src/shared/BlazorApi.cs index a033baad9b..d66402b110 100644 --- a/src/shared/BlazorApi.cs +++ b/src/shared/BlazorApi.cs @@ -11,7 +11,8 @@ namespace Microsoft.AspNetCore.Blazor.Shared public static class BlazorComponent { - public static readonly string FullTypeName = "Microsoft.AspNetCore.Blazor.Components.BlazorComponent"; + public static readonly string Namespace = "Microsoft.AspNetCore.Blazor.Components"; + public static readonly string FullTypeName = Namespace + ".BlazorComponent"; public static readonly string BuildRenderTree = nameof(BuildRenderTree); } @@ -40,7 +41,8 @@ namespace Microsoft.AspNetCore.Blazor.Shared public static class RenderFragment { - public static readonly string FullTypeName = "Microsoft.AspNetCore.Blazor.RenderFragment"; + public static readonly string Namespace = "Microsoft.AspNetCore.Blazor"; + public static readonly string FullTypeName = Namespace + ".RenderFragment"; } public static class RenderTreeBuilder diff --git a/test/Microsoft.AspNetCore.Blazor.Build.Test/ComponentRenderingRazorIntegrationTest.cs b/test/Microsoft.AspNetCore.Blazor.Build.Test/ComponentRenderingRazorIntegrationTest.cs index c72284153b..e5e699ab2e 100644 --- a/test/Microsoft.AspNetCore.Blazor.Build.Test/ComponentRenderingRazorIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Blazor.Build.Test/ComponentRenderingRazorIntegrationTest.cs @@ -213,7 +213,6 @@ namespace Test var component = CompileToComponent($@" @addTagHelper *, TestAssembly -@using Microsoft.AspNetCore.Blazor @functions {{ @@ -261,7 +260,6 @@ namespace Test var component = CompileToComponent(@" @addTagHelper *, TestAssembly -@using Microsoft.AspNetCore.Blazor @functions { diff --git a/test/Microsoft.AspNetCore.Blazor.Build.Test/DeclarationRazorIntegrationTest.cs b/test/Microsoft.AspNetCore.Blazor.Build.Test/DeclarationRazorIntegrationTest.cs index e2d29f2e5b..8357843e3a 100644 --- a/test/Microsoft.AspNetCore.Blazor.Build.Test/DeclarationRazorIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Blazor.Build.Test/DeclarationRazorIntegrationTest.cs @@ -125,6 +125,8 @@ namespace Test using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; + using Microsoft.AspNetCore.Blazor; + using Microsoft.AspNetCore.Blazor.Components; public class TestComponent : Microsoft.AspNetCore.Blazor.Components.BlazorComponent { #pragma warning disable 1998 diff --git a/test/Microsoft.AspNetCore.Blazor.Build.Test/DesignTimeCodeGenerationTest.cs b/test/Microsoft.AspNetCore.Blazor.Build.Test/DesignTimeCodeGenerationTest.cs index 866eed3c2a..c4b2ab8864 100644 --- a/test/Microsoft.AspNetCore.Blazor.Build.Test/DesignTimeCodeGenerationTest.cs +++ b/test/Microsoft.AspNetCore.Blazor.Build.Test/DesignTimeCodeGenerationTest.cs @@ -162,7 +162,6 @@ namespace Test // Act var generated = CompileToCSharp(@" @addTagHelper *, TestAssembly -@using Microsoft.AspNetCore.Blazor @functions { @@ -232,7 +231,6 @@ namespace Test // Act var generated = CompileToCSharp(@" -@using Microsoft.AspNetCore.Blazor { })"" />"); // Assert @@ -248,7 +246,6 @@ namespace Test // Act var generated = CompileToCSharp(@" -@using Microsoft.AspNetCore.Blazor @functions { void OnClick(UIMouseEventArgs e) { @@ -269,7 +266,6 @@ namespace Test // Act var generated = CompileToCSharp(@" @using System.Threading.Tasks -@using Microsoft.AspNetCore.Blazor @functions { Task OnClick() @@ -292,7 +288,6 @@ namespace Test // Act var generated = CompileToCSharp(@" @using System.Threading.Tasks -@using Microsoft.AspNetCore.Blazor @functions { Task OnClick(UIMouseEventArgs e) @@ -315,7 +310,6 @@ namespace Test // Act var generated = CompileToCSharp(@" @using System.Threading.Tasks -@using Microsoft.AspNetCore.Blazor await Task.Delay(10)"" /> "); @@ -333,7 +327,6 @@ namespace Test // Act var generated = CompileToCSharp(@" @using System.Threading.Tasks -@using Microsoft.AspNetCore.Blazor await Task.Delay(10)"" /> "); diff --git a/test/Microsoft.AspNetCore.Blazor.Build.Test/RenderingRazorIntegrationTest.cs b/test/Microsoft.AspNetCore.Blazor.Build.Test/RenderingRazorIntegrationTest.cs index a5c69ce443..9dea727fa2 100644 --- a/test/Microsoft.AspNetCore.Blazor.Build.Test/RenderingRazorIntegrationTest.cs +++ b/test/Microsoft.AspNetCore.Blazor.Build.Test/RenderingRazorIntegrationTest.cs @@ -494,7 +494,6 @@ namespace Microsoft.AspNetCore.Blazor.Build.Test { // Arrange var component = CompileToComponent(@" -@using Microsoft.AspNetCore.Blazor