diff --git a/.gitignore b/.gitignore index 4b82ccd914..66ccd8d044 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ .vs/ bin/ obj/ +*.user diff --git a/BlazorTooling.sln b/BlazorTooling.sln new file mode 100644 index 0000000000..6be4334ff2 --- /dev/null +++ b/BlazorTooling.sln @@ -0,0 +1,79 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.26124.0 +MinimumVisualStudioVersion = 15.0.26124.0 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tooling", "tooling", "{1AC24BB5-AEBD-4D5B-B86F-8C606EFFFFFB}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.VisualStudio.BlazorExtension", "tooling\Microsoft.VisualStudio.BlazorExtension\Microsoft.VisualStudio.BlazorExtension.csproj", "{9088E4E4-B855-457F-AE9E-D86709A5E1F4}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.VisualStudio.LanguageServices.Blazor", "tooling\Microsoft.VisualStudio.LanguageServices.Blazor\Microsoft.VisualStudio.LanguageServices.Blazor.csproj", "{5884589D-4A06-4F5B-B983-8F8D34696550}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "build", "build", "{74280251-105B-4618-A9D7-951076793E3D}" + ProjectSection(SolutionItems) = preProject + build\Key.snk = build\Key.snk + EndProjectSection +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{91810C0E-892D-40EF-BDC0-5470B37E255F}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AngleSharpBuilder", "src\anglesharp\AngleSharpBuilder\AngleSharpBuilder.csproj", "{E5067AD8-3AE7-442A-86C5-D19DBC48E961}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|x64.ActiveCfg = Debug|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|x64.Build.0 = Debug|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|x86.ActiveCfg = Debug|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Debug|x86.Build.0 = Debug|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|Any CPU.Build.0 = Release|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|x64.ActiveCfg = Release|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|x64.Build.0 = Release|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|x86.ActiveCfg = Release|Any CPU + {9088E4E4-B855-457F-AE9E-D86709A5E1F4}.Release|x86.Build.0 = Release|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|x64.ActiveCfg = Debug|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|x64.Build.0 = Debug|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|x86.ActiveCfg = Debug|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Debug|x86.Build.0 = Debug|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Release|Any CPU.Build.0 = Release|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Release|x64.ActiveCfg = Release|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Release|x64.Build.0 = Release|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Release|x86.ActiveCfg = Release|Any CPU + {5884589D-4A06-4F5B-B983-8F8D34696550}.Release|x86.Build.0 = Release|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|x64.ActiveCfg = Debug|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|x64.Build.0 = Debug|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|x86.ActiveCfg = Debug|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Debug|x86.Build.0 = Debug|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|Any CPU.Build.0 = Release|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|x64.ActiveCfg = Release|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|x64.Build.0 = Release|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|x86.ActiveCfg = Release|Any CPU + {E5067AD8-3AE7-442A-86C5-D19DBC48E961}.Release|x86.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {9088E4E4-B855-457F-AE9E-D86709A5E1F4} = {1AC24BB5-AEBD-4D5B-B86F-8C606EFFFFFB} + {5884589D-4A06-4F5B-B983-8F8D34696550} = {1AC24BB5-AEBD-4D5B-B86F-8C606EFFFFFB} + {E5067AD8-3AE7-442A-86C5-D19DBC48E961} = {91810C0E-892D-40EF-BDC0-5470B37E255F} + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {248760B5-9F71-4110-8DBC-DDAB615AD88E} + EndGlobalSection +EndGlobal diff --git a/build/Key.snk b/build/Key.snk new file mode 100644 index 0000000000..e10e4889c1 Binary files /dev/null and b/build/Key.snk differ diff --git a/tooling/Microsoft.VisualStudio.BlazorExtension/BlazorPackage.cs b/tooling/Microsoft.VisualStudio.BlazorExtension/BlazorPackage.cs new file mode 100644 index 0000000000..e7496849a8 --- /dev/null +++ b/tooling/Microsoft.VisualStudio.BlazorExtension/BlazorPackage.cs @@ -0,0 +1,18 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using System; +using System.Runtime.InteropServices; +using Microsoft.VisualStudio.Shell; + +namespace Microsoft.VisualStudio.BlazorExtension +{ + // We mainly have a package so we can have an "About" dialog entry. + [PackageRegistration(UseManagedResourcesOnly = true)] + [InstalledProductRegistration("#110", "#112", "1.0", IconResourceID = 400)] + [Guid(BlazorPackage.PackageGuidString)] + public sealed class BlazorPackage : Package + { + public const string PackageGuidString = "d9fe04bc-57a7-4107-915e-3a5c2f9e19fb"; + } +} diff --git a/tooling/Microsoft.VisualStudio.BlazorExtension/Content/WebConfiguration.png b/tooling/Microsoft.VisualStudio.BlazorExtension/Content/WebConfiguration.png new file mode 100644 index 0000000000..60615f6531 Binary files /dev/null and b/tooling/Microsoft.VisualStudio.BlazorExtension/Content/WebConfiguration.png differ diff --git a/tooling/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.csproj b/tooling/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.csproj new file mode 100644 index 0000000000..3301f84cbc --- /dev/null +++ b/tooling/Microsoft.VisualStudio.BlazorExtension/Microsoft.VisualStudio.BlazorExtension.csproj @@ -0,0 +1,236 @@ + + + + 15.0 + $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) + true + PackageReference + + + true + + + ..\..\build\Key.snk + + + + + + 15.7 + $(VsixVersion).$(BuildNumber) + $(VsixVersion).999999 + + + + + + Program + $(DevEnvDir)devenv.exe + /rootsuffix RoslynDev + RoslynDev + + + + CommonExtensions + Microsoft\Blazor + + false + + + + true + fase + true + + true + true + + + + + + + + + false + + + + + + + + + + + + {b9f7f502-6dd2-4e77-8fd1-cbd76f695b26} + Microsoft.VisualStudio.LanguageServices.Blazor + False + + + + + Microsoft.VisualStudio.LanguageServices.Blazor.dll + true + PreserveNewest + false + + + + + Microsoft.AspNetCore.Blazor.AngleSharp.dll + true + PreserveNewest + false + + + + + + Debug + AnyCPU + 2.0 + {82b43b9b-a64c-4715-b499-d71e9ca2bd60};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + {9088E4E4-B855-457F-AE9E-D86709A5E1F4} + Library + Properties + Microsoft.VisualStudio.BlazorExtension + Microsoft.VisualStudio.BlazorExtension + v4.6.1 + true + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Designer + + + + + true + Always + + + + + + true + VSPackage + + + + + False + + + False + + + False + + + False + + + + False + + + False + + + + + + + + + + + \ No newline at end of file diff --git a/tooling/Microsoft.VisualStudio.BlazorExtension/Properties/AssemblyInfo.cs b/tooling/Microsoft.VisualStudio.BlazorExtension/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..bcdccc6357 --- /dev/null +++ b/tooling/Microsoft.VisualStudio.BlazorExtension/Properties/AssemblyInfo.cs @@ -0,0 +1,21 @@ +// Copyright (c) .NET Foundation. All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. + +using Microsoft.VisualStudio.Shell; + +// Add binding redirects for each assembly we ship in VS. This is required so that these assemblies show +// up in the Load context, which means that we can use ServiceHub and other nice things. +[assembly: ProvideBindingRedirection( + AssemblyName = "Microsoft.AspNetCore.Blazor.AngleSharp", + GenerateCodeBase = true, + PublicKeyToken = "", + OldVersionLowerBound = "0.0.0.0", + OldVersionUpperBound = "0.9.9.0", + NewVersion = "0.9.9.0")] +[assembly: ProvideBindingRedirection( + AssemblyName = "Microsoft.VisualStudio.LanguageServices.Blazor", + GenerateCodeBase = true, + PublicKeyToken = "", + OldVersionLowerBound = "0.0.0.0", + OldVersionUpperBound = "1.0.0.0", + NewVersion = "1.0.0.0")] diff --git a/tooling/Microsoft.VisualStudio.BlazorExtension/Resources.resx b/tooling/Microsoft.VisualStudio.BlazorExtension/Resources.resx new file mode 100644 index 0000000000..d0fc1b1a60 --- /dev/null +++ b/tooling/Microsoft.VisualStudio.BlazorExtension/Resources.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ASP.NET Core Blazor Language Services + About dialog title + + + Provides Visual Studio support for ASP.NET Core Blazor + About dialog description + + + + Resources\BlazorPackage.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + \ No newline at end of file diff --git a/tooling/Microsoft.VisualStudio.BlazorExtension/Resources/BlazorPackage.ico b/tooling/Microsoft.VisualStudio.BlazorExtension/Resources/BlazorPackage.ico new file mode 100644 index 0000000000..d323b07fb8 Binary files /dev/null and b/tooling/Microsoft.VisualStudio.BlazorExtension/Resources/BlazorPackage.ico differ diff --git a/tooling/Microsoft.VisualStudio.BlazorExtension/source.extension.vsixmanifest b/tooling/Microsoft.VisualStudio.BlazorExtension/source.extension.vsixmanifest new file mode 100644 index 0000000000..f393038f3b --- /dev/null +++ b/tooling/Microsoft.VisualStudio.BlazorExtension/source.extension.vsixmanifest @@ -0,0 +1,28 @@ + + + + + ASP.NET Core Blazor Language Services + Provides Visual Studio support for ASP.NET Core Blazor + Microsoft.VisualStudio.BlazorExtension + Content\WebConfiguration.png + Content\WebConfiguration.png + + + + + + + + + + + + + + + + + + + diff --git a/tooling/Microsoft.VisualStudio.LanguageServices.Blazor/Microsoft.VisualStudio.LanguageServices.Blazor.csproj b/tooling/Microsoft.VisualStudio.LanguageServices.Blazor/Microsoft.VisualStudio.LanguageServices.Blazor.csproj new file mode 100644 index 0000000000..21fb0f988b --- /dev/null +++ b/tooling/Microsoft.VisualStudio.LanguageServices.Blazor/Microsoft.VisualStudio.LanguageServices.Blazor.csproj @@ -0,0 +1,15 @@ + + + + net461 + + + + + AngleSharpBuild + False + TargetFramework=netcoreapp2.0 + false + + +